继续更新。
看cache_init代码:
mrc指令就是将协处理器寄存器当中的数据传入到arm处理器的寄存器当中
将协处理器P15中C0,C0寄存器的内容传送到ARM处理器的R0寄存器中
然后:
R1=R0+0X00F00000;
R2=R0+0X0000000F
之后
orr r2,r2,r1,lsr #20-4;
r1的内容右移16位,之后r1和r2进行逻辑或运算,赋值给r2
之后比较r2和#0x30的值
然后mrceq p15 ,0 ,r0,c1,c0 //读actlr
下来使能dp1 dp2
然后写actlr
其实这部分代码我也没有仔细研究。
这里暂时不用仔细研究哈。
到时候写一篇文章,专门更新这个内容。
这里给我们一个提醒就是,一定要熟悉arm处理器的指令集哦!
总的来说,上面的代码就是失能(不是使能哈)MMU,caches 让L1 I/D无效
之后是一段测试代码,就是上电的时候我们为了看看uboot是否在工作,我们可以看一下自己开发板上面的led是不是一闪而过。这里我们把它注释掉了。
重点来了哈,read booting information读取启动信息