FLASH烧写总结

来源:互联网 发布:梦为什么真实知乎 编辑:程序博客网 时间:2024/04/27 16:10

这部分可能过于简单,很少有人写,但是对于不了解ARM开发过程的人真的简单吗?我是菜鸟,在这卡了3天:)
一般说来有几种方法,
1)板子原来的BOOTLOADER程序或者为烧写而编写的专用ADS程序
比较高级而快速的方法,很多现成的开发板都用这种方法(相对来说有实力的公司),此状态下CPU是运行的,所以速度快。
比如ZLG的,但是对于初学或者不准备细研究硬件的人来说就比较麻烦,因为要编写(改写)ADS烧写程序。愿意的人可以看看。
2)FLUTED
和FLASHPGM一样,使用的好象叫边界扫描法,CPU此时并不运行,因此烧写的比较慢。
在这里也不推荐FLUTED这个软件,原因比较简单,麻烦+速度慢。
因为需要编写(改写)两个配置文件,而且是字符界面。倒是有人说这个软件只能在WIN98下用的说法好象不对(现在有可以让2000和XP下用的方法)
喜欢的朋友可以用用
3)FLASHPGM(推荐)
很简单的程序,GUI界面,速度尚好。
设置很简单,在CPU里选对型号,当然是3星的44B0。在FLASH里也一样,39LV160,29LV160都有。
确定好地址,RAM地址我的是0XC000000(BANK7上) FLASH地址0X0(BANK0上)
选完了以后读一下FLASH的ID(左下脚的按钮吧)能读出厂家的ID就行。
然后是烧写了,PROGRAME按钮,注意的是FLASHPGM不支持BIN格式,按照下面方法处理。
再有就是尽量在写之前擦一下,PROGRAME菜单里有个选项,打个钩就OK。
具体烧写方法可以看我总结的另一篇文档,在这里只说说UBOOT相关的。
前面说过UBOOT编译以后产生3个文件
u-boot——ELF格式的文件,可以被大多数Debug程序识别;
u-boot.bin——二进制bin文件,纯粹的U-BOOT二进制执行代码,不保存ELF格式和调试信息。这个文件一般用于烧录到用户开发板中;
u-boot.srec——Motorola S-Record格式,可以通过串行口下载到开发板中。
FLASHPGM不支持BIN格式的,可以烧写u-boot——ELF格式的文件,别看它没扩展名,一样烧写。
还有,如果你懒(和我一样),拿别人现成的BIN文件来烧,FLASHPGM还提供了一个BINTOS19的程序,就在它的安装目录下。具体用法运行它,它自己就告诉你了。

注意:有时(尤其是FLASH里已经有程序的时候)0XC000000会莫名奇妙的提示内存不可以写,有几个方法可以试试:把地址改成0x10000000(好象是缓存地址),之后点EREASE擦除芯片,擦除一般说来是不成功的,最后无论如何都下不去,没关系,这时候关闭擦除对话框,然后0x10000000地址不变,烧FLASH,我一般是烧写一个我自己写的LED测试小程序把内存占上:)。回来这时候再把0X1000000换成0XC000000再按照正常操作,一般可以正常。
这现象的原因就是过去下的程序(多数是不正确的程序)正在运行 占用了RAM与ROM,下个LED测试小程序就是把这几个部分清除掉。
如果以上方法还不正常,可以用另一个程序叫FLASHP就差2个字母:)很好!在这里对这个程序的作者致敬!!
用这个软件擦FLASH,然后再用FLASHPGM烧,原因是FLASHP擦厉害,但写好象有些问题~~

 

Re:FLASH烧写总结 FLASH烧写的过程在网上很少有人分享,偶在这个上面也花费了比较长的时间。好东西应大家分享,偶支持你!!! 2006-9-6 10:09:00
个人主页 | 引用 | 返回 | 删除 | 回复 Re:FLASH烧写总结 谢谢楼上的兄弟了
细小的技术一般高手是不愿意总结的
只有我这菜鸟来做了
2006-9-6 11:01:00
个人主页 | 引用 | 返回 | 删除 | 回复 Re:FLASH烧写总结 我的FLASHPGM 在读一下FLASH的ID时总是说没找到jtag不知道什么原因! 2006-9-6 20:16:00
个人主页 | 引用 | 返回 | 删除 | 回复 Re:FLASH烧写总结 检查JTAG吧
是WIGGLER的吗?
线对吗?
有个版本的JTAG上面有跳线,拔下跳线(是复位信号失效)看看
2006-9-6 20:48:00
个人主页 | 引用 | 返回 | 删除 | 回复 Re:FLASH烧写总结 hi,玛玛金柯( 不知这个是乜意思:) )

你的u-boot是用fp在windows烧的吧?
我想知道linux下能不能烧写?总不能离不开windows吧

还有linux下用Jtag调试时应该有调试代理吧?
不能gdb直接就能调吧?

菜问了,不要笑我。
2006-9-7 21:55:00
个人主页 | 引用 | 返回 | 删除 | 回复 Re:FLASH烧写总结 其实FLASH烧写也简单,可以自己写个程序完成对特定FLASH的读/写/Program,看看data sheet就行了. 2006-9-9 11:10:00
个人主页 | 引用 | 返回 | 删除 | 回复 Re:FLASH烧写总结 回答一下上面的问题
刚看见 对BLOG操作还不熟悉:)
U BOOT是WIN下烧写的
LINUX下没用过 但为什么非要离开WIN?:)

UCLINUX操作系统下的应用程序在调试时用交叉调试方式
一般就是PC上用GDB UCLINUX下用GDBSERVER(一起用的)
而硬件连接用串口就可以

可能有点没搞清楚
JTAG只是UCLINUX操作系统移植之前用的
以或调试应用程序可以用串口或者网络就可以了

“其实FLASH烧写也简单,可以自己写个程序完成对特定FLASH的读/写/Program,看看data sheet就行了”
还有更简单的方法:)
在AXD里用鼠标对地址直接修改:)

 

from:http://mamajinco.blog.com.cn