
——Keil、MDK
文章平均质量分 59
EmbededCoder
C, Python, C++, Qt, MCU, RTOS, ARM Cortex-M, Linux
展开
-
keil-stm32调试能够运行,但是单独无法运行
stm32调试能够运行,但是不调试时无法运行,按复位按钮也不行。勾选使用MicroLIB。问题到这里就解决了,我虽然没有使用 printf() ,但是包含了C库 stdio.h 并且没有勾选 Use MicroLIB ,导致标准C库被调用,程序卡死在半主机模式(也就是 BKPT 软件断点等待主机调试端响应)下。解决方法也很简单,在项目配置中勾选 Use MicroLIB 然后重新编译(Rebuild)即可。————————————————被抛弃的部分是堆栈的初始化处理程序,可以看出定义.转载 2022-04-20 16:02:11 · 3913 阅读 · 10 评论 -
KEIL MDK链接脚本-分散加载文件sct
在了解keil的链接脚本之前需要了解几个重要概念:RO(ReadOnly):表示程序中的指令和常量RW(Read/Write):表示程序中已初始化的变量ZI(Zero):表示程序中未初始化的变量我们在编译keil中的工程项目时生成的目标文件时叫做镜像文件(Image)或bin文件,image文件中只包含RO,RW段,这是因为ZI数据段都是零,没有必要包含,只需要把ZI所在的区域清零即可。而其他两个数据段是被赋值了的,所以image文件需要包含已初始化变量的初值。如果我们将image文件烧录到R转载 2022-04-02 13:53:37 · 7900 阅读 · 0 评论 -
Keil软件常见配置
Keil软件常见配置1、tab键占据字节数 Edit-->Configuration-->Tab Size-->安装上默认2个空格,这里改为4,符合通用代码编辑器的处理。2、编码配置 Edit-->Configuration-->Encoding-->默认配置Encode in ANSI,这里也可以配置成其他选项,比如常用...转载 2019-04-15 16:23:18 · 1706 阅读 · 0 评论 -
MDK常用快捷键
一、常用编译相关的快捷键1、编译(单个文件) Ctrl+F72、连接 F7二、常用调试相关的快捷键1、运行/停止 Ctrl+F52、Run(全速运行) F53、Stop Debuging(停止运行) Shift+F54、Restart(重新运行) Ctrl+Shift+F55、Step(...转载 2019-04-15 16:26:11 · 1636 阅读 · 0 评论 -
Keil 下 STM32硬件错误HardFault_Handler的处理方法
在用Keil对STM32的程序进行仿真时程序有时会跑飞,停止仿真程序会停在HardFault_Handler函数里的死循环while(1)中。这说明STM32出现了硬件错误。STM32出现硬件错误可能有以下原因:(1)数组越界操作;(2)内存溢出,访问越界;(3)堆栈溢出,程序跑飞;(4)中断处...转载 2019-04-26 13:01:46 · 7880 阅读 · 1 评论 -
Keil中C和C++混合编程方法
1、新建的C++文件名为xx.cpp和xx.h。2、以前的C文件xx2.c可以右击文件,属性改为C++ Source file。在xx2.h中修改为#ifndef _XX_H_#define _XX_H_#ifdef __cplusplusextern "C" {#endif......#ifdef __cplusplus}#endif#endif...原创 2018-07-22 18:05:07 · 17579 阅读 · 3 评论 -
Keil MDK生成LIB库以及使用LIB库
问题引出:为什么要做成lib库?1、不想将自己写的源代码公开,但是同时库文件又需要让别人能够正常调用,那封装成lib的格式就是一个方法。2、编译某些工程文件时非常耗时,像ST官方的库时,由于文件众多,编译一次可能得1两分钟,这时可以打包成库,节省不少的时间。但同时也不能用右键go to Definition 'XXX'来直接找到源文件定义了。如何生成LIB库文件?1.创建空工...原创 2019-05-09 15:27:52 · 21248 阅读 · 5 评论 -
keil 忽略警告
在工程中这样设置添加--diag_suppress=num1,num2,...此处num等于警告代码的数字 例如111原创 2019-09-04 10:40:08 · 1118 阅读 · 0 评论