全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2658
推到 Plurk!
推到 Facebook!

想再請教一個msp430f149 flash問題...

答題得分者是:TaylorKe
rookie
一般會員


發表:26
回覆:38
積分:12
註冊:2003-04-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-07 16:57:32 IP:61.222.xxx.xxx 未訂閱
想再請教一個問題... msp430f149有內建60k flash 讓code 或 data用.... 那我應該怎麼.xcl中設定 讓data 與 code 分開放在我想放的地方呢... 不然erase flash時 不小心把flash erase那不就不能動了... 我是用iar c, 有大概4k的code,和40k的database 謝謝喔...
TaylorKe
一般會員


發表:21
回覆:40
積分:17
註冊:2003-08-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-10 12:48:03 IP:211.74.xxx.xxx 未訂閱
請問一下rookie兄.你是要透過bootloader來erase還是自我燒錄的功能來做erase呢?
TaylorKe
一般會員


發表:21
回覆:40
積分:17
註冊:2003-08-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-11-10 13:13:00 IP:211.74.xxx.xxx 未訂閱
你可以試試看開一個陣列 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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-11-19 09:04:45 IP:61.222.xxx.xxx 未訂閱
謝謝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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-11-21 10:53:44 IP:203.70.xxx.xxx 未訂閱
rookie兄,請教一下,您的混合陣列,結構是如何訂義的呢?
TaylorKe
一般會員


發表:21
回覆:40
積分:17
註冊:2003-08-28

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-11-23 20:33:30 IP:219.68.xxx.xxx 未訂閱
例:struct score { int value0; char value1; int value2; } struct scor value={0x0001,0x02,0x0003}; 您可以試著先訂好結構再把陣列指向結構看看~
rookie
一般會員


發表:26
回覆:38
積分:12
註冊:2003-04-23

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-11-24 10:32:07 IP:61.222.xxx.xxx 未訂閱
謝謝TaylorKe兄的回應 我的混合陣列定義如下.... struct out_map { int Lv; double X; double Y; char P[40]; }; 我現在又回到1.26寫了 再次感謝TaylorKe兄 發表人 - rookie 於 2003/11/24 10:33:52
系統時間:2024-12-04 1:26:10
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!