1. 程式人生 > >IAR編譯ZStack-CC2530,生成HEX檔案完全配置

IAR編譯ZStack-CC2530,生成HEX檔案完全配置

這兩天來一直在做Zstack-CC2530的實驗,讀了手冊也看了教程,卻怎麼也做不出應該有的結果,以為是自己改了協議棧的原始碼,一度把協議棧刪除又安裝N次,IAR(7.51A)解除安裝重灌,要不是電腦裡面裝了Visual Studio 2008 Teamedition以及一大堆的硬連線到第二硬碟,我早就重灌系統了!!

一度陷入絕望中~~今天偶然看到一篇說IAR配置的文章,才恍然大悟~TI啊!!你釋出Zstack的時候為什麼不把IAR該有的配置都配置好呢!!白白浪費了兩天的時間啊,你還我時間!!

網上看了無數的教程,什麼從零開始學Zstack啊,Zigbee入門啊,奧特曼讀書日記啊等等等等,無一例外都從程式的流程框架上給出了較為詳細的解說,可是沒有一篇文章提到要將Zstack-CC2530正確編譯為可下載執行的hex檔案還有哪些工作要做。可能只要用過IAR的人都會說編譯為可下載的hex檔案只要把linker--output--format的選項選為other就行了,這是最基礎的知識,根本不用說。可是對於Zstack-CC2530來說,還有一個重要步驟需要設定,正是因為這個重要步驟沒有正確設定,讓我在過去的兩天裡做實驗怎麼做怎麼不對,幾乎陷入抓狂的境地~】

IAR編譯ZStack-CC2530為可下載執行的HEX檔案的正確配置:

1.正確配置輸出檔案格式:選單選擇Project-Options-Linker-Output-Format,選擇Other。右邊的Output下拉框選intel-extended,Format variant下拉框選None,Module-local下拉框選Include all

2.還是在選單Project-Options-Linker-Output標籤中,勾上Override default選項,把編輯框中的檔名的字尾改為hex

以上兩步都是大多數人熟知的,下面這一步是針對大型程式編譯下載所必須的,也是大部分寫zstack教程的人所沒有提到的。
3.找到f8w2530.xcl檔案,並開啟。(這個檔案在"Projects/zstack/Tools/CC2530DB/"目錄下,也可以通過IAR編譯環境的左側Workspace視窗點開Tools資料夾看到)在f8w2530.xcl檔案中找到兩行被註釋掉的語句:

//-M(CODE)[(_CODEBANK_START+_FIRST_BANK_ADDR)-(_CODEBANK_END+_FIRST_BANK_ADDR)]*/
//_NR_OF_BANKS+_FIRST_BANK_ADDR=0x8000

把這兩行前面的"//"去掉,儲存,重新編譯,OK!

(注:去掉這兩行的"//"後在編譯輸出成hex格式時沒有問題,但在debug模式下編譯會提示警告:Warning[w69]: Address translation (-M, -b# or [email protected]) has no effect on the output format 'debug'. The output file will be generated but noaddress translation will be performed. 不過並不會影響debug除錯的使用。也許正是為了遮蔽掉此條警告,所以TI在釋出Zstack時選擇了預設為debug模式才註釋掉了這兩行指令,但在編譯hex時卻又不提示任何警告和錯誤,真是害人不淺~~)