韌體實作

靠北程式| TI MPS430 FR2311 – FRAM

■說明

簡單說就是記憶數值功能,再斷電後也可以讀回來。

●要記憶在哪? 可以用的位置如下圖

規格書
規格書

不過上面寫法怪怪的😑

應該不是FFFFh to F100h 應該是 FF7Fh to F100h

程式 FRAM:0xF100 ~ 0xFF7F (0xE80 bytes = 3.75 KB)

中斷向量+簽名:0xFF80 ~ 0xFFFF (128 bytes)

這樣比較合理

0xFFFF—————— | | 中斷向量+簽名 | 0xFF80—————— 0xFF7F—————— | | 程式 (可寫入這邊) | 0xF100—————— https://vocus.cc/article/6999551cfd897800011dfefa

●結論 0xF100 ~ 0xFF7F 可以用來記憶 但要避開程式區 因此要在寫好程式後build完, 取得map檔(程式分佈位置) 後才能決定要使用哪個位置 下面是我CCS build完後 所產生的map檔(在Debug下)

18d20fbe-cecd-44eb-90b4-8e4cd6de863c
18d20fbe-cecd-44eb-90b4-8e4cd6de863c

拿去給AI分析後得到 0xF800 是避開程式區的

AI分析
AI分析

●注意事項 未來程式又有變更,記憶體配置可能又會不一樣,所以可能又會衝到, 保險一點每次要驗證一下功能🫣。 AI有時候還是會出錯,不要太相信他, 自己MAP檔也要看一下, 叫AI輔助你看。 例如:你問AI哪區可以寫,你要自己再回去看MAP檔是不是真的能寫

■程式碼

for IAR https://github.com/GGeggsong/TI-MSP430FR2311-FRAM/blob/main/main_IAR.c

for CCS https://github.com/GGeggsong/TI-MSP430FR2311-FRAM/blob/main/main_CCS.c

兩種IDE可以驗證的方式可能會不同, 主要是debug without download功能 有空可參考下篇解說 [IAR/CCS/MPLAB X : 功能差異]https://vocus.cc/article/691bfeeefd89780001e7fca4

■影片教學


延伸閱讀

繼續讀同一個主題

這裡收錄 G蛋一路工作、學習與生活留下的整理,可以從下方前後篇繼續閱讀。

查看 方格子 原文