不知道执行不了的原因
发在csdn上的贴:http://topic.csdn.net/u/20120707/21/52fd37a8-55c9-4ae7-b151-84d16dfa232b.html?08264980597887188
我通过修改 韦东山《嵌入式LINUX应用开发完全手册》关于MMU那一张的代码,想在ADS环境下,裸跑MMU虚拟地址点灯,但没有成功,不知道错在哪,请高手指点。。。
思路是这样:
在韦东山书中:
1. 原来在书中用的是GNU下的编译环境,汇编语法不同于ADS环境下。
2. 书中程序是从NAND flash启动,通过代码实现a.初始化SDRAM。b.复制代码到SDRAM的物理地址0X30000000处。再设置页表,启动mmu,重设栈指针,跳转到0xB0004000,点灯。
我的s3c2440+ads环境下:
针对第一点,我修改了原来的代码。但有两个地方不是太明白。
第一个是,关于c内嵌汇编代码,有一句:mov r4, %0
不太明白 %0 是什么意思。看网上有人说,%0 实质是等于 r4, #0x30000000 不知道对不对。为什么是这样呢?!
第二个是,关于内嵌汇编代码的最后两句:
: /* 无输出 */
: "r" (ttb) );
不明白是什么意思。只知道把最后一句的 ");" 改成 "}"。 因为 __asm__(); 的语法结构在ads中编译不过,所 以我改成了 __asm {} 的形式。完整的代码再后面。
针对第二点,我用的3c2440+ads环境,从nor flash启动,代码直接下载到板子的SDRAM 0x30000000处。所以省去了这两步。
3C2440 ARM裸机 MMU代码(有bug)
5星 · 超过95%的资源 需积分: 12 35 浏览量
2012-07-07
22:21:10
上传
评论
收藏 18KB ZIP 举报
小面团
- 粉丝: 47
- 资源: 4
最新资源
- python-leetcode面试题解之第157题用Read4读取N个字符-题解.zip
- python-leetcode面试题解之第156题上下翻转二叉树-题解.zip
- python-leetcode面试题解之第155题最小栈-题解.zip
- python-leetcode面试题解之第153题寻找旋转排序数组中的最小值-题解.zip
- python-leetcode面试题解之第152题乘积最大子数组-题解.zip
- python-leetcode面试题解之第151题反转字符串中的单词-题解.zip
- python-leetcode面试题解之第150题逆波兰表达式求值-题解.zip
- python-leetcode面试题解之第149题直线上最多的点数-题解.zip
- python-leetcode面试题解之第148题排序链表-题解.zip
- python-leetcode面试题解之第147题对链表进行插入排序-题解.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈