- 博客(45)
- 收藏
- 关注
转载 关于mips-fp(帧指针)寄存器的理解
1,stack framestack我们都知道,每一个进程都有自己的栈。考虑进程执行时发生函数调用的场景,母函数和子函数使用的是同一个栈,在通常的情况下,我们并 不需要区分母函数和子函数分别使用了栈的哪个部分。但是,当我们需要在执行过程中对函数调用进行backtrace的时候,这一信息就很重要了。简单的说,stack frame就是一个函数所使用的stack的一部分,所有函数的stack fram...
2018-04-25 17:33:13
5575
转载 SD/MMC/SDIO驱动
一、SD/MMC/SDIO概念区分SD(SecureDigital)与 MMC(MultimediaCard)SD 是一种 flash memory card 的标准,也就是一般常见的 SD 记忆卡,而 MMC 则是较早的一种记忆卡标准,目前已经被 SD 标准所取代。在维基百科上有相当详细的 SD/MMC 规格说明:[http://zh.wikipedia.org/wiki/Sec
2017-11-10 11:29:08
1532
转载 SD/MMC卡初始化及读写流程
二、MMC/SD卡的模型和工作原理 PIN脚、SD卡总线、SD卡结构、SD卡寄存器、上电过程 SD卡寄存器: OCR:操作电压寄存器: 只读,32位 第31位: 表示卡上电的状态位 CID: 卡身份识别寄存器 只读 128位 生产厂商、产品ID,生产日期和串号等 CSD: 部分可写 128位 卡的容量、擦出扇区大小、读写最大数据块的大小、读操作的电流、电压等等
2017-11-10 11:15:46
2864
转载 Makefile文件编写
目录开始简单makefile变量自动变量OBJ和伪命令目录结构Makefile 是 Linux 下程序开发的自动化编译工具,用以识别编译目标、源文件、及其依赖关系,并且有着高效的编译效率。每次执行 make 时,就能够自动寻找 Makefile(makefile)文件,执行编译工作。Makefile拥有很多复杂的功能,为了简化问题的复杂性,本文仅和大
2017-10-10 20:16:58
696
转载 用Qt程序对堆栈进行深入理解
这是最近遇到的一个问题,就从最简单的Hello Qt说起吧(以前的文章)。mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include class MainWindow:public QWidget//从QWidget继承{Q_OBJECTpublic:MainWin
2017-08-28 16:51:16
4368
转载 NOR Flash擦写和原理分析
1. NOR FLASH 的简单介绍NOR FLASH 是很常见的一种存储芯片,数据掉电不会丢失.NOR FLASH支持Execute On Chip,即程序可以直接在FLASH片内执行(这意味着存储在NOR FLASH上的程序不需要复制到RAM就可以直接运行).这点和NAND FLASH不一样.因此,在嵌入式系统中,NOR FLASH很适合作为启动程序的存储介质.NOR FLASH的读取
2017-07-21 14:45:04
1392
转载 uboot笔记:uboot命令分析+实现
uboot命令分析+实现 先贴一个重要结构,位于uboot/include/command.h,这个结构代表每个uboot命令struct cmd_tbl_s { char *name; /* Command Name */ int maxargs; /* maximum number of arguments*/ int
2017-07-21 14:43:53
438
转载 在应用程序中实现对NandFlash的操作
阅读目录(Content)打开设备获取设备信息擦除NandFlash写NandFlash读OOB以TC58NVG2S3ETA00 为例:下面是它的一些物理参数:图一 图二
2017-07-21 14:42:40
713
转载 Camera driver&V4L2驱动架构介绍
大约一年前写的东西,介绍性部分是当时在网络上找的内容,后面的分析部分是基于当时的项目,基于Mavell Pxa920,希望对初学者有点点的帮助吧。转载请注明出。 1. Camera相关介绍1.1. 手机Camera介绍手机的数码相机功能指的是手机通过内置数码相机进行拍摄静态图片或短片拍摄,作为手机的一项新的附加功能,手机的数码相机功能得到了迅速的发展。
2017-05-14 23:05:35
1048
转载 V4L2视频驱动程序开发之驱动方法poll 和 应用程序select
V4L2视频驱动程序开发已经进入尾声,本次视频支持多个通道的stream同时传输,即有多个设备文件关联到驱动。最高支持48个stream同时输入。应用程序在获取stream的时候,需要用到select,而驱动程序中的poll方法将被调用。以下对驱动poll作一下简单分析。非阻塞 I/O 的应用程序常常使用 select, 允许一个进程来决定它是否可读或者写一个或多个文件而不阻塞.
2017-05-10 15:55:02
1988
转载 platform_driver_probe与platform_driver_register
Platform Device and Drivers从我们可以了解Platform bus上面的驱动模型接口:platform_device,platform_driver。和PCI和USB这些大结构的总线不同,虚拟总线Platform bus使用最小结构来集成SOC processer上的各种外设,或者各种“legacy”之间的互联。Platform device典型的Plat
2017-04-18 15:31:51
955
转载 浅析user用户态程序如何访问kernel空间的物理内存DDR和物理寄存器
浅析user用户态程序如何访问kernel空间的物理内存DDR和物理寄存器fs_initcall(chr_dev_init);创建如下的char设备在/dev/下:/dev/mem/dev/kmen/dev/null/dev/port/dev/zero/dev/full/dev/random/dev/urandom/dev/kmsg/de
2017-04-06 12:21:23
2348
转载 linux tee 命令详解
功能说明:读取标准输入的数据,并将其内容输出成文件。语 法:tee [-ai][--help][--version][文件...]补充说明:tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。参 数: -a或--append 附加到既有文件的后面,而非覆盖它. -i-i或--ignore-interrupts 忽略中断信号。
2017-04-01 15:22:06
310
转载 U-Boot中memory(SDRAM/DDR)相关命令 md
1. 使能md命令通过定义:CONFIG_CMD_MEMORY, 就可以使能md命令。注:由于在include/config_cmd_default.h>里面已经有此定义,在板子相关的configure文件中(位于),默认情况下,都会include此文件。所以,u-boot默认会包含此命令。源代码:common/cmd_mem.c>2. Usagemd -
2017-03-31 17:43:33
629
转载 Linux磁盘管理.md
dfdf 即“可用磁盘”disk free,用于显示文件系统的磁盘使用情况。默认情况下 df 命令将以每块 1K 的单位进行显示所有当前已挂载的文件系统,如果你想以人类易读的格式显示 df 命令的输出,像这样“df -h”使用 -h 选项。参数-a, --all 包含所有的具有 0 Blocks 的文件系统--block-size={SIZE} 使用 {
2017-03-31 17:11:42
631
转载 Linux进程创建和结束
在Linux中,进程的创建由系统调用fork和vfork完成。它们生成一个子进程并且子进程是父进程的一个复制品。 Fork系统调用对应的kernel函数是sys_fork,此函数简单的调用kernel函数do_fork。一个简化版的do_fork执行如下:(1)alloc_pid()。给新的进程分配一个新的pid,即进程号(2)copy_process()此函数会做fork的大部分事
2017-03-12 18:11:52
233
转载 Linux之V4L2基础编程
1. 定义V4L2(Video For Linux Two) 是内核提供给应用程序访问音、视频驱动的统一接口。2. 工作流程:打开设备-> 检查和设置设备属性-> 设置帧格式-> 设置一种输入输出方法(缓冲 区管理)-> 循环获取数据-> 关闭设备。3. 设备的打开和关闭:#include int open(const char *device_name
2017-01-06 11:39:20
289
转载 YCbCr与YUV
YCbCr是DVD、摄像机、数字电视等消费类视频产品中,常用的色彩编码方案。YCbCr 有时会称为 YCC.。Y'CbCr 在模拟分量视频(analog component video)中也常被称为 YPbPr。YCbCr不是一种绝对色彩空间,是YUV压缩和偏移的版本。1、YUV与YCbCr的区别 正如几何上用坐标空间来描述坐标集合, 色彩空间用数学方式来描述颜色集合。常见的3 个
2017-01-05 11:41:57
514
转载 Linux signal那些事儿
Linux编程,信号是一个让人爱恨交加又不得不提的一个领域。最近我集中学习了Linux的signal相关的内容,分享出来,也为防止自己忘记。 信号的本质是异步。异步一这个词,听着高端大气上档次,又让人云山雾绕,其则不然。其实我们想想,我们这个世界是异步的,每个人干事儿,并不总是A->B->C->D这种。比如我在网上买了东西,我其实并不知道快递几时能到。我可能在公司里面,在喝水,在回邮件,
2017-01-04 19:36:48
384
转载 内核中信号发送的过程
kill信号涉及到的系统调用有sys_kill,sys_tkill,sys_tgkill函数等,sys_kill的处理的机制有以下这么几种:pid>0信号被发送到pid的那个进程上。pid=0pid=-1信号被发送给所有进程。pid信号被发送到-pid的线程组上。这里说下sys_kill函数的过程,流程图如下:
2016-12-27 00:23:20
1735
转载 linux下 signal信号机制的透彻分析与各种实例讲解
转自:http://blog.sina.com.cn/s/blog_636a55070101vs2d.html转自:http://blog.youkuaiyun.com/tiany524/article/details/17048069首先感谢上述两位博主的详细讲解。虽然内容有点长,但是分析的很全面,各种实例应用基本都考虑到了。 本文将从以下几个方面来阐述信号:
2016-12-26 20:24:58
13873
转载 Linux下用文件IO的方式操作GPIO(/sys/class/gpio)
通过sysfs方式控制GPIO,先访问/sys/class/gpio目录,向export文件写入GPIO编号,使得该GPIO的操作接口从内核空间暴露到用户空间,GPIO的操作接口包括direction和value等,direction控制GPIO方向,而value可控制GPIO输出或获得GPIO输入。文件IO方式操作GPIO,使用到了4个函数open、close、read、write。
2016-12-20 18:00:06
423
转载 Linux串口编程详解
串口本身,标准和硬件什么是串行通信什么是RS-232信号定义异步通讯什么是全双工和半双工什么是流控制什么是BREAK同步通讯用户看到的串口和用户空间的串口编程串口的设备文件打开串口打开文件的选项给端口上写数据从端口上读取数据关闭串口配置串口POSIX终端接口控制选项设
2016-12-12 10:17:23
386
转载 linux uart 串口自发自收例程
linux 串口自环测试程序。两种不同的方法。select ,以及多线程方法。 select uart_sendrecv_notv.rar点击(此处)折叠或打开#include stdio.h> #include stdlib.h> #include unistd.h> #include sys/types.h> #i
2016-12-10 18:16:44
8108
转载 Linux 输入子系统原理理解
linux 输入子系统原理理解(原创)以前学了单独的按键设备驱动以及鼠标驱动,实际上,在linux中实现这些设备驱动,有一种更为推荐的方法,就是input输入子系统。平常我们的按键,触摸屏,鼠标等输入型设备都可以利用input接口来简化驱动程序并实现设备驱动。输入子系统原理linux输入子系统的体系结构可以分为三个层面,分别为:驱动层、输入核心层、事件处理层,三个有点
2016-12-10 11:48:33
487
转载 driver: Linux设备模型之input子系统详解
linux输入子系统本节从整体上讲解了输入子系统的框架结构。有助于读者从整体上认识linux的输入子系统。在陷入代码分析的过程中,通过本节的知识能够找准方向,明白原理。本节重点: 输入子系统的框架结构 各层对应内核中的文件位置 输入子系统的事件处理机制 输入子系统的驱动层基本操作流程
2016-12-10 11:45:13
242
转载 linux进程间的通信(C):信号
一、信号信号是UNIX和Linux系统响应某些条件而产生的一个事件。接收到该信号的进程会相应地采取一些行动。 在软件层次上, 信号是对中断机制的一种模拟;在实现原理上, 一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达, 因为,事实上,进程也不知道信号具体什
2016-12-09 12:11:05
723
转载 linux程序打印重定向到文件的问题
目的是要让程序的printf的打印能重定向到某个文本中,ctrl+c强制退出后查看文本,方便调试。运行方式:a. out程序正常运行是会打印一些字符的a.out > 1.txt 2>&1把stdout与stderr都重定向到1.txt文件中去,结果发现运行过程中1.txt一直为空,调试发现如果a.out正常结束退出1.txt数据就正常,ctrl+c强制退出程序则1.txt无数据
2016-12-06 10:19:32
5153
转载 输入子系统架构分析
内核的输入子系统是对分散的,多种不同类别的输入设备(如键盘,鼠标,跟踪球,操纵杆,触摸屏,加速计和手写板)等字符设备进行统一处理的一层抽象,就是在字符设备驱动上抽象出的一层。输入子系统包括两类驱动程序:事件驱动程序和设备驱动程序。事件驱动程序负责和应用程序的接口,而设备驱动程序负责和底层输入设备的通信。鼠标事件生成文件mousedev属于事件驱动程序,而PS/2鼠标驱动程序是设备驱动程序。事件驱动
2016-12-05 15:30:00
1261
转载 gpio键盘active_low参数 的作用
http://blog.youkuaiyun.com/zhenwenxian/article/details/7804163方便以后查看,记录一下,谢谢作者分享。gpio键盘的结构图为static struct gpio_keys_button gpio_keys_buttons[] = { { .code = SW_LID, .gpio
2016-12-05 11:39:37
2116
转载 【Linux&音频】Alsa音频编程【精华】
样本长度(sample):样本是记录音频数据最基本的单位,常见的有8位和16位。通道数(channel):该参数为1表示单声道,2则是立体声。桢(frame):桢记录了一个声音单元,其长度为样本长度与通道数的乘积。采样率(rate):每秒钟采样次数,该次数是针对桢而言。周期(period):音频设备一次处理所需要的桢数,对于音频设备的数据访问以及音频数据的存储,都是以此为单位。
2016-11-30 14:32:29
778
转载 C标准库和glibc(C运行库)的关系
C 标准主要由两部分组成,一部分描述C的语法,另一部分描述C标准库。C标准库定义了一组标准头文件,每个头文件中包含一些相关的函数、变量、类型声明和宏定义。要在一个平台上支持C语言,不仅要实现C编译器,还要实现C标准库,这样的实现才算符合C标准。不符合C标准的实现也是存在的,例如很多单片机的C 语言开发工具中只有C编译器而没有完整的C标准库.在Linux平台上最广泛使用的C函数库是glibc
2016-11-30 11:55:50
2525
转载 Linux系统中“动态库”和“静态库”那点事儿
今天我们主要来说说Linux系统下基于动态库(.so)和静态(.a)的程序那些猫腻。在这之前,我们需要了解一下源代码到可执行程序之间到底发生了什么神奇而美妙的事情。 在Linux操作系统中,普遍使用ELF格式作为可执行程序或者程序生成过程中的中间格式。ELF(Executable and Linking Format,可执行连接格式)是UNIX系统实验室(USL)作为应用程序二进制接
2016-11-30 11:16:44
339
转载 解决udhcpc命令无法自动获取并设置网卡IP和系统DNS
udhcpc是一个面向嵌入式系统的非常小的DHCP客户端,字母的缩写微- DHCP -客户端(μDHCPc)。1.udhcpc -i eth0udhcpc只是获取一个IP,我们需要把\busybox-1.1.2\examples\udhcp下的脚本simple.script改名为default.script,放在开发板上的/usr/share/dhcpc/目录下,才能将获取的IP写到指定的
2016-11-29 10:57:24
15433
2
转载 zImage和uImage的区别
zImage和uImage的区别 vmlinux是内核文件,zImage是一般情况下默认的压缩内核映像文件,压缩vmlinux,加上一段解压启动代码得到。而uImage则是使用工具mkimage对普通的压缩内核映像文件(zImage)加工而得。它是uboot专用的映像文件,它是在zImage之前加上一个长度为64字节的“头”,说明这个内核的版本、加载位置、生成时间、大小等信息;其
2016-11-26 17:34:28
935
转载 MSComm串口类的使用 (程序设计)
参考文档:http://wenku.baidu.com/link?url=MLGQojaxyHnEgngEAXG8oPnISuM9SVaDzNTvg0oTSrrJkMXIR_6MR3cO_Vnh-grkUekLw2CSnQlE2ni5P-CzCCyI36fnNFFl_BkbEbMomP_ MSComm在VS2010中的实现过程 注:在vs2010中MSComm类中一些函
2016-11-24 10:52:28
3008
转载 Linux信号(signal) 机制分析
【摘要】本文分析了Linux内核对于信号的实现机制和应用层的相关处理。首先介绍了软中断信号的本质及信号的两种不同分类方法尤其是不可靠信号的原理。接着分析了内核对于信号的处理流程包括信号的触发/注册/执行及注销等。最后介绍了应用层的相关处理,主要包括信号处理函数的安装、信号的发送、屏蔽阻塞等,最后给了几个简单的应用实例。 【关键字】软中断信号,signal,sigaction,kil
2016-11-19 15:17:18
399
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人