过了半个月,继续上次的话题。心得交流2里面提到了裸板程序,没有OS的支持,很多东西要我们自己写,而不是调用OS的系统调用的函数接口了。虽然麻烦了,但是可以省去深入了解某种OS的时间(但是最后写驱动程序时还是要了解的,所以在这里,我建议还是抽空学习一下OS的知识吧)。跟着韦老师的视频学着写裸板程序,总体感觉和写C51的程序一个样,只不过在开发板上没有bootloader的情况下,需要自己写一段汇编的启动代码,用来初始化中断向量表及其跳转指令(我只写了reset向量的跳转指令,在以后的学习开发过程中,需要按需添加跳转指令)。然后同学们可以选择用汇编继续写,也可以选择在初始化栈指针后用C语言写下面代码。
裸板程序的实验可以学习一下相关硬件的SFR(特殊功能寄存器)使用。比如GPIO,INTC,UART,TIMER等等,2440的INTC刚接触时感觉还是有点复杂的,被那些寄存器名字弄糊涂啦。UART里面常见错误就比如乱码问题(一般都是因为上位机和下位机的波特率的不匹配),TIMER是个挺有用的东西,自己写个用timer定时的延时函数,比一般的delay()更加精确。
裸板程序熟练了过后,我就开始学习linux下的驱动程序(本人有一点linux的基础,包括linux基本操作,linux程序设计,也稍稍接触过linux内核)。学习过程下次再写吧,谢谢阅读本文!