XMC4000引导模式的程序都放在ROM区域,如下图所示,这个区域的程序是芯片出厂时就存在的,而且用户无法修改。
XMC4000有上电复位(PORST)和系统复位(System Reset)两种复位方式。
上电复位可以根据外部引脚TMS/TCK的状态进入下面几种模式的一种:
- ASC_BSL
- Normal
- BMI
- CAN_BSL
系统复位后可以根据寄存器SWCON[3:0]的状态进入下面几张模式的一种:
- ASC_BSL
- Normal
- BMI
- CAN_BSL
- PSRAM Boot
- ABM-0
- ABM-1
- Fallback ABM
当芯片上电时,SWCON[3:0]复位为0,TCK和TMS的值会在上电时load到HWCON[1:0],HWCON[1:0]和SWCON[1:0]在物理上是同样的两位,所以上电复位后,根据TCK和TMS的引脚状态会进入Normal, ASC_BSL, BMI, CAN_BSL这些Boot mode的一种。
另外在程序中也可以人为的修改SWCON[3:0]的值,然后再进行软件复位,来进入下面任意一种boot mode。因为SWCON[3:0]只有在上电复位时才会清0,用软件复位则不会影响它,而最终确定进入哪个boot mode就是看SWCON[3:0]的值。
可以通过上电复位或软件复位使MCU进入不同的引导模式,例如进入ASC_BSL模式
1)通过设置外部引脚和上电复位
a) 设置TMS=0,TCK=1
b) 芯片上电
c) 接着PC就可以发送ASC_BSL的通讯协议命令了
2)通过修改SWCON和软件复位
a) 程序修改STCON.SWCON[3:0] =b'0001
b) 清除复位标志
c) 软件复位
不同引导模式的应用场合
关于ABM模式下利用USB对程序进行升级的例程,可以参考附件。
|