摘要:
printk函数运行在内核发空间, printf函数运行在用户空间。 使用printk函数可以很方便地将消息写入日志文件或控制台,但大量使用printk函数操作日志文件或控制台设备文件会严重影响Linux驱动的性能,因此,这就要求Linux驱动只在开发阶段使用printk函数输出消息。Printk函 阅读全文
摘要:
HAL层属于Linux内核层之上的应用层是为了尽量避免应用程序直接访问Linux驱动和保护 “私人财产”。带HAL的 Linux 驱动就相当于将数据从HAL传到寄存器,或从寄存器传到HAL的数据二传。 加入HAL的主要目的:1:统一硬件的调用接口,2:解决了GPl版权问题,3:针对一些特殊的要求。 阅读全文
摘要:
遇到无法卸载Linux驱动时通过直接修改Linux驱动相应的内存地址删除Linux驱动。 书中介绍了2种驱动代码重用的方法,一种是:将要重用的代码放在其他的文件(在头文件中声明)中。如果要使用某些功能,include 相应的头文件即可(这种方式称为静态重用)。也可以使用另外一种动态重用的方式,也就是 阅读全文
摘要:
尽管 Linux 驱动直接与硬件打交道,但并不是 Linux 驱动直接向硬件中的内存写数据, 而是与本机的 I/O内存(位于内核空间〉进行交互。每一个连接 Linux 的硬件在 I/O内存中都会有映射首地址。 测试已有的led驱动时使用的adb shell命令或test leds.sh脚本文件,这里 阅读全文
摘要:
书中提到:Linux驱动和普通的LinuxAPI没有本质的区别,linux将每一个驱动都映射成一个文件.这些文件称为设备文件或驱动文件,都保存在/dev目录中,这样与驱动交换数据就像和设备文件交换数据一样。而我们使用的windows不同,Windows中我发现很难找到安装后的驱动的文件目录。 要将数 阅读全文
摘要:
我们在开发板上进行调试时,必须要使用串口将开发板与电脑相连,这里就要用到串口调试工具,在Windows下我们使用的是putty,而书中介绍的是在linux下的开发,使用minicom,安装完成后必须对minicom进行配置,完成后保存退出。在终端下输入minicom命令,如果安装配置正确就会进入等待 阅读全文