回答

收藏

[原创] 无jlink调试程序的方法

飞凌嵌入式 飞凌嵌入式 2321 人阅读 | 0 人回复 | 2014-01-23

本帖最后由 forlinx2013 于 2014-1-24 09:27 编辑

欢迎大家来到飞凌爱板网专区,对嵌入式技术感兴趣的朋友不妨多多关注一下,我们提供了公司所有开发板的所有资料,也会更新大量技术文章,欢迎大家一块学习提高!!!

无jlink调试程序的方法
1.相信大家一拿到开发板的时候,都有一个疑问,裸机程序我该怎么烧录到开发板上呢,这个就不能像arm7或单片机那样简单的烧录了。
2.这里先说一个交代,这个开发板的内存分配是这样的,0x0000 0000 到 0x0010 0000 (0x0010 0000 = 1024*1024) 也就是1MB是给uboot的,0x0010 0000是给程序的,而到了0x5000 0000就是ram了,也就是说,如果你把程序烧写到了0x5000 0000之后的话,你可以运行但是掉电就擦除了。这些可以在datasheet中查到。
3.之前我有讲过我的jlink是质量问题退掉了,没事,正和我意,自己看着手册和之前学s3c2410的一些经验,总结出了四种烧录/调试的方法。
4.方法一:dnw在ram中调试
       第零步:开发板运行到uboot的界面。
       第一步:将程序烧录到ram中,就是0x5000 0000之后,一般往后推那么几个位置,自己设置,我用0x50008000 ,保险。
               命令:dnw 0x50008000
       第二步:这个时候,程序已经在内存中了,那么理论上是可以直接运行的,没错
               命令:go 0x50008000
       说明:此方法比较可靠,速度快,USB2.0,我一般用这个,dnw 是usb下载命令,当然要弄好usb线和驱动咯。
    方法二:dnw在flash中调试
        第零步:开发板运行到uboot的界面。
        第一步:将程序烧录到ram中,就是0x5000 0000之后,一般往后推那么几个位置,自己设置,我用0x50008000 保险。
               命令:dnw 0x50008000
        第二步:擦除flash,为程序留空,千万别擦除了0x00100000 之前的flash,那样会把你的uboot清空,之后你懂的,不相信就自己试试把。
               命令:nand erase 0x00100000 0x00300000
        第三步:将程序写入到flash中
                命令:nand write 0x50008000 0x00100000 0x00300000
         第四步:重启
                命令:reset
       说明:此方法测试结果真实,但是有的时候,程序走一遍就结束了,有的时候要注意,可能就执行了一遍。
    方法三:xp超级终端ram中调试
        第零步:开发板运行到uboot的界面。
        第一步:将程序烧录到ram中,就是0x5000 0000之后,一般往后推那么几个位置,自己设置,我用0x50008000 保险。
                命令:loadb 0x50008000
之后选择发送文件,选择K模式,这个自己百度把,没什么说的
        第二步:这个时候,程序已经在内存中了,那么理论上是可以直接运行的
               命令:go 0x50008000
说明:这个方法是用串口传的,速度超慢,你懂得,记得上课传一个10MB的bin花了20min,够久的,不过这个是最可靠的,相比dnw的usb传输,usb2.0速度当然是没话说的,但稳定性还是串口实在。
    方法四:xp超级终端在flash中调试
        第零步:开发板运行到uboot的界面。
        第一步:将程序直接烧录到flash中去,对直接烧。
               命令:loadb 0x0010000
        第二步:重启
               命令:reset
说明:此方法可靠性一般,实测有些程序能运行,有些不能,待考证,应该是地址映射的问题把。
5.总结:本次主要是说下没有jlink的调试,有jlink的直接无视把,关于超级终端,就是xp自带的工具,至于win7下怎么用,我的建议是:装个xp把,你迟早会被win7烦死的。

分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条