基于C8051F023的软件注入技术(2)
① 在写入新的软件代码之前,需要将程序存储器中原来的数据擦除。由于C8051F023的Flash存储器是以大小为512B(用十六进制表示为200H)的扇区为单位组织的,一次擦除操作将删除整个扇区,因此每个功能模块的地址空间必须是200H的整数倍。
② C8051F023特有的优先权交叉开关译码器在数字外设引脚和通用I/O端口之间建立了可控的连接,该机制提高了I/O灵活性,但也使得如下情况成为可能:新开发的可注入模块需要使用并配置高优先权的外设,在把该模块注入到MCU后,这些配置会改变主程序模块中已经定义的数字外设与通用I/O端口间的关系,使得I/O引脚不再具有原先的含义,从而破坏了MCU与嵌入式设备间的接口标准。因此,必须在主程序模块中统一配置优先权交叉开关译码器,从而为所有模块建立一个通用的、引脚含义明确的硬件平台。
3 软件代码文件的生成
从图1可以看出,软件程序最终是以十六进制代码的形式驻留在软件注入枪或注入卡中的,因此软件程序的十六进制
图3 example.hex文件的内容示例
图4 包含纯粹软件代码的codes.txt文件的内容示例
结语
软件注入技术是实现嵌入式系统软件升级的一种有效手段,在实施过程中需要采取诸如制订软件注入规程、研制软件注入设备并开发相应各类软件等一系列技术措施,且具有多种可行方案。本文给出了其中的一种实施方案(如图1所示),在论述了采用软件注入技术的优势和可行性后,针对采用C8051F023的嵌入式系统,讨论了基于C8051F023的软件注入实现方案和相关的一些问题,并编写了V2程序以完善C8051F023集成开发环境在实现软件注入方面的功能。
参考文献
1 张迎新,等. 单片机初级教程. 北京:北京航空航天大学出版社, 2000
2 潘琢金, 施国君. C8051Fxxx高速SOC单片机原理及应用. 北京:北京航空航天大学出版社, 2002
单片机 51单片机 MCU 单片机视频教程 单片机开发 ARM单片机 AVR单片机 PIC单片机 Atmel stm32 单片机学习 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)