想再請教一個msp430f149 flash問題... |
答題得分者是:TaylorKe
|
rookie
一般會員 發表:26 回覆:38 積分:12 註冊:2003-04-23 發送簡訊給我 |
|
TaylorKe
一般會員 發表:21 回覆:40 積分:17 註冊:2003-08-28 發送簡訊給我 |
|
TaylorKe
一般會員 發表:21 回覆:40 積分:17 註冊:2003-08-28 發送簡訊給我 |
你可以試試看開一個陣列 const char DataBase[0xa000] @0x2100={放你要的值};
在compiler後.就會在.txt檔中出現你要的陣列.在新版的iar的c用連續訂定的陣列,一定要在程式中要呼叫到,否則在compiler後不會自動被link上的喔!
msp430f149的起始位址是從0x1100開始的所以你的程式在compiler後會自動排在0x1100~0x2100中,所以你要從0x2100開始放你的database的資料,但是如果你要使用segment erase 那就必須將你的database依segment 的位址擺放,因為msp430的segment0是從0xfe00~0xffff,segment1是從0xfc00~0xfdff以此類推,所以你要放好自己的database在固定位址,在erase時,就不要用mass erase的指令,要使用erase segment的指令來完成.
|
rookie
一般會員 發表:26 回覆:38 積分:12 註冊:2003-04-23 發送簡訊給我 |
謝謝TaylorKe兄的回應,前一陣子比較忙,所以沒來這裡逛.小弟是剛剛接觸單晶片,很嫩..小弟把問題再說清楚一點好了
我在ira 1.26 中有設成功,把資料在一開始的宣告時就放進去,但是1.26是試用版,TI 付贈的有2k的限制.我就把它換成2.21版的,
但是寫法好像不太一樣.麻煩幫我看看
====================1.26的設定====================
// Main memory (FLASH)
-Z(CODE)CODE,CONST,CSTR,CDATA0,CCSTR=1300-2FFF
-Z(CODE)DATA_TABLE=3000-FFDF
---------------一開始的宣告------------------------
#pragma memory=constseg(DATA_TABLE)
struct map data_map[192]={
{4,-3020559.72087342,4933217.06003554,"11111111111111"},....};
#pragma memory = default
----------------------------------------------------
====================2.21的設定======================
-Z(CONST)DATA16_C,DATA16_ID,DIFUNCT,CHECKSUM=1100-3FFF
-Z(CODE)DATA_TABLE=4000-FFDF
------------------一開始的宣告-----------------------------
#pragma constseg=DATA_TABLE
struct map data_map[192]={
{4,-3020559.72087342,4933217.06003554,"1111111111111"},...};
---------------------------------------------------------
|
TaylorKe
一般會員 發表:21 回覆:40 積分:17 註冊:2003-08-28 發送簡訊給我 |
|
TaylorKe
一般會員 發表:21 回覆:40 積分:17 註冊:2003-08-28 發送簡訊給我 |
|
rookie
一般會員 發表:26 回覆:38 積分:12 註冊:2003-04-23 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |