理论教育 装载器模式:实现类库、动态链接库和插件化等多种功能

装载器模式:实现类库、动态链接库和插件化等多种功能

时间:2023-06-15 理论教育 版权反馈
【摘要】:表14-3 引导模式选择注意,未编程烧写过的器件GetMode选项的默认行为就是引导到Flash。例14-2 通过SCI引导装入调试应用软件。4)引导ROM的SCI装载器等待数据。引导装载器使用EMU_BMODE并引导到希望的装载器或单元。CCS断开连接,GPIO34和GPIO37用于确定引导模式。表14-5 GetMode用OTP数值通过仿真引导选项,可以使用下面的引导模式。通过调试器将EMU_KEY值写入0xD00,EMU_BMODE值写入0xD01单元,在CCS环境建立并装入项目,复位器件,可以运行实例。

装载器模式:实现类库、动态链接库和插件化等多种功能

为适应不同的系统要求,引导ROM提供多种引导模式。TRST与两个GPIO引脚的状态用于确定期望的引导模式,见表14-3。

14-3 引导模式选择

978-7-111-57271-8-Chapter14-14.jpg

注意,未编程烧写过的器件GetMode选项的默认行为就是引导到Flash。可以通过烧写OTP的两个单元来改变这种行为。另外,这些单元如果被应用软件使用,那么只要OTP_KEY!=0x55AA和/或OTP_BMODE不是有效值,GetMode将会跳转到Flash。

图14-5给出了引导ROM过程概览。下面详述每一步。

当连接仿真器时,采用以下引导方式:仿真引导。在此情况下,仿真头连接到器件978-7-111-57271-8-Chapter14-15.jpg且引导ROM从PIE中断向量表的前两个单元得到引导方式。这两个单元被称为EMU_KEY和EMU_BMODE。

Get_Mode()使用的值见表14-4。

EMU_KEY值为0x55AA表明EMU_BMODE是有效的。无效的值或无效的模式会造成等待引导模式。EMU_BMODE和EMU_KEY在上电时978-7-111-57271-8-Chapter14-16.jpg由引导ROM自动填写。EMU_BMODE也可以通过调试器手动初始化

978-7-111-57271-8-Chapter14-17.jpg

图14-5 引导ROM函数概览

14-4 EMU_KEYEMU_BMODE的有效值

978-7-111-57271-8-Chapter14-18.jpg

下面是仿真引导的两个例子。

例14-2 通过SCI引导装入调试应用软件。包括如下步骤:

1)为模式1即SCI引导配置引脚,并开始上电复位。

2)引导ROM检查978-7-111-57271-8-Chapter14-19.jpg,并用两个引脚确定SCI引导。

3)引导ROM向EMU_KEY填写0x55AA,向EMU_BMODE填写SCI_BOOT。

4)引导ROM的SCI装载器等待数据。

5)连接调试器,978-7-111-57271-8-Chapter14-20.jpg高电平

6)完成调试器复位并运行。引导装载器使用EMU_BMODE并引导到SCI。

例14-3 用户希望连接仿真器,但是在仿真器连接之前并不希望应用代码开始执行。包括如下步骤:

1)为模式2即等待配置引脚GPIO37和GPIO34,并开始上电复位。

2)引导ROM检查978-7-111-57271-8-Chapter14-21.jpg,并用两个引脚确定等待引导。

3)引导ROM向EMU_KEY填写0x55AA,向EMU_BMODE填写WAIT_BOOT。

4)引导ROM在等待程序。

5)连接调试器,978-7-111-57271-8-Chapter14-22.jpg变高电平。

6)通过调试器修改EMU_BMODE,引导到FLASH或其他希望的引导模式。

7)完成调试器复位并运行。引导装载器使用EMU_BMODE并引导到希望的装载器或单元。

注意,仿真器的行为会因978-7-111-57271-8-Chapter14-23.jpg而不同。有的仿真器只有在CCS处于连接状态时将TRST拉为高电平。对于这些仿真器,若CCS断开连接,则978-7-111-57271-8-Chapter14-24.jpg将返回低电平状态。CCS断开连接,GPIO34和GPIO37用于确定引导模式。对于这些仿真器,即使仿真器断开物理连接,这种情况也是真实的。

一些仿真器当CCS连接时拉高978-7-111-57271-8-Chapter14-25.jpg,只要电源传感引脚活跃当CCS连接时会保持高电平。即使在CCS断开后978-7-111-57271-8-Chapter14-26.jpg也保持高电平。对于这些仿真器,将使用存储在RAM中的仿真模式,除非目标板周期上电(Power Cycled)引起TRST的状态复位返回低电平状态。

如果仿真器未连接,由于引导模式引脚的状态引起的引导模式如下:

(1)等待

2803x器件不支持其他C2000器件可用的硬件复位等待(Wait-in-reset)模式。“等待”引导模式可以用于模拟复位等待模式。“等待”模式对于用CSM密码编程(即安全)调试器件是非常重要的。在器件上电时,CPU将开始运行且可能执行一条实现对保护仿真代码安全逻辑(ECSL)区访问的指令。如果出现了此情况,ECSL将脱开并断开仿真器连接。“等待”模式通过在引导ROM循环直到连接仿真器来防止这种情况发生。这种模式将WAIT_BOOT写入到EMU_BMODE。一旦连接仿真器,用户可以用调试期间所需的合适的引导模式手工写入EMU_BMODE。(www.daowen.com)

(2)SCI

这种模式下,引导ROM将通过SCI-A端口装入要执行的代码到片内存储器

单机模式下,引导ROM将SCI_BOOT写入EMU_BMODE。

(3)8位并行I/O

并行I/O引导模式通常只用于产品Flash编程器

(4)获取模式(GetMode)

GetMode选项使用OTP的两个单元确定引导模式。未编程烧写过的器件总是引导到Flash。通过烧写器件OTP的两个单元,可以改变引导行为。如果两个单元的任何一个不是期望值,引导将会跳转到Flash。

Get_Mode()函数使用的数值见表14-5。

14-5 GetMode用OTP数值

978-7-111-57271-8-Chapter14-27.jpg

通过仿真引导选项,可以使用下面的引导模式。一些模式在编程获取模式选项也可以使用。

(1)跳转到M0SARAM

该模式只能在仿真引导978-7-111-57271-8-Chapter14-28.jpg时可用。引导ROM软件配置28x器件运行并直接跳转到地址0x000000,这是M0存储器块的开始地址。

在这种模式下,EMU_KEY(0xD00)=0x55AA,EMU_BMODE(0xD01)=0x000A。通过调试器将EMU_KEY值写入0xD00,EMU_BMODE值写入0xD01单元,在CCS环境建立并装入项目,复位器件,可以运行实例。

(2)跳转到Flash存储器的分支指令

跳转到Flash是获取模式引导选项的默认行为。跳转到Flash作为一种仿真引导选项也是可行的。

在这种模式下,引导ROM软件将器件配置为28x运行且直接跳转到0x3F 7FF6单元。该单元正好在128位代码安全模块(CSM)密码单元前面。用户需要预先在0x3F 7FF6单元编程以将代码执行重新定向到定制好的引导装载器或应用程序代码。

(3)SPI EEPROM或SPI Flash引导模式(SPI-A)

跳转到SPI在单机模式下作为编程获取模式选项是可用的。即将器件配置为单机模式SPI引导,OTP_KEY和OTP_BMODE单元应编程为SPI引导且引导模式引脚配置为获取模式引导选项。SPI引导作为仿真引导选项也是可用的。

在这种模式下,引导ROM将通过SPI-A端口从外部SPI EEPROM或SPI Flash装入代码和数据到片内存储器。

(4)I2C-A引导模式(I2C-A)

跳转到I2C在单机模式下作为编程获取模式选项是可用的。即将器件配置为单机模式I2C引导,OTP_KEY和OTP_BMODE单元应编程为I2C引导且引导模式引脚配置为获取模式引导选项。I2C引导作为仿真引导选项也是可用的。

在这种模式下,引导ROM将通过SPI-A端口从I2C-A总线上地址0x50处的外部串行EEPROM或Flash装入代码和数据到片内存储器。

(5)eCAN-A引导模式(eCAN-A)

跳转到eCAN在单机模式下作为编程获取模式选项是可用的。即将器件配置为单机模式eCAN引导,OTP_KEY和OTP_BMODE单元应编程为CAN引导且引导模式引脚配置为获取模式引导选项。eCAN引导作为仿真引导选项也是可用的。

在这种模式下,使用eCAN-A外设的邮箱1将代码和数据传送到片内存储器。传送为8位数据流,每次通信传送两个8位数据。

表14-6为仿真引导模式,表14-7为单机引导模式。

14-6 仿真引导模式(978-7-111-57271-8-Chapter14-29.jpg,GPIO37/TDO=x,GPIO34=x)

978-7-111-57271-8-Chapter14-30.jpg

14-7 单机引导模式978-7-111-57271-8-Chapter14-31.jpg

978-7-111-57271-8-Chapter14-32.jpg

在表14-6和表14-7中,获取模式(GetMode)表示引导模式由OTP_KEY和OTP_BM-ODE单元的编程数值确定。EMU_KEY和EMU_BMODE数值通过引导ROM写入,如果连接了调试器,用户可以直接改写数值。符号x表示无关。使用GPIO32和GPIO33引脚的I2C,在某些封装形式中不可用。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈