本文档为G32R501 BootLoader用户手册,由珠海极海半导体有限公司编制。该手册详细描述了存储在R501系列处理器片上引导ROM中的代码和数据的用途与特性,包括基于FLASH、基于ROM和基于RAM的器件。引导ROM在出厂时已设定好引导加载软件,引导模式信号(通用I/O)用于指示BootLoader软件在上电时要使用的启动模式。
引导ROM概述
引导ROM是位于地址0x10000000-0x10020000的128KB只读存储器块,包含引导加载程序功能、Flash API库、Fix32math表等模块。表格1列出了ROM各模块的地址分配:
| 模块 | 起始地址 | 结束地址 | 大小 |
|---|---|---|---|
| Boot | 0x10000000 | 0x10003F70 | 16240 Byte |
| FlashAPI | 0x10004000 | 0x10008000 | 16384 Byte |
| AES_Table | 0x1001AE00 | 0x1001D200 | 9216 Byte |
| Fix32mathTables | 0x1001D600 | 0x1001DE04 | 2052 Byte |
| CFFT_f32_twiddleFactors | 0x1001E300 | 0x1001EF00 | 3072 Byte |
BootLoader特性
BootLoader是位于片上引导ROM中的程序,在复位后执行,用于将代码从外部源传输到内存储器中,允许将代码驻留在外部慢速非易失存储器中,然后传输至高速存储器中执行。支持多种引导模式,包括Parallel IO、UART/Wait boot、CAN、Flash、Wait、RAM、SPI Master、I2C Master和Secure Boot等。
BootLoader使用GPIO信号确定引导模式。配置过程分为仿真启动和独立启动两种情况:仿真启动通过检查EMU_BOOTPIN_CONFIG、EMU_BOOTDEF_LOW和EMU_BOOTDEF_HIGH寄存器确定启动模式;独立启动则根据两个GPIO引脚状态选择启动模式。
BootLoader数据流结构采用十六进制格式,包含16位键值0x08AA、寄存器初始化值、入口点地址、数据块大小和目标地址等字段。每个数据块的大小以0x0000表示传输完成。数据传输遵循特定的字节序规则,例如8位模式下先发送最低有效字节(LSB),32位值则先加载最高有效字(MSW)。
BootLoader提供了CopyData函数用于数据复制,以及UART_Boot、Parallel_Boot、SPI_Boot、I2C_Boot、CAN_Boot和Secure_Boot等多种引导方式。每种引导方式都有其特定的数据流格式和操作流程,如UART引导支持自动波特率检测,SPI引导需初始化SPI模块并设置片选信号等。
193
