bootloader

NVM 驱动程序包括对 NVM 的擦除(erase)、编程(program)和校验(verify)等基本操作,也包括对 NVM 的加密(secure)/解密(unsecure)和加保护(protection)/解保护(unprotection)操作。

Bootloader 必须使用 MCU 默认的中断向量表,因为每次复位后 MCU 都是从其默认中断向量表的复位向量取地址执行的;应用程序的中断向量必须进行偏移(通过相应的中断向量偏移寄存器,如 S12(X)系列 MCU 的 IVBR 寄存器或者 ARM
Cortex M 系列 MCU 的 SCB->VTOR 寄存器);而 NVM(P-Flash)的擦除都是按照sector 进行的,所以为了充分利用 NVM(P-Flash)空间,都将 Bootloader 分区到包含默认中断向量表的若干 NVM(P-Flash)sector(S12(X)系列 MCU 的 NVM 最后若干 sector, ARM Cortex M 系列 MCU 从 0 地址开始的若干 sector);

MPC5744P 总共有 2.5MB 片上 Flash 存储器,包括 4 个 16KB 的 Low Flash Block
(416KB = 64KB)、2 个 32KB 的 Mid Flash Block(232KB = 64KB)和 6 个 64KB 的
High Flash Block(664KB = 384KB)以及 8 个 256KB 的 256KB Flash Block
(8
256KB = 2MB)

属于不同 RWW 分区的 Flash Block 间支持 Read-While-Read 操作,即允许在 A Flash Block 的 Flash 驱动可以操作 B Flash Block;地址 0x80000~0x817FFF 的 96KB Flash 空间包含 LowFlash Block0~1 和 Mid Flash Block0~1 总共 4 个 Flash Block 被
分配作为模拟 EEPROM 使用,在整个 2.5MB 的 Flash 地址空间中,只有 Low Flash Block2~3, High Flash Block0~1 和和 256KB Flash Block0~3 四个 Flash Block 可以作为启动位置(boot location0~7)。

所谓 boot location 就是每次 MCU 复位后运行 BAM 时寻找合法启动半字和复位向量的区域。复位后 CPU 将从 boot location0~7 依次查找由正取 boot_ID–0x5A 组成的
合法复位配置半字(RCHW)(高 16-bit 为 RCHW,低 16-bit 保留,位于所在 Flash block 的起始地址)和应用程序开始地址(32-bit 复位向量,位于所在 Flash block 的起始地址偏移 0x4 的地址):

引导辅助模块(BAM)是一个只读存储器块,其中包含根据设备的引导模式执行的VLE代码。 在以单芯片模式启动时(请参阅第5章,设备启动模式),除非在未找到有效启动扇区的情况下进入“静态模式”,否则不执行BAM中存储的代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值