- 博客(10)
- 资源 (19)
- 收藏
- 关注
转载 platform设备驱动
platform设备驱动 (From:http://www.linuxidc.com/Linux/2011-01/31291.htm) platform驱动的优势:将设备本身注册到内核,由内核统一管理,驱动程序时调用platform提供的接口就可以,这样方便移植,更安全。 1.platform总线、设备与驱动 在Linux 2.6的设备驱动模型中,关心总线、设备
2013-03-30 08:59:09 800
原创 linux 下 新命令学习
刚才在微博上看到亚嵌李明老的上传的《新概念C语言》视频,学到几个命令。 file 命令,可查看文件的属性信息; hexdump -C a.out,可查看可执行文件的内容: readelf -a a.out,可以查看可执行文件更详细的信息:
2013-03-29 21:21:24 994
原创 某公司上机题
前几天出去面试,笔试和面试后,技术主管给出了道上机题:六个数,要一直按由小到大的顺序排列,可以随意的添加和删除。。。 对于这个公司的面试这里不想多说什么,只分享下技术。 程序是以很简单的方式做出来的,其中并未考虑执行效率问题,上机题嘛,弄出个结果就很好了 #include #include int num[6]; void add(int n) {
2013-03-26 19:47:52 856
原创 uart,spi,i2c总线的区别
uart,spi,i2c总线的区别 I2C的数据输入输出用的是一根线,SPI则分为dataIN和 dataOUT。由于这个原因,采用I2C时CPU的端口占用少,SPI多一根。但是由于I2C的数据线是双向的,所以隔离比较复杂,SPI则比较容易。 所以系统内部通信可用I2C,若要与外部通信则最好用SPI带隔离(可以提高抗干扰能力)。但是I2C和SPI都不适合长距离传输。长距离时就要用485 了。
2013-03-26 19:15:01 1782
原创 《linux设备驱动程序III》学习---第六章
第六章 高级字符驱动程序操作 前面已经构造了结构完整的可读可写的字符设备驱动程序,这里介绍高级的操作。 首先要明白高级在哪里?这里有几个概念:睡眠、阻塞/非阻塞。之前的驱动操作中都是默认调用read、write后可以立即读取、写入数据,但实际往往不可能,当read时设备还没有数据供个read、当write时还没准备好接收设备缓存空间是满的而没有地方再write进新数据时驱动程序该
2013-03-18 14:23:06 999
原创 《linux设备驱动程序III》学习---第五章
第四章中讲的是内核的调试技术。。。以后用到在学习吧 第五章 并发和竞态 1,操作系统编程的核心问题之一是并发管理 2,什么是竞态:linux中存在大量的并发源,当这些并发源访问可共享的数据时就会发生竞态 3,竞态的危害:竞态会导致共享的数据非控制访问,导致系统崩溃、数据破坏及安全问题 4,如何避免竞态:常用的技术是 锁定和互斥 5,记:linux中信号量的作用绝大多数
2013-03-17 17:21:55 865
原创 《linux设备驱动程序III》学习---第三章
1,这本书是以scull 为例子来介绍字符设备驱动程序的编写的。 scull是一个操作内存区域的字符设备驱动程序。 2,注册设备号的获取、注销及注册 @获取dev_t 类型设备号 设备在内核中以dev_t 类型保存主次设备号的。用MKDEV(major,minor) 来获得dev_t 类型的设备号,相反,用MAJOR(dev_t dev) 转换主设备号,MINOR(dev_
2013-03-16 21:23:04 1317 2
原创 《linux设备驱动程序III》学习---第二章
1,介绍最简单的hello world 驱动程序。。。。之前已经看过了,这部分过 2,模块程序与应用程序的区别 @应用程序从头到尾按顺序执行单个任务。模块程序要先注册到内核,为的是给调用做准备 @退出时,应用程序的资源系统会回收,模块程序要手动 @模块程序不能像应用程序那样连接库函数,它调用的只能是内核中的头文件 include/linux ,linux/as
2013-03-16 16:16:16 1079
原创 《linux设备驱动程序III》学习---第一章
1,设备驱动作用的理解 设备驱动程序是位于操作系统与硬件之间的软件层,为上层应用程序提供一个可以访问硬件的接口,隐藏了对硬件寄存器等的具体操作。当用户层调用的时候可以把硬件看成是内核的一个接口函数就行了。 2,unix中的一点思想 机制和策略,是unix设计背后影藏的最好思想之一。 编程实际上可以分为两部分:1,需要提供什么样的功能;2,如
2013-03-16 12:44:25 1227
转载 转:临界区的产生
临界区问题是嵌入式软件编程一个不得不面对的关键性问题。特别对于底层驱动,代码在内存中只有一份,上层的多任务或者多进程,都会对同一个驱动去访问,这样不可避免的遇到了任务之间打架的问题,处理好这个问题是区分一个菜鸟和老鸟的根本性关键之一。 接下来谈谈临界区产生的原因: 假设有以下代码: [cpp] view plaincopyprint? int x; void
2013-03-01 13:09:05 517
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人