摘要: 本节目标: 写second程序,内容:通过查询方式驱动按键 1.写出框架 1.1写file_oprations结构体,second_drv_open函数,second_drv_read函数 1.2写入口函数,并自动创建设备节点,修饰入口函数 1.3写出口函数,并自动注销设备节点,修饰出口函数 1.4 阅读全文
posted @ 2017-09-11 18:43 诺谦 阅读(5244) 评论(2) 推荐(2) 编辑
摘要: 在上一节中已经将驱动程序框架搭建好了 接下来开始写硬件的操作(控制LED): (1)看原理图,确定引脚 (2)看2440手册 (3)写代码(需要使用ioremap()函数映射虚拟地址,在linux中只能使用虚拟地址) (4)修改上一节的测试程序 (5)使用次设备号来控制设备下不同的灯 1.看led引 阅读全文
posted @ 2017-09-11 18:30 诺谦 阅读(4372) 评论(2) 推荐(4) 编辑
摘要: 先讲解驱动框架,然后写出first_drv驱动程序,来打印一些信息 写出first_drv驱动程序需要以下几步: (1)写出驱动程序first_drv_open first_drv_write (2)需要定义file_operations结构体来封装驱动函数first_drv_open first_ 阅读全文
posted @ 2017-09-11 18:11 诺谦 阅读(9560) 评论(21) 推荐(8) 编辑
摘要: u-boot的任务是启动内核,内核的任务是启动应用程序 ,应用程序会涉及很多文件和硬件操作(当然不会直接操作硬件),比如读写文件,点灯、获取按键值。 比如对于控制led灯的用户程序与驱动程序,最简单的实现方法是: 应用程序中需要打开led灯,就需要open函数,在内核中的驱动程序中也有对应的led_ 阅读全文
posted @ 2017-09-11 17:39 诺谦 阅读(5530) 评论(3) 推荐(6) 编辑
摘要: kill:指定将信号发送给某个进程,常用来杀掉进程,可以通过ps、top命令来查看进程 在默认情况下: 采用编号为15的TERM信号。TERM信号将终止所有不能捕获该信号的进程。 对于那些可以捕获该信号的进程就要用编号为9的kill信号,强行“杀掉”该进程。 可以使用kill -l 来列出所有型号名 阅读全文
posted @ 2017-09-07 14:49 诺谦 阅读(3840) 评论(0) 推荐(0) 编辑
摘要: insmod:加载模块 参数: -f 不检查目前kernel版本与模块编译时的kernel版本是否一致,强制将模块载入。-k 将模块设置为自动卸除。-m 输出模块的载入信息。-o <模块名称> 指定模块的名称,可使用模块文件的文件名。-p 测试模块是否能正确地载入kernel。-s 将所有信息记录在 阅读全文
posted @ 2017-08-29 11:00 诺谦 阅读(2124) 评论(0) 推荐(0) 编辑
摘要: 在上节制作busybox后(位于/work/nfs_root/mini_fs), 然后根据以下5个来构建最小根文件系统: (1)/dev/console(终端控制台, 提供标准输入、标准输出以及标准错误) (2)init进程的程序(也就是busybox,因为init程序位于busybox中,已经完成 阅读全文
posted @ 2017-08-21 19:44 诺谦 阅读(5526) 评论(0) 推荐(1) 编辑
摘要: 在上一节分析出制作一个最小的根文件系统至少需要: (1)/dev/console(终端控制台, 提供标准输入、标准输出以及标准错误) (2)init进程的程序(也就是busybox,因为init程序位于busybox中) (3)/etc/inittab(用于init进程读取配置, 然后执行initt 阅读全文
posted @ 2017-08-21 19:26 诺谦 阅读(6253) 评论(0) 推荐(0) 编辑
摘要: 本节目标: (1) 了解busybox(init进程和命令都放在busybox中) (2) 创建SI工程,分析busybox源码来知道init进程做了哪些事情 (3) 分析busybox中init进程 init_main() (3.1)熟悉init进程的inittab配置文件(位于/etc/init 阅读全文
posted @ 2017-08-21 19:14 诺谦 阅读(3357) 评论(1) 推荐(2) 编辑
摘要: 本章学习如何启动第一个应用程序 1.在前面的分析中我们了解到,在init进程中内核挂接到根文件系统之后,会开始启动第一个应用程序: kernel_init函数代码如下: 2.接下来开始分析init_post()如何启动应用程序的,代码如下: 当我们删除根文件系统的内容再启动内核,发现串口就会打印上面 阅读全文
posted @ 2017-08-21 17:52 诺谦 阅读(3009) 评论(0) 推荐(0) 编辑