Keil MDK配置和使用

参考http://blog.csdn.net/zhzht19861011/article/details/5964827或附近文档

补充:勾选Utilities选项卡中的Updata taget before debugging,可以避免在debug前忘记download最新生成的axf文件

 

有趣的Keil MDK细节

http://www.cnblogs.com/heiyue/p/3373178.html

 

Keil代码窗口中的黄色箭头表示program counter所在的位置,蓝绿色箭头表示鼠标所指向的位置,参考http://www.arm.com/files/pdf/mcbstm32c_lab.pdf

 

Keil官方文档http://www.keil.com/support/man/docs/uv4,其中包含文件后缀说明和Error信息说明等

 

编译器默认为keil自带的armcc,armcc默认支持C90,如需使用C99特性(如结构体元素的单独赋值,位于执行语句后的变量声明),需在Option for target-->C/C++-->Misc Controls栏填入--c99

如需使用gcc(直接支持c99),参考:

http://www.nuvoton-m0.com/forum.php?mod=viewthread&tid=4289

http://www.keil.com/appnotes/docs/apnt_199.asp

http://blog.csdn.net/zhaozzy/article/details/8774723

 

lesson learn:

1.调试时无法在源代码窗口设置断点

cause:option for target -- output 勾选 debug information和browse  information

2.error 122: AGDI: memory read failed

cause:执行了芯片擦除,需重新download一个程序

3.缩减代码体积的方法:

a) option for target -- C/C++ 勾选 one elf section per function

b) option for target -- target 勾选 use microlib

MicroLib 专为嵌入式设计,可获得更小的代码尺寸http://www.arm.com/zh/products/tools/software-tools/mdk-arm/compilation-tools/index.php

c) option for target -- C/C++ 提高optimization级别

参考http://www.keil.com/appnotes/files/apnt202.pdf

4.查看局部变量:

a)可通过symbol window从所在文件的所在函数内添加,由于局部变量的作用域只在函数内,因此只有运行到其所在函数处才可查看,否则会显示"out of scope"

b)执行到其所在函数时,可通过call stack window查看

c)若想在watch窗口查看,可将局部变量定义为static类型

 

你可能感兴趣的:(Keil,MDK)