目录
6.可以在魔术棒的Listing选项卡选择生成编译中间文件和选择MAP文件的内容
7.可以在魔术棒的User选项卡选择编译前和编译后分别都执行点啥,可以是一个指令、一个脚本、一个程序
8.在程序跑飞或者死机时,可以选择不复位进入Debug,从而查看当前卡在了哪里
9.可以在魔术棒的Utilities选项卡选择下载程序时下载的文件是哪个
1.开启watch和内存窗口的值实时更新
2.调试模式可以查看局部变量的值
只不过要让任意被观察变量退出<cannot evaluate>状态,都需要先在该变量被赋值的地方先打个断点,此后该变量的值就能实时更新了。
3.可以在watch窗口直接输入你要查看的变量的名称
4.可以在watch窗口直接改变被观察变量的值
5.可以在memory窗口直接改变内存和flash的值
6.可以在魔术棒的Listing选项卡选择生成编译中间文件和选择MAP文件的内容
7.可以在魔术棒的User选项卡选择编译前和编译后分别都执行点啥,可以是一个指令、一个脚本、一个程序
8.在程序跑飞或者死机时,可以选择不复位进入Debug,从而查看当前卡在了哪里
其中ini文件里面的内容为:LOAD %L INCREMENTAL
9.可以在魔术棒的Utilities选项卡选择下载程序时下载的文件是哪个
其中ini文件的内容为:LOAD "Objects\\xxx.hex"
10.屏蔽特定的警告(针对ARM 编译器6以上)
先看看ARM编译器用户手册是怎么说的:“要屏蔽特定警告,可以使用Arm Compiler提供的一些选项和指令。你可以通过在源代码中使用#pragma clang diagnostic ignored "-Wname"指令来忽略特定警告消息,其中"Wname"是要忽略的警告名称。”
具体操作:比如以下警告:
../User/Tasks/ledTask.c(55): warning: passing 'const gpioEntityTypeDef *' to parameter of type 'gpioEntityTypeDef *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
则在相应文件中输入以下信息:#pragma clang diagnostic ignored "-Wincompatible-pointer-types-discards-qualifiers"
再编译就看不到该警告了。
11.指定某段代码的优化等级
有时候我们希望某段代码的优化等级高一点或者低一点,此时就可以使用如下编译器指令来设定:
#pragma optimize O0
void func(void)
{
}
#pragma
其中“O0”表示采用优化等级0,即不优化,除此之外还有:O1,O2,O3,Ofast,Omax,Oz等。