完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我使用的开发板是mini2440,交叉编译器版本为友善官方提供的ARM-linux-gcc-4.4.3,主机环境是物理机上的ubuntu12.04,使用jlink-V8和SEGGER官网提供的linux版JlinkExe软件来烧写程序。在GPIO和SDRAM相关裸机程序烧写时都是正常的,以下是我烧写的步骤:
①用韦老师提供的mini2440源代码make生成*.bin文件; ②开发板从nand flash启动,jlink连开发板jtag口,运行JlinkExe,先用h来halt一下,再用loadbin *.bin 0x00000000下载程序到SRAM(个人理解是这样),最后用g来运行程序,结果实现都现象正常; 在学习MMU部分时,同样使用以上的步骤方法,结果是led都不亮。 反复查看mmu.dis都没发现问题。于是用nor flash中的superviv下载mmu.bin到nand flash的vivi分区,这样从nand flash启动时就会执行mmu.bin程序。经过验证结果也是正确的。 那么问题就出在jlink烧写程序了,通过网上查阅资料,尝试了一下这样烧写:先halt,再setpc 0,然后loadbin,最后g,结果程序居然执行了! 我的问题就在这里,为什么需要用setpc 0 程序才能正常运行呢? |
|
相关推荐
2个回答
|
|
nandflash里有程序 你h的时候 你看下pc指针应该不是0 你loadbin以后 需要setpc 0 意思就是把pc指针指向0开始运行
|
|
|
|
我烧写裸机程序的时候已经通过nor flash中的supervivi把nand flash整个都擦除了;谢谢你提醒我h之后查看PC指针的值,这一点我的确没想到。昨晚想了想,问题应该是PC值的问题,我把mmu的程序下载进去后PC指针不是0,所以没法运行程序。但是前面gpio的例程不用设PC就能运行我就真的想不通了。
感谢你的回复。 |
|
|
|
只有小组成员才能发言,加入小组>>
197个成员聚集在这个小组
加入小组为什么点亮LED的例子放在NORFlash上跑会出现奇怪的现象?
2177 浏览 6 评论
1982 浏览 5 评论
韦东山老师推出的《玩转ARM裸机实战》课程将帮你以上问题一扫而光!
4540 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 16:10 , Processed in 1.161575 second(s), Total 99, Slave 80 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号