F280039C Flash Bank Sec2被全部佔滿 |
今天在日常開發C2000 MCU的時候,檢查了一下Flash的使用量,發現明明沒打甚麼但卻用掉兩個Section,讓我很好奇裡面是被什麼填滿。
打開發現全部都是滿滿的Default ISR function,從ADC、PWM到BGCRC、還沒用到的CLA全部幫你宣告一次,在研究下去發現是TI C2000Ware 的 Driverlib 怕微處理機在遇到例外狀況的時候跳到沒有宣告的中段副程式,因此幫使用者先定義好預設的中斷服務。
這些預設的中段程式都是在f28003x_defaultisr.c中被宣告的,但若使用者自己額外宣告中斷副程式,使用者的設定會優先於系統預設的設定。
有點像是STMicro的HAL Library中,weak function的概念,但TI用相似的方式來實現它。
Flash Sec2中展開的內容 |
雖然Drivelib很好心的增加系統穩定性,但每個副程式都占用10個單位的記憶體,有點吃不消。
另一個角度想,F280039C的Flash很大就是了,所以個人看法是:
在Flash製成越來越進步的時代,就不必要為了這一點點小空間犧牲系統的穩定性吧!
張貼留言
留個言吧