TC297的框图
4、TC29x BootROM 内容
- 启动软件(简称SSW);
- 实现附加功能的软件模块(Bootstrap loader);
- 测试固件
4.1启动软件
启动软件是芯片复位后第一个执行的软件。
SSW在CPU0上执行——所有其他cpu在引导期间都保持在halt状态,由用户软件启动,其中如下:
1)BootROM中的SSW起始地址是CPU0的Program Counter寄存器的复位值。从这个位置获取一条指令,这是任何设备启动后执行的第一条指令。
-在此入口点之后,固件立即检查测试模式,如果选择测试模式,则执行跳转测试固件
2)最后一条SSW指令跳转到第一条用户代码指令。根据用户选择的启动配置,可以从不同的位置获取第一个用户指令
启动软件包含了初始化设备的过程,具体取决于以下一个或多个步骤:
1)先前存储在专用Flash位置的信息
2)专用寄存器/内存位置中特殊位/字段的当前状态
3)触发SSW执行的事件类型(最后一个重置事件)
4)应用于外部引脚的值(可选)
SSW还调用其他固件模块
4.1.1触发启动软件执行的事件
SSW的执行可以由不同的事件触发。SSW识别触发(重置)事件并采取(部分)不同的执行流。
4.1.1.1 冷启动上电(初始化)
这是在电源被切断后设备的初始通电,或者换句话说——产生这个复位事件的唯一方法是对先前未通电的设备施加电源。
SSW在此事件开始执行时的条件包括:
1)所有寄存器都处于初始(重置)状态
2)Flash处于重置状态,即不活动,不准备执行任何(读/擦除/程序)操作
3)ram的内容未定义
4)时钟系统处于初始状态
由于设备在开机时处于“完全初始”状态,在这种情况下,SSW流分别较长,并且与其他重置事件相比覆盖的活动数量最大。
4.1.1.2 系统复位
注意:从SSW的角度来看,系统复位的处理一般与“热上电”的处理相同。因此,在本章中进一步说明,当系统复位时——在热上电时应用相同的SSW处理,例外情况将被特别通知。
这个重置事件可以由不同的来源请求:
1)设备内部硬件-从模块像看门狗定时器和安全/内存控制逻辑
2)外部硬件-当主动信号被应用到定义的设备引脚时
3)软件-当定义的控制位分别安装在用户代码执行
对于大多数源,生成系统复位是软件可配置的特性。例外是PORST引脚,应用有源低电平产生系统复位,只有当供电电压在周围的时间窗内永久高于定义的水平-例如,设备在系统复位激活之前和期间持续供电。否则,当电源下降到某个水平以下时,立即启动电源。EVR模块支持所有这些功能。
系统复位后SSW开始执行的条件包括:
1)所有受这些重置类型影响的寄存器都处于初始状态
2)Flash处于重置状态,即不活动,不准备执行任何(读/擦除/程序)操作
3)ram的内容与触发系统复位前相同
4)时钟系统处于初始状态
4.1.1.3 应用程序重置
与系统重置类似,应用程序重置可以由不同的来源请求:
内部/外部硬件以及软件。对于所有的源,生成系统复位是一个由软件配置的特性。
当应用程序重置时,SSW执行开始的条件包括:
1)连接到这种重置类型的寄存器处于初始(重置)状态
2)Flash处于读模式
3)所有其他的——ram和环绕逻辑、时钟系统、系统复位下的寄存器——都不受此事件的影响。
在应用程序复位后,设备状态发生有限的变化,在这种情况下,SSW流量最短。
4.1.2启动时时钟系统
设备启动时时钟系统的状态取决于复位事件的类型:
- 上电和系统复位时-时钟系统处于初始状态,即:
- 在应用程序复位时钟系统不改变它的状态,因此,设备运行的频率和时钟源与复位前相同。
在相同的时钟系统状态下,第一个用户代码启动,除了开机时的Bootstrap Loader模式。
4.1.3在启动过程中重写RAM
上电和系统复位时的启动过程在CPU0 DSPR的开始部分最多可以覆盖8kbyte。
因此,应用软件不应该使用该区域来保存数据,这些数据必须通过热上电或系统复位来保存。
此外,如果该RAM在备用期间一直提供,SSW在从备用模式退出时对CPU0 DSPR执行特殊处理。
为了确保正确处理:
1)在冷上电复位时,SSW在CPU0_DSPR中从地址D000 ' 2000H开始的所谓的“保留区域”中存储16个单词(总共64字节)信息
2)如果应用程序希望在备用模式下保持CPU0 DSPR的供应并保存信息:
——在进入待机模式之前,用户代码必须执行第4.5章描述的CPU0 DSPR准备
——除非在进入待机模式前执行准备程序,否则用户代码不能在D000 ' 2000H-D000 ' 203FH接触预留区域内的数据(见上)
4.1.4 Boot Options Summary引导选项总结
概述TC29x在用户模式下的启动配