- 博客(15)
- 资源 (6)
- 收藏
- 关注
原创 linux驱动在sys下添加读写属性
class_create 用来创建一个类,存放于sysfs下面,卸载时配套使用class_destroydevice_create 在/dev/目录下创建相应的设备节点,在加载模块的时候,用户空间的udev会自动响应device_create函数,去/sysfs下寻找对应的类似而创建设备节点,卸载时配套使用 device_destroydevice_create_file 实际调用s
2016-11-25 19:59:26 5968
原创 platform设备和驱动的注册机制
首先,如果对platform设备和驱动的注册机制不熟悉的话,可以先看一下大神的博客 http://blog.csdn.net/zqixiao_09/article/details/50888795一、下面逐一分析一下每一个函数的功能 1、platform_device_register //把设备注册到platform bus上1)platfor
2016-11-24 21:49:21 854
原创 模拟SPI实现和调试流程
一般来说,所有的spi通信设备都可以使用模拟spi来实现,而且模拟spi的好处就是不需要针对每一款mcu去重新熟悉其spi控制器的配置,只要简单配置一下spi_clk、spi_cs、spi_mosi、spi_miso四个引脚的输入输出即可,具有很好的可移植性。下面我以stm32为例,简单讲解一下模拟spi的实现和调试流程,实例中spi以上升沿来进行收发数据1、首先先贴出代码 //初始化spi
2016-11-22 20:27:41 21459
原创 模拟i2c实现流程
首先,在理论上,先分析一下I2C具体都包含了那些内容,后面再结合实例分析一下模拟I2C实现的具体流程第一,I2C的具体包括以下几部分内容 1、I2C协议 2条双向串行线,一条数据线SDA,一条时钟线SCL。 SDA传输数据是大端传输,每次传输8bit,即一字节。 支持多主控(multimastering),任何时间点只能有一个主控。 总线上每个设备都有自己的一个a
2016-11-22 20:21:47 4904
原创 linux i2c驱动注册流程
以x210的触摸屏为例,分析一下i2c驱动注册的流程 1、在arch\arm\mach-s5pv210\mach-x210.c中 //新建一个i2c设备信息结构体static struct i2c_board_info i2c_devs1[] __initdata = { { I2C_BOARD_INFO("gslX680", 0x40), },};//把新的i
2016-11-22 20:09:01 678 1
原创 总结一下使用过的几类LCD屏特点
1、MCU屏一般MCU屏都会自带显存,接口为16位的80并口,相当于支持RGB565模式,8080是通过"读使能(RE)"和"写使能(WE)"两条控制线进行读写操作。关键管脚说明RESET脚,复位LCD RS 寄存器选择,置1为写数据,置0为写命令,1表示选择命令寄存器,0表示选择数据寄存器CS 片选信号RD 置0表示读数据WR
2016-11-22 12:52:45 7400
原创 ubuntu进行交叉编译时出现gcc版本无法识别
如果使用ubuntu进行交叉编译时,出现gcc版本无法识别的情况,那么修改把系统的语言设置为英文 vim /etc/default/locale中文修改为:LANG="zh_CN.UTF-8"LANGUAGE="zh_CN:zh"英文修改为:LANG="en_US.UTF-8"LANGUAGE="en_US:en"
2016-11-18 23:11:44 1285
原创 QT、文件系统和应用程序三者的关系
在我们进行嵌入式linux开发时,很多人都会对QT、文件系统和应用程序三者的关系不太清楚,下面简述一些它们之间的关系1、构建linux嵌入式系统分为5部分:bootloader移植、内核移植、根文件系统构建、图形系统构建和应用程序开发2、bootloader用于加载并引到内核3、内核用于加载模块驱动、挂载根文件系统和启动init进程4、根文件系统
2016-11-18 23:10:59 2764
原创 linux启动时间优化措施
在我们进行linux系统优化时,可以从以下几方面入手1、如果有硬性的启动时间要求,比如开机时间要求达到10s以内,那么就必须要硬件上面支持。比如使用一般的nand flash想达到那么快的速度那是不可能,至少要20秒以上,所以这个时候,就必须要使用inand来实现。2、当硬件确定支持启动时间要求后,软件方面可以由以下方面入手1)bootloader的启动,由于bootloader在
2016-11-18 23:10:17 4777 1
原创 ucosiii中断管理特性
ucosiii在中断管理的特性总结1、当ISR处理完成后,程序会返回中断前的任务或更高优先级的任务。2、长时间关中断可能会导致中断来不及响应而重叠,即多次中断被当做一次中断。3、当多个任务具有相同优先级时,使用延迟提交方式,可以减少中断延迟时间, 因为优先级相同,那么在执行完中断服务后,仍然回到原来的程序中,会导致 另外的任务等待的时间变长。4、直接提交方式
2016-11-18 19:41:38 756
原创 ucosiii任务调度特性
任务调度1、任务级调度 OSSched()2、中断级调度OSIntExit()3、运行多个任务具有相同优先级,可以被设置为循环轮转调度4、任务发生调度的情况 (1)任务调用提交服务函数Post,发送信号量或者消息给其它任务时调度发生,调度在Post函数的结束时发生,注意 调度是不会发生(见OS_OPT_POST_NO_SCHED的可选参数)
2016-11-18 19:40:24 2488
原创 ucosiii资源管理特性
资源管理1、保护共享资源的方式 (1)关中断 能很快地结束访问共享资源,不推荐使用,因为会导致中断延迟 CPU_SR_ALLOC(); //这个宏为一个本地的变量分配了存储空间用于保存关闭中断前的CPU状态寄存器SR CPU_CRITICAL_ENTER(); CPU_CRITICAL_
2016-11-18 19:39:52 654
原创 ucosiii系统特性
UCOSIII系统特性1、可剥夺的多任务内核,只支持单CPU2、允许一个任务优先级被多个任务使用,当这个优先级处于最高就绪态的时候,UCOSIII就会轮流调度处于这个 优先级的所有任务,让每个任务运行一段时间由用户指定的时间长度,叫做时间片3、极短的关中断时间,采用锁定内核调度的方式而不是关中断的方式保护临界段代码,降低关中断的时间,可以 快速响应中断请求,如果
2016-11-18 19:39:14 1264
原创 ucosiii信号量新特性简述
ucosiii信号量可用于ISR与任务间、任务与任务间的同步,新增加可选模式,如非阻塞等待、释放但不进行任务调度、新增任务内嵌的信号量(用户程序无需建立信号量便可与任务直接通信) 常规信号量和任务内建信号量 1)常规信号量一般使用流程声明OS_SEM TEST_SEM;OSSemCreate ((OS_SEM*)&TEST_SEM,
2016-11-18 10:48:01 1179
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人