|
原帖地址http://topic.eeworld.net/u/20080521/16/8dd26e1c-2e9b-4277-877b-5f888125bc35.html?seed=2142211368
我们目前的系统是使用的三星44b0的平台,一块8M的sram,一块8M的nor flash,无操作系统
我现在要做的是为原本的这套系统添加一个"程序串口升级"的功能,因为用户不可能使用写片器或者jtag.
目前我能想到的办法有两种:
1. 在0地址放上我的一个boot程序,这个程序启动时候往串口发出请求,并等待一段时间.如果收到返回,则开始通过串口下载新的应用程序到sram.下载完成后,将sram的内容copy到nor flash上的指定位置.
但这样有个问题,就是我听别人说,nor flash如果有程序在运行,则不能做写操作,而我的boot是放在nor flash上运行的...
2. 使用uboot. 我现在有一个uboot,可以下载到机器上也能正常运行了. 我使用loadb的方法将程序(bin文件)下载到sram,再copy到0x30000地址上.但在通过uboot的bootm 30000运行时出现bad magic num的错误,导致应用程序无法运行.
我目前正在看uboot的资料,但不得要领. bootm的解释是运行压缩过的linux内核,但我们现在的系统并没有上操作系统.我使用go 30000运行,提示是在运行了,但机器并没有反映.同样的应用程序,如果我直接用jtag下载到0地址,开机是可以正常运行的.
还有,我现在用的这个uboot是以前一个项目的,当时用的norflash还是SST39VF1601(2MB)的.我不知道该如何该成适应s29gl064的.前面遇到的程序无法运行的问题也可能和此有关.
一下说的有点多.大致上的情况就是,之前我一直从事应用程序开发以及上位机程序开发.由于人事变动,现在赶鸭子上架,临时接手了这个工作.之前我并没有arm开发经验,也没写过nor flash的驱动.目前我正在查阅相关资料,也希望得到大家的帮助,因为时间还是有点紧迫的.
我的邮箱是yinlei@fujitsu-nfcp.com
|
|