KeilMDK配置详解与调试技术-创新互联
① 通用配置选项;
创新互联服务项目包括咸丰网站建设、咸丰网站制作、咸丰网页制作以及咸丰网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,咸丰网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到咸丰省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!② 操作系统选项;
③ 勾选后可以减小镜像尺寸,加快运行速度;
④ 浮点配置;
⑤ 加载简要配置,分散加载情况需要配置;
编译器输出选项;
可执行镜像名称;
跳转信息,选择该项可以查询跳转信息,不选择可以加快编译速度;
生成库.lib;
编译器编译报表选项;
编译器编译列表选项;
编译器、预处理器报表选项;
连接器报表选项;
用户配置选项;
C/C++编译前运行选项;
工程build前运行选项;
工程build后运行选项;
编译器配置选项;
汇编器全局宏定义;
编译器等级优化选项;
对冗余函数的优化,建议勾选;
编译器路径;
编译器控制字;
编译器已添加控制字;
汇编器;
汇编器全局宏定义;
汇编器常用控制字;
汇编器路径;
汇编器控制字;
汇编器已添加控制字;
连接器;
连接器常用功能开关;
分散加载文件;
连接器命令控制字段;
连接器已加载控制字;
1.内核寄存器;其中R0-R7也被称为低组寄存器,可以被所有指令使用;R8-R12也被称为高组寄存器,只能被32bit使用,不能被16bit指令使用;R13堆栈指针寄存器;R14连接寄存器,用于在调用子程序时存储返回地址;R15为程序计数器,在汇编代码中一般我们都都叫它的外号“PC”。因为CM3内部使用了指令流水线,读PC时返回的值是当前指令的地址+4。通过这些寄存器组可以迅速定位到出错的程序的位置,无须在界面5里面打断点自己慢慢找。
例如,写如下代码:
void test_param(int var1,int var2,int var3,int var4,int var5,int var6){
var1++;
var2++;
var3++;
var4++;
var5++;
var6++;
}
int main(void)
{
test_param(0x11,0x22,0x33,0x44,0x55,0x66);
while (1)
{
}
}
进入debug调试,可以观察寄存器组,及堆栈中的值:
2.反汇编窗口;在问题难以定位的情况下,汇编可能是分析问题的最后一根稻草。
3.命令窗口,Keil支持很多的调试命令,作为断点调试的强有力补充手段,比如用于显示特定Memory的Display命令、用于显示当前Symbol的dir命令、用于调用逻辑分析仪的LA命令、用于下一些特殊断点的BreakSet/BreakRead命令等。
4.CallStack+locals窗口;可以显示变量/当前堆栈的里的元素,可以看出堆栈内部情况及调用关系。
其他窗口如memory窗口,可以通过输入地址查看具体存储值,非常常用。
其他窗口如NVIC窗口,可以观察所有中断的状态。
拓展内容1.《Cortex-M启动代码分析》
2.《编译器原理简介》
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
新闻名称:KeilMDK配置详解与调试技术-创新互联
转载注明:http://scyanting.com/article/ceedse.html