[DESCRIPTION]
根據自身需求,客戶有時候需要把某一段數據/代碼放在Flash的某個固定地址
[SOLUTION]
如果需要把數據/代碼放到Flash的固定地址,請參照如下操作步驟:
1. 首先要判斷Flash上面,是否有足夠的空閑空間存放這段數據.
請打開build\project\ckImgsize.log,找到如下資訊:
[Check VIVA bin size]
The Boundary of VIVA bin = xxxxx bytes
Actual VIVA End Address = yyyyy bytes
其中,Actual VIVA End Address的值表示的是,目前Code區域實際的大小; The Boundary of VIVA bin是表示
預留給Code的區域大小。實際值與預留值之間的差值,就是目前Flash的空閑大小.如果空閑空間足夠,那就可以考慮把
數據放到Flash空閑區域的某個固定地址.來自半導體社區
2. 把數據/代碼編譯鍊接生成customer binary 。為了操作簡單,建議把customer bin放在工程中一起編譯鍊接.
3. 在SV5(如:50/60/76)平台中,BIN都有一個GFH結構,所以為了能讓Flash tool能否識别customer binary ,需
要給這個BIN添加一個GFH結構。
[關于這一點可以參考FAQ07397--------如何添加GFH頭部和利用flash tool下載 ]
4. 為了讓Flash tool順利的把BIN放到固定地址,還需要對scatfile進行修改.
例如:如果要把數據放到0x400000開始的地址;[在這裡要注意一點,在50/60平台Flash的起始地址是從0x1000
0000開始]
MY_ROM 0x10400000 0x00200000 //這裡表示從0x400000開始,範圍為0x200000
{
MY_GFH 0x0
{
* (MY_GFH, First)
}
MY_ROM_1 0x0
{
mytest.obj ( RO)
5. 修改scatfile之後,為了防止編譯之後被覆蓋,需要在scatfile文件的注釋部分添加: [MAUI_12345678]
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!