文章目錄
- 前言
- UCB BMHD
- PINDIS
- HWCFG
- LSENA0-3
- LBISTENA
- CHSWENA
- BMHDID
- STAD
- CRCBMHD
- CRCBMHD_N
- PW0-7
- 總結
前言
AURIX Tc系列Mcu啟動過程,必須要了解BMHD,本文詳細介紹BMHD的定義及使用過程
UCB BMHD
UCB表示User Configuration Block,UCB是Dflash,存儲的地址如下:
BMHD表示Boot Mode Headers.BMHD存儲在UCBU的前四個block(還有四個copy的block在8-11個block)
BMHD0和BMHD8有密碼,BMHD1-3,UCB09, UCB10, UCB11沒有密碼
BMHD定義如下:
PINDIS
按配置引腳選擇模式:
0B啟用HWCFG引腳選擇模式功能
1B禁用HWCFG引腳選擇模式功能
這個功能是用來禁止硬件PIN(HWCFG)來選擇啟動模式的
HWCFG
啟動模式選擇:
111B內部從Flash啟動
110B備用啟動模式(ABM)
100B通用引導加載模式(ASC/CAN BSL)
011BASC Bootstrap Loader Mode (ASC BSL) elseinvalid
如果禁用了HWCFG PIN啟動,則只能通過配置HWCFG位來選擇啟動模式
LSENA0-3
通過SSW對CPU0進行同步監控控制:
0B關閉CPU0-3的Lockstep監控
1B開啟CPU0-3的blockstep監控
LBISTENA
LBIST執行由SSW啟動:
0B禁用由SSW啟動LBIST
1B啟用冷上電SSW啟動LBIST
該BIT是為了啟動時SSW禁用LBIST
CHSWENA
檢查軟件(CHSW)執行后的SSW:
101B關閉SSW后的CHSW執行
否則開啟SSW后的CHSW執行
該BIT是為了啟動時SSW禁用CHSW
BMHDID
固定0xB359,其他值無效
STAD
起始地址(總是必須在PFLASH內部, 32bit對齊):
如果選擇了備用啟動模式,則該地址為ABM頭的起始地址
如果選擇了內部flash啟動,則該地址為內部啟動的起始地址
否則則不考慮模式選擇
CRCBMHD
前8個字節的CRC
CRCBMHD_N
前8個字節的CRC反轉值
CRC的計算方法如下:
Use CRC32
A polynomial of: 0x4C11DB7
Initial value: 0xFFFFFFFF
Final XOR Value: 0xFFFFFFFF (for non inverted CRC)
Final XOR Value: 0x00000000 (for inverted CRC)
可以使用CRC計算中的工具計算
當起始地址為0xA00A0020時,對應的CRC值為0x4FB4A033ul, 0xB04B5FCCul
PW0-7
保護UCB的密碼,如果寫入了值,并通過CONFIRMATION寫入了使能保護,則修改UCB時需要輸入密碼
DMU_HF_PROTECT.PRODISx可以指示禁用保護的狀態,為1時說明是禁用保護的狀態
解鎖方法如下:
對同一個地址寫不同的值,第一次為UC,第二次為PW0,第三次為PW1.。。以此類推
總結
本文介紹了BMHD的定義,后面還會繼續介紹BMHD的ORIGIN和COPY的用法,以及密碼保護的使用