为系统运行适配平台的cpu内核为ppc603,cpu型号为mpc8247。嵌入式系统驱动开发,这里,我所专注的层次为bsp层。万事万物皆有开头,而这里关于系统bsp层的开头就“住在”start.s文件中,今天就来一探其中的究竟。
文件最开头定义的是堆栈的大小,为64k。
接下来所做的工作是对核的几个关键寄存器进行初始化,如下图所示:
图中的注释已经阐述的比较明白了,对于每种寄存器在这里就不展开具体介绍,大家如果感兴趣可以去看相关的说明手册。
接下来,到比较关键的部分了,话不多说,先上张截图压压惊
要熟悉start.s中的流程,还需要了解powerpc平台中的汇编语言,以上有几个指令这里还是介绍一下分别为:li 、mflr、lwz、stw。
li:立即数加载指令,何谓立即数相当于高级语言中的常量,它是直接出现在指令中的数,不用存储在寄存器中或存储器中的数(度娘说的),所以这里, li r0, 0,意思是将r0中的值设置为0。
mflr:Move From Link Register,取出链接寄存器的值。这里,mflr r4,意思是将链接寄存器中记录的地址放入r4中,也就是说r