zyp000 发表于 2012-5-28 09:13:36

遇到个非常奇怪的问题,求各位指点。

初学ARM,看完了书,就照着别人的例程一个个的来做。发现个非常奇怪的问题。
1. 做MMU实验时,初始化《存储器控制寄存器》的代码使用汇编写时,MMU实验可以运行,但有个问题是,按下复位键重启后,程序没法正常运行,必须掉电再上电才能正常运行。
2. 做NAND实验时,初始化《存储器控制寄存器》的代码与MMU实验的相同,总是无法正常运行,磨了两天,发现,把初始化《存储器控制寄存器》的代码用C语言来写,然后在汇编程序里相同的位置调用,NAND实验就OK了。
3. 把NAND实验里的初始化代码( 汇编+C )替换掉MMU实验的初始化代码( ONLY汇编 ),MMU实验则无法成功,运行都运行不起来了。
4. ( 汇编+C )的初始化代码和( ONLY汇编 )的初始化代码对各个寄存器的设置是完全一致的。

简而言之:初始化《存储器控制寄存器》的代码,MMU实验时要用汇编写,NAND实验时要用C写。完全无法理解啊。……。求各位朋友指点一下啊。小弟先谢过了。
代码如下:





zyp000 发表于 2012-6-1 14:36:27

消灭0回复啊,就要周末了,各位大侠至少给点提示吧,周末正好有时间好好琢磨一下。{:dizzy:}
实验板是TQ2440
编译环境是Ubunt + arm-gcc4.3.3
页: [1]
查看完整版本: 遇到个非常奇怪的问题,求各位指点。