回答

收藏

ARM嵌入式系统的ISP设计

其他 其他 1319 人阅读 | 0 人回复 | 2012-10-28

应用程序的固化是嵌入式产品开发和生产过程中一个重要环节。基于arm的嵌入式系统常用的程序固化方法是,用仿真器通过JTAG口将程序烧录到Flash里,在产品的开发阶段,使用仿真器几乎是必然的;然而到了产品的生产阶段,进行应用程序烧录或升级操作的往往是生产线上的工人,他们不易掌握仿真器的使用方法,而且在生产阶段也需要把JTAG调试口封住以防软件被窥视。下面由卓跃教育为您具体介绍。?
硬件连接?
RS232转接板用来将RS232电平转换为TTL电平,并通过ISP_EN引脚给ARM开发板提供信号,让其进入ISP状态。PC机上运行用VC语言编写的ISP.exe,该程序把需要烧录到F1ash里的。bin文件加密后发送到arm开发板,同时把烧录的进度提示显示给用户。?
Flash烧录原理?
存储器分配?
STR730是意法半导体生产的基于arm7TDMI的微控制器芯片,内置16KBRAM(0xa0000000~Oxa0003fff)和256KBFlash(Ox80000000~Ox8003ffff)。?
扇区O的内容需要事先通过JTAG口烧入,此后就可以利用扇区O中的烧录程序Programrher.o通过串口进行ISP.在整个ISP过程中扇区0的内容是保持不变的,这样就可以防止ISP过程中出现掉电之类的意外,导致初始化代码Startup或烧录程序Programmer受到损坏而无法再一次进行ISP.无论对嵌入式产品添加新功能还是修改原有的软件BUG,涉及的都只是用户应用程序的改动,初始化代码Startup.s是无需改动的,所以扇区O的内容在ISP过程中可否保持不变,关键是能否使首次编译生成的Vector.0始终与以后多次编译的App.o相匹配。?
您有任何关于嵌入式操作系统的疑问,欢迎咨询在线老师?
需要特别指出的是,当用户应用程序发生改变时,实际的中断服务函数(一般是C语言函数)很可能发生了改变,或者是实际的中断服务函数的入口地址发生了改变,怎么通过固定不变的中断向量Vector.o找到变化的中断服务函数的入口呢?只要这个问题解决了,就可以使首次编译生成的Vector.o始终和以后多次编译的App.o相匹配,这是该方案可行性的关键所在。?
?
分享到:
回复

使用道具 举报

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

本版积分规则

关闭

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