主题 : 遇到个非常奇怪的问题,求各位指点。 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 67689
精华: 0
发帖: 8
金钱: 40 两
威望: 8 点
综合积分: 16 分
注册时间: 2012-04-14
最后登录: 2012-05-28
楼主  发表于: 2012-05-28 11:35

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

初学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