《方舟CPU走向世界》这篇文档主要探讨了嵌入式系统中的软件注入技术及其在方舟CPU上的应用。软件注入是一种在设备上远程或本地更新软件的方法,对于嵌入式系统的升级和维护至关重要。本文档特别关注了基于C8051F023微控制器(MCU)的软件注入实现方案。
软件注入的流程包括制定注入规程、准备相应的注入设备,并解决新注入程序与MCU中原有固化程序的连接问题。图1展示了嵌入式系统软件注入的原理,而图2则具体呈现了基于C8051F023的软件注入实现方法。在这个方案中,MCU的Flash存储器被划分为多个功能模块,如主程序模块、引导装载模块、模块1、模块2和模块3,这些模块可以独立进行程序代码的更新。
主程序模块负责初始化MCU以及可注入模块的一些默认设置。不可用扇区和保留扇区是C8051F023的特性,前者用于芯片的安全选项,不支持应用程序在系统中编程,后者则是工厂专用,不存储用户程序。各个模块在0x1000-0xFBFF的地址空间内,各自对应某一特定功能的独立软件代码,其大小可以根据程序代码的规模通过伪指令进行定义和修改。
中断向量位于主程序模块的地址空间内且固定不变,这是确保所有功能模块都能调用硬件中断资源(如UART、定时器等)的关键。为了实现新注入软件与固化软件之间的连接,需要统一定义中断服务程序(ISR)和所有功能模块的入口地址及地址空间范围。在开发新的可注入软件模块时,必须遵守这些规定,否则可能导致模块无法被正确调用或占用相邻模块的空间,影响功能实现。
在进行软件注入时,还需要注意以下两点:
1. 在写入新代码之前,需先擦除程序存储器中原有的数据。由于C8051F023的Flash存储器以512B(十六进制表示为200H)的扇区为单位组织,每个功能模块的地址空间必须是200H的整数倍。
2. C8051F023特有的优先权交叉开关译码器允许在数字外设引脚和通用I/O端口之间建立可控连接,提高了I/O灵活性,但也可能导致新开发的注入模块配置高优先级外设时,改变主程序模块中已定义的数字外设与通用I/O端口的关系。
这篇文档详细阐述了基于C8051F023的嵌入式系统软件注入技术,为理解和实现这类系统的软件升级提供了专业指导。这一技术对于保障嵌入式系统的灵活性和可扩展性,以及在不断变化的技术环境中保持设备的最新状态具有重要意义。