随笔分类 - 嵌入式编程
摘要:u-boot启动内核,内核启动应用程序。第1个应用程序就是init。BusyBox就是许多命令的集合如ls、cd等。你可以使用如下命令方式来验证还有init也是busybox的链接init程序: 0) 打开/dev/console。标准输入标准输出标准错误 1)执行第一个应用程序init(要么是命令行参数指定uboot参数init = linuxrc 要么是/sbin/init) 2)读取配置文件-inittab(指定后续运行的应用程序) 3)解析配置文件 4)根据配置文件启动执行用户的程序配置文件inittab文件(/etc/inittab)格式:::id=>/dev/id:用作终端,
阅读全文
摘要:首先,需要明白驱动程序的工作流程。 正常我们在操作设备时的顺序是这样的。(1)在应用层,直接通过open、read、或者说是write等函数。(2)这些函数都是在C库中实现的,可以肯定的是C库中对其反应是发生异常SWI,触发异常swi val。根据val的不同进入不同的异常处理。(3)进入驱动函数,内核空间() 然后,需要明白设备如何告知linux内核?即驱动程序的工作流程:1)定义一个file_operation结构体 2)注册(主设备号,名字,file_operation)。就是将file_operation放到file_operation字符数组的主设备号项中。注册函数有regi...
阅读全文
摘要:dATa: 固定指前面0x00-0x7f的128个RAM,可以用acc直接读写的,速度最快,生成的代码也最小。idATa:固定指前面0x00-0xff的256个RAM,其中前128和dATa的128完全相同,只是因为访问的方式不同。idATa是用类似C中的指针方式访问的。汇编中的语句为:mox ACC,@Rx.(不重要的补充:c中idATa做指针式的访问效果很好)xdATa: 外部扩展RAM,一般指外部0x0000-0xffff空间,用DPTR访问。pdATa: 外部扩展RAM的低256个字节,地址出现在A0-A7的上时读写,用movxACC,@Rx读写。这个比较特殊,而且C51好象有对此BU
阅读全文
浙公网安备 33010602011771号