NXP

IAR使用笔记

2019-07-12 13:45发布

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。 转自:http://www.xuebuyuan.com/733872.html