SPC5606B Bootloader设计与实现:案例分析

需积分: 50 31 下载量 123 浏览量 更新于2024-08-08 收藏 2.35MB PDF 举报
"基于SPC5606B的BOOTLOADER设计及实现" 这篇资源主要讲述了针对SPC5606B微控制器进行BOOTLOADER和应用程序(APP)工程的创建过程。SPC5606B是一款用于汽车电子控制单元(ECU)的微控制器,尤其在电动汽车和无人驾驶汽车领域有广泛应用。BOOTLOADER和APP在开发中被设计为两个独立的工程,每个工程都有自己特定的CFLASH存储区域,以防止代码溢出。BOOTLOADER的CFLASH范围是0到0xbfff,总计48KB,而APP的CFLASH范围是0xc000到0x3ffff,总计208KB。 在工程创建后,需要对linker文件进行调整,以适应这些存储区域。BOOTLOADER和APP的linker文件分别进行了定制,确保各自代码的定位和执行。由于CFLASH不支持就地修改(RWW),因此需要在RAM中设置一个独立的分区,例如4KB的cflah_rw_ram段,来运行操作CFLASH的代码。在执行擦除和写入CFLASH的操作之前,需要使用push指令将代码压入cflah_rw_ram,并使用wrteei 0指令关闭中断,以避免在CFLASH操作期间发生中断。 此外,论文还提到了BOOTLOADER设计的一些关键点,包括硬件最小系统的构建,如电源、时钟和通信模块,以及电磁兼容性方面的考虑,以增强系统稳定性。软件方面,BOOTLOADER设计需要确保可靠的数据处理,能够通过CAN总线下载APP,并在APP异常时进行适当的错误处理,以防止系统崩溃。论文还涵盖了诊断模块的设计、CFLASH的管理、下载工具的使用、SAE J1939多字节传输协议的实现以及BOOTLOADER在电动汽车电池管理系统中的实际应用。 关键词:SPC5606B、BOOTLOADER、APP、CFLASH、RAM分区、中断管理、CAN总线、电池管理系统、SAE J1939协议。