IAR使用筆記

來源:互聯網
上載者:User

IAR使用筆記(1)

8月8號早上10點,參加了中電網線上座談,主題是“恩智浦半導體(NXP Semiconductors)基於LPC2000的微控制器的開發及調試”。晚上到實驗室想用用IAR但卻還很生疏,於是把本次線上座談的PPT下載到機器上再看看,不過看ppt很煩,不如把要點記下來。

(1) Project->Creat Project->Empty Project->填寫LPC2378_Demo(注意不像有的IDE那樣要自己寫副檔名!)

(2)將光碟片佩帶的三個設定檔(config、StartUp、ZLG_src)copy 到LPC2378_Demo檔案夾下。

(3)右擊,添加檔案到工程。添加StartUp下的lpc2300_cstartup.s79;添加ZLG_src檔案夾下的target.c、main.c和LPC23xx.h到工程。

(4)然後就可以修改main.c檔案了。

(5)注意在config.h中有兩個開關IRQ的宏:IRQEnable()和IRQDisable()。

[餘留問題]
在IAR環境下如何移植或如何得到移植好的uC/OS-II?
在uCOS中開關IRQ中斷的宏是:OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()。

 

(6)Project->Edit Configuration; 點擊New,在Name一欄添加“Debug In RAM”和“Debug In Flash”配置目標,使用者也可將Configurations中的Release和Debug去掉。然後OK。

(7)在Workspace地區下拉式清單中選擇Debug In RAM,右擊工程名LPC2378_Demo,彈出右鍵菜單,選擇Options...,此時彈出Options for node "LPC2378_Demo"對話方塊。

 

(8)General Options->Target->Processor variant: Device:NXP LPC2378; tick off Generate interwork; Processor mode: Arm; Endian mode: Little; Stack align: 4 bytes。

 

(9) to be continued...

dizzy, time to go to bed.

 

IAR使用筆記(2)

(9) Debugger->Setup->Driver:RDI; Run to main; 另外還可以選擇使模擬調試前運行指定的設定檔(如配置memmap寄存器),在“Use macao file”中進行設定。注意:在ram中調試時若使用了irq中斷則必須進行中斷向量重新對應!使用“$PROJ_DIRS/config/ram.mac”設定檔。在我的例子是這樣的,點擊“..”尋找ram.mac,發現它在

F:/NXP/LPC2378_Demo/config/ram.mac,

選中開啟它就好了。
[餘留問題]
如果在ram中調試時沒有使用irq中斷,而我也使能了../ram.mac設定檔的話情況會怎樣?

(10) Debugger->Download->兩種情況:
在內部ram中調試則不要選中Use flash loader;在flash中調試則必須選中它!
注意Debug in RAM;Debug in FLASH的不同設定。

(11) RDI->Manufacturer RDI driver: C:/Program Files/H-JTAG V0.3.1/H-JTAG.dll。這是H-JTAG的驅程。

(12)為了可以正確模擬調試,還需對工程的編譯選項進行一些配置。
Linker->Output->Format->tick off "Allow C-SPY-specific extra output file";
Linker->Extra Output->tick off "Generate extra output file"->Format->simple-code!
[餘留問題]
What's the difference between simple-code and simple?

另外還需要在config頁中選擇Linker command file,即代碼、變數、堆棧的地址分配,注意在ram中調試就選擇RAM.xcl,而在Flash中調試就選擇FLASH.xcl,如下:
Linker->config->tick off "Override default"->在我的例子是這樣的,點擊“..”尋找RAM.xcl,發現它在

“F:/NXP/LPC2378_Demo/config/RAM.xcl”,選中它開啟就好了。;

到此,Debug In RAM的配置完畢。接著進行Debug In FLASH的配置。在Debug in Flash偵錯目標下,很多設定與in RAM一致,只是講述的不同部分。下面(13)至(15)是不同之處,這是需要注意的。
(13)在Workspace地區下拉式清單中選擇Debug In FLASH,右擊工程名LPC2378_Demo,彈出右鍵菜單,選擇

Options...,此時彈出Options for node "LPC2378_Demo"對話方塊。

(14) Debugger->Setup->Driver:RDI; Run to main; 和前面Debug in RAM不同,這裡無需設定Use macro file,因為不存在中斷向量重新對應問題!

Debugger->Download->tick off "use flash loader"。
(15)在Linker->config選擇Linker command file,即代碼、變數、堆棧的地址分配。
Linker->config->tick off "Override default"->點擊“..”尋找Flash.xcl,發現 它在

“F:/NXP/LPC2378_Demo/config/Flash.xcl”,選中它開啟就好了。

IAR使用筆記(3)
IAR環境的相關參數配置好之後,接下來開始偵錯工具。compile->make->debug。
在這裡可能會遇到以下問題。
(1)路徑問題:
Fatal Error[Pe005]: could not open source file "../ZLG_I2C/I2CINT.h" F:/NXP/LPC2378_Demo/ZLG_src/config.h 74
為此,在Project中add"../ZLG_I2C/I2CINT.h"。把整個ZLG_I2C目錄copy到project目錄下就行。

(2)點擊make,提示:
Error[e46]: Undefined external "IRQ_I2C" referred in main ( F:/NXP/LPC2378_Demo/Debug In Flash/Obj/main.r79 )
Error[e46]: Undefined external "I2C_WriteNByte" referred in main ( F:/NXP/LPC2378_Demo/Debug In Flash/Obj/main.r79 )
Error[e46]: Undefined external "I2C_ReadNByte" referred in main ( F:/NXP/LPC2378_Demo/Debug In Flash/Obj/main.r79
呃~~怎麼回事?-_-|| 開啟IAR_FOR_LPC2300常式比較看看,發現是沒有在workspace中添加I2CINT.c,這個好辦,right click->add group->"I2CINT"->add file: I2CINT.c,then MAKE again, and the Messages column indicates: "Total number of errors: 0"。
OK,have a break。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.