HC9S12X系列CAN Bootloader开发与内存理解总结

需积分: 50 18 下载量 81 浏览量 更新于2023-03-16 收藏 2.48MB PDF 举报
NXP单片机HC9S12系列单片机bootloader的设计是一项重要的技术,尤其适用于MC9S12XEP100MEG这类芯片。该设计的核心目标是实现上电后根据EEPROM(尽管芯片本身不提供真正的EEPROM,而是通过bufferRAM模拟)中的控制字来决定启动流程,既非仅依赖于pin脚的信号触发,也不是固定进入Bootloader后再做决策,而是利用内存管理机制进行智能判断。 首先,对于内存理解至关重要,包括以下几个方面: 1. 内存结构:该芯片内存资源分为P-Flash(64个16KB页,全局地址范围0x700000 - 0x7FFFFF)、RAM(16个4KB页,全局地址范围0x0F0000 - 0x0FFFFF)和D-Flash与bufferRAM。此外,还涉及到内存映射,如LocalMemoryMap和GlobalMemoryMap之间的转换。 2. 分页管理:内存采用分页机制,涉及EPAGE、RPAGE和PPAGE三个主要分页寄存器,它们用于管理和切换不同区域的内存访问。 3. 内存划分与向量:设计者需要熟悉PRM文件,能够正确划分内存空间,包括三个复位向量和中断向量的定义。此外,还需理解S19格式文件,这是存储二进制代码的一种常见格式。 4. 上位机开发:上位机部分主要基于VC平台的C++语言,利用现成的DLL文件,并进行多线程编程和基于对话框的用户界面设计。开发过程中可能涉及USB通信接口,如USBCAN2II。 5. 下位机Bootloader实现:设计者参考了NXP官方文档AN4258SW和AN4258.pdf,将Bootloader从串口模式修改为CAN通讯形式。这部分工作主要集中在理解和修改这些文档提供的核心逻辑,以适应芯片的具体硬件需求。 通过这样的设计,HC9S12系列单片机的Bootloader可以确保在上电后快速而灵活地决定进入应用程序还是执行特定的初始化过程,提高了系统的可靠性和可扩展性。这种设计方法对其他使用类似硬件或需要类似功能的项目也有很好的参考价值。