1、编译后生成bin文件 当需要编译生成bin文件用于烧录时,可以通过Keil自带工具fromelf。exe来实现。 使用方法: 依次点击ProjectOptionsforTargetUserAfterBuildRebuild,勾选Run1,输入语句: fromelf。exebinoLL。binL 再次编译,在Object中就可以找到编译生成bin文件,文件名与OutputNameofExecutable中的名字相同。 2、使用save命令保存调试时Memory中的数据 在调试时使用save指令把ram或flash中的数据保存下来方便后续分析。 使用方法: 进入调试模式,打开命令行工具(勾选viewCommandWindow)。 在CommandWindow栏输入save命令,例如要把内存中0x20000000到0x20001000共4K的数据保存下来,保存到D盘,文件名为data。txt,则输入如下指令: saveD:data。txt0x20000000,0x20001000 保存下来的格式为hex格式,可用工具转为bin格式方便观察。 3、屏蔽特定的编译警告 对于一些不重要的编译警报可以进行屏蔽,这样可以让编译结果显得简洁又能提高编译速度。 使用方法: 依次点击ProjectOptionsforTargetCCMiscControl进入命令输入栏, 如果想屏蔽文件末尾没有空行的警告,输入如下命令: diagsuppress1 如果要屏蔽多条warning,可以加分号后再跟下一条命令: diagsuppress1;diagsuppress1295 等号后面数字代表警告类型,在BuildOutput窗口中的提示可以看到错误类型的数字 warning:1295D:Deprecateddeclarationxxxxinitgiveargtypes4、在代码中获取编译时间的字符串 KEIL内置的宏DATE可以获取编译的日期,TIME可以获取编译的时间。 使用方法: printf(ssr,DATE,TIME); 输出:Sep3202223:59:59 5、在代码中指定某个函数或变量存放的地址 使用attribute可以指定代码编译后存放的地址。 制定变量的存放地址: constchartable〔〕attribute((section(。ARM。at0x00001000))){0x00,0x01,0x02,0x03}; 指定函数的存放地址: voiddelay(void)attribute((section(。ARM。at0x00000200))); voiddelay(void) { inti; for(i0;i100;i){} } attribute修饰语句应当加在声明处而不是定义处。