1. 程式人生 > >在學習STM32 IAP 時,__attribute__ 絕對定位

在學習STM32 IAP 時,__attribute__ 絕對定位

在學習STM32 IAP 時,遇到了關於陣列儲存空間絕對定位的問題,例如:

u8 USART_RX_BUF[USART_REC_LEN] __attribute__ ((at(0X20001000))); 
1
首先我們先搞懂這裡的兩個關鍵字.

__attribute__ 是用來指定變數或結構位域的特殊屬性,該關鍵字後的雙括弧中的內容是屬性說明.
at 關鍵字可以用來設定變數的絕對地址,也就是通過這個關鍵字,指定某個變數處於記憶體裡面的某個給定的地址.
那麼上面的那條語句的意思就是,將 USART_RX_BUF 陣列的首地址設定為 0X20001000 (SRAM記憶體地址區域).

疑惑: 在學習STM32 IAP 程式設計時,IAP程式將串列埠接收到的APP bin檔案資料儲存在設定的區域上(0X20001000)SRAM中,更新APP程式時,將SRAM中接收到的資料寫入到Flash中,完成APP韌體的更新.那是否可以將串列埠陣列直接定位到Flash中呢?(Flash寫操作前,必須先進行擦除)
--------------------- 
作者:智小星 
來源:CSDN 
原文:https://blog.csdn.net/xinghuanmeiying/article/details/79563650 
版權宣告:本文為博主原創文章,轉載請附上博文連結!