初学ARM,看完了书,就照着别人的例程一个个的来做。发现个非常奇怪的问题。
1. 做MMU实验时,初始化《存储器控制寄存器》的代码使用汇编写时,MMU实验可以运行,但有个问题是,按下复位键重启后,程序没法正常运行,必须掉电再上电才能正常运行。
2. 做NAND实验时,初始化《存储器控制寄存器》的代码与MMU实验的相同,总是无法正常运行,磨了两天,发现,把初始化《存储器控制寄存器》的代码用C语言来写,然后在汇编程序里相同的位置调用,NAND实验就OK了。
3. 把NAND实验里的初始化代码( 汇编+C )替换掉MMU实验的初始化代码( ONLY汇编 ),MMU实验则无法成功,运行都运行不起来了。
4. ( 汇编+C )的初始化代码和( ONLY汇编 )的初始化代码对各个寄存器的设置是完全一致的。
简而言之:初始化《存储器控制寄存器》的代码,MMU实验时要用汇编写,NAND实验时要用C写。完全无法理解啊。……。求各位朋友指点一下啊。小弟先谢过了。
代码如下:
mmu1.rar (9 K) 下载次数:0
nandtest.rar (11 K) 下载次数:0