Quantcast
Channel: Microchip Taiwan :: 論壇
Viewing full articles (4647 articles)
Browse article index
↧

Re: ATSAMHA1E16AB 這顆IC如何設定程式保護? [by Libra]

$
0
0
32-bit SAM MCU (ARM® core)::ATSAMHA1E16AB 這顆IC如何設定程式保護?
相同料號的IC當然SecurityBit的地址是一樣的,
另外這行指令在執行 Debug 時, 並不會編譯及設置 Security Bit.
#ifndef __DEBUG
const unsigned int __attribute__((space(prog), keep, address(0x41004000))) SET_SECURITY_BIT = 1;
#endif

MPLAB X IDE 的某一個版本有一個盲點, (我目前使用最新的版本已經修正)
會誤以為可以在Security Bit設置後還可以讀回內容,
當正常燒錄設有Security Bit的程式到Chip之後, 接著立即執行讀回Flash的內容,
此時, Execution Memory中會有看似讀回的內容, 但其實是之前燒錄的HEX內容,
另外, 執行Erase Chip (Erase All) 也會清除 Security Bit.
新專案預設會先執行 Erase All 再燒錄 Hex.
原圖

因此, 請使用以下步驟驗證Security Bit是否有作用
1. 執行正常燒錄 Hex 到Chip, (不要使用Debug燒錄)
2. 關閉 X IDE
3. 開啟 X IDE,
4. 前去 Execution Memory 視窗查看內容是否為都為 0xFFFFFFFF
5. 直接執行讀取 Flash 的步驟 (不要燒錄後再讀取)
6. 前去 Execution Memory 視窗查看內容
7. 此時的 Execution Memory 會出現, 不是程式但也不是 0xFFFFFFFF 整齊的內容
這是我用SAMD21設好Security Bit後讀回的內容.
原圖
↧

Viewing full articles (4647 articles)
Browse article index

Latest Images

Trending Articles



Latest Images