Keil MDK 配置详解与调试技术
工程配置介绍
① 通用配置选项;
② 操作系统选项;
③ 勾选后可以减小镜像尺寸,加快运行速度;
④ 浮点配置;
⑤ 加载简要配置,分散加载情况需要配置;
编译器输出选项;
可执行镜像名称;
跳转信息,选择该项可以查询跳转信息,不选择可以加快编译速度;
生成库.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.《编译器原理简介》
Keil MDK 配置详解与调试技术相关推荐
- STM32 IAR工程-Keil MDK转换详解
我在 STM32 的学习中发现,大部分的STM32示例程序都是基于IAR开发环境的,但我认为使用 Keil MDK开发环境更加方便,可以利用RVMDK强大的外设仿真功能加速STM32的开发.我在以前 ...
- 详解反调试技术(转)
反调试技术,恶意代码用它识别是否被调试,或者让调试器失效.恶意代码编写者意识到分析人员经常使用调试器来观察恶意代码的操作,因此他们使用反调试技术尽可能地延长恶意代码的分析时间.为了阻止调试器的分析,当 ...
- SpringBoot的配置详解application
SpringBoot的配置文件application有两种文件格式,两种配置的内容是一致的,只是格式不一致. 1.application.properties 2.application.yml或者a ...
- Tomcat 的 Server 文件配置详解
转载自 Tomcat 的 Server 文件配置详解 前言 Tomcat隶属于Apache基金会,是开源的轻量级Web应用服务器,使用非常广泛.server.xml是Tomcat中最重要的配置文件, ...
- java log4j基本配置及日志级别配置详解,java基础面试笔试题
我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...
- 硬实时RTLinux安装配置详解 (一):准备工作
更多技术干货,欢迎扫码关注博主微信公众号:HowieXue,一起学习探讨软硬件技术知识经验,关注就有海量学习资料免费领哦: 硬实时RTlinux系统配置 1. Linux内核下载 2. 下载与Linu ...
- 硬实时RTLinux安装配置详解 (二):编译运行RTLinux
硬实时RTlinux系统配置 4. 配置RTLinux 4.1 配置Patch 4.2 配置RTLinux内核 4.3. 编译Rtlinux内核 4.4 制作initramfs启动引导: 5. 大功告 ...
- Redis 配置详解 —— 全网最新最全
文章目录 一.撰文目的 二.配置详解 1. EXAMPLE(概要说明) 2.INCLUDES(配置包含) 3.MODULES(加载模块) 4.NETWORK(网络配置) 5.TLS/SSL(通讯协议) ...
- Tacacs-服务搭建与配置详解
其他文章: Tacacs+协议原理 Tacacs+服务搭建与配置详解 Tacacs+各厂商交换机配置 Tacacs+协议交互报文抓包示例 简介 tac_plus是TACACS +守护程序.它为网络设备 ...
最新文章
- 71.数据模型有哪几种?特征?
- 如何使html中的din居中,HTML+CSS--position大法好
- UML--9种图及关系
- 【学术相关】读研究生,从学会「拒绝」导师开始
- 分布式内存数据库---redis配置文件常用配置介绍
- AI安检:北航提出安检场景下的危险品检测基准和去遮挡注意力模块
- python requests post请求_Pythonrequest发送post请求
- idea配置tomcat以及环境变量
- views 多个文件夹 netcore_.NET Core中的使用Kestrel服务器理解及应用
- ZOJ 3300 Mahjong DFS暴力解决。。
- Java如何隐藏控制按键动画_Java动画短片当不移动鼠标光标时
- mysql 计算差值_Prometheus + Granafa 构建MySQL监控平台
- 人本原理内涵_叶澜教育学原理课后答案资料配套题库考研真题精选课后习题章节题库...
- Pannellum:实例之自定义热点信息
- 中国通信业:那些年,我们给用户挖的坑
- cmd命令查询电脑序列号_WINDOWS 用命令行 找到PC序列号以及计算机名称
- 关于Windows Server 2008 Service Pack 1
- android自动播放音乐代码,Android MediaPlayer实现音乐播放器实例代码
- 使用BadBoy录制JMeter脚本
- 凤舞天骄服务器网络延迟,凤舞天骄疲劳,冰封,虚弱,迟钝的实际效果