初步接触IAR的开发环境.
版本:Embedded Workbench 8.0 IAR for 430
编程优化
右击Project,选中【C/C++ Compiler】,【Optimizations】,【Level】,根据需求选择速度优先和大小优先,选择不同的等级【None】、【Low】、【Medium】、【High】
芯片选择
右击侧边栏的Project,选中【General Options】,【Target】,【Device】
Debugger
右击Project,选中【Debugger】,【Setup】、【Driver】,有【FET Debugger】和【Simulator】两种。
FET Debugger:【Connection】中选择仿真器的类型,【Download】中选择【Verify download】以校验下载到单片机中程序的大小是否与编译的程序一致;【Flash erase】中选择不同的Flash擦除方式;【Breakpoints】中勾选【Use software breakpoints】表示超过三个断点之后,再添加断点就是虚拟断点,会使得调试效率变低速度变慢
Simulator:不做考虑,默认即可
调试Q&A
调试问题1:连接仿真器之后提示要升级
如果不选【Y】下次每次连接都会有提示,点击【Y】之后大概率会升级成功,但也有可能会出现升级失败:
解决方法:升级失败的原因有很多,最主要的可能性是连了device,这种情况下将JTAG拔掉不连device,再将另一头的USB也拔掉重插;
如果问题没有解决,那就检查一下C盘文件。只要是IAR5.3及以下的版本就可以随便点是,更新下即可。如果是IAR5.4以上版本提示升级,首先要查看下电脑系统C:\WINDOWS\system32\drivers下面有没有usbser.sys文件,如果没有肯定不能升级的,升级就坏了驱动会不识别的,如果C:\WINDOWS\system32\drivers路径下有usbser.sys文件,那么就可以放心升级了。
升级过程:在此期间不能拔插仿真器,中途停止会导致仿真器损坏。
IAR5.3及以下版本识别的端口号是VCP;IAR5.4以上版本识别的端口后就是CDC了。
调试问题2:连接设备失败
解决方案: 主要的是CPU出现故障或者是JTAG没有插好方向。在更换了JTAG插口之后仿真器更新成功了
调试问题2:进入debug模式之后,发现不能在main里打断点
解决方法:
打开
c-SPY
的调试信息右击项目,
-> options -> linker -> output -> format
,选择Debug information for c-SPY
选项:
软件选项中有关断点的设置
Tools -> options -> stack ->
去掉选项stack pointer not valid until program reaches
生成Debug信息
Project -> Options -> C/C++ Compiler -> Output
:勾选上Generate debug informat
这个选项;低版本IAR:
Project -> Options -> linker -> Output
:勾选上Include debug information in output
这个选项;高版本IAR:
Project -> Options -> linker -> Diagnostics
:勾选上Always generate output
这个选项。设置合适的优化等级
Project -> Options -> C/C++ Compiler -> Optimizations
:选择low
设置完之后,右击项目 -> Rebuild All
。