共2条
1/1 1 跳转至页
若没有TFFS, 如何将应用映象烧入Flash?
若没有TFFS, 如何将应用映象烧入Flash?
来自"comp.os.vxworks""burning app in flash without buying TFFS"
By Amine@263.net
Q:
我想将“bootable 应用映象”烧入Flash,但是我没有TFFS支持Flash文件系统,
是否可以将映象按S-record格式烧入Flash, 但是该如何引导和执行它?
1)在引导时, 是否需要将映象从flash复制到RAM中? 如何进行?
2)标准的vxworks bootloader是否支持?
A1:
其实这是一种标准做法, 可以由几种方法完成, 如下提示:
如果你的Flash可插拔,可以使用编程器, 利用S-record文件烧写Flash
如果你的Flash是贴片的,你可以连接JIG[?????]烧写Flash,
或者编写一段程序启动板子, 从串口接受S-record文件, 并擦除编写Flash.
这段代码可以放在另一片Eprom上.
A2:
还有别的方法. 在生产时, 你可以使用JTAG或BDM使CPU处于调试状态.
引导扇区用于引导代码, 引导过程可以中断以更新Vxwroks映象.
一些CPU有特殊的引导模式, 允许你通过串口或其他接口下载代码,
就和JTAG/BDM一样使用. 类似前面提的JIG方法.
最后一种方法就是在板上提供特殊电路, 使CPU处于复位状态, 而你可以
直接访问Flash[比如通过并口].不过现在已没人这么做啦, 这在前些年比较普遍.
在ESC上Intel的人曾讨论这个话题, 你可以用Google搜搜.
A3:
在Flash上你没有文件系统, 也可以存储映象, 只要让bootrom知道Flash中
应用的起始地址. 比如, 你有4M Flash, 起始地址为0xf0000000, 在bootrom中
设置起始地址为0xf0000000. 当Bootrom需要将映象写入Flash时, 就在起始位置
擦除/写入就行.
你没有必要将S-record文件直接写入Flash, 这需要更多的存储空间(因为它是ASCII),
而且每次启动都需要处理这个S-record文件. 很多人都有自己的bootrom, 可以从
串口或网口接受S文件, 并将S文件转为二进制映象, 再写入Flash. 也可以在主机
生成二进制映象, 并压缩, 再下载写入Flash, 以节省存储空间.
由Bootrom将代码从Flash复制到RAM. 看看bootconfig.c, 你需要做些修改.
一般由bootline指定从Flash中装入映象, 复制到RAM, 并跳转到RAM执行.
bootconfig.c通过串口或网口下载映象, 处理后写入Flash.
你的Bootrom可能需要如下代码:
0)下载通道驱动, 文件格式解释, 解压缩代码, Flash驱动
1)检查bootline(在bootLoad()的usrBootLineInitCrack调用之后)
2)看是否bootline启动设备是指定关键字(如flash)
3)给定地址的映象完成校验和解压缩后, 复制到RAM中
4)跳转到RAM执行
A4:
我通过网口+tftp来完成这个工作.
在bootConfig.c中, 在tftp建立后, 在下载vxwroks映象前, 使用tftpXfer()
登录到ftp服务器, 读取你想要的文件, 并将其写入Flash.
关键词: 没有 如何 应用 映象 烧入 Flash 文件
A5:
没有文件系统也可以存储和使用"bootable"映象, 但是采用文件系统有很多优点
而且实现它并不是太难. 可以写一些操作Flash的函数来创建Flash文件系统, Flash盘
驱动可以参考RAM盘的驱动来写. 这样的Flash文件系统[FFS]很简单, 它不会平均使用
Flash芯片, 但是它很实用.
首先编写Flash操作函数, 这步可能比较困难. 函数需实现整片擦除, 扇区擦除,
数据写入等功能.
第二, 复制ramDrv.*, 并更名为ffsDrv.*. 修改ffsDrv.c中的块写入函数:
先擦除扇区, 并用Flash写入函数代替bcopy(). 还需要修改"ioctl"函数, 这样实现
FIODISKFORMAT功能就会使用整片擦除函数.
最后, 在$(WIND_BASE)/target下查找引用"tffs"的所有文件, 加入新FFS的功能,
对于usrTffs.c, 可以复制保存后再修改它.
这样就得到一个简单的文件系统, 你可以化点时间试试.
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 | |
【FRDM-MCXN947评测】核间通信MUTEX被打赏50分 |