
mdk
文章平均质量分 75
无痕幽雨
宠辱不惊,看庭前花开花落!
去留无意,望天上云卷云舒!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
从零编写STM32H7的MDK SPI FLASH下载算法
它是 JEDEC (固态技术协会)制定的串行 Flash 功能的参数表标准,最新版 V1.6B (点击这里查看)。该标准规定了,每个 Flash 中会存在一个参数表,该表中会存放 Flash 容量、写粒度、擦除命令、地址模式等 Flash 规格参数。目前,除了部分厂家旧款 Flash 型号会不支持该标准,其他绝大多数新出厂的 Flash 均已支持 SFDP 标准。所以该库在初始化时会优先读取 SFDP 表参数。转载 2023-05-14 10:38:22 · 1816 阅读 · 1 评论 -
烧录flash_烧录固件完成后,配置JFLASH让程序自动运行
问题描述:当使用IAR调试Cortex M0+产品,在IAR/MDK调试环境下烧录以后可以正常运行,但是如果使用Segger的JFLASH直接烧录固件(.bin或者.hex格式二进制文件)后程序并没有开始运行,需要手动执行复位操作或者在JFlash中点击Target->Manual Programming->Start Application,或按快捷键F9,程序才开始运行。有什么办法可以设置编程烧录完成后程序自动执行呢?转载 2023-04-04 08:54:38 · 3644 阅读 · 0 评论 -
这么好用?!99%开发者从未听说过的堆栈模型(加量增强版)
【说在前面的话】朋友:你知道如何设置栈最安全么?你知道如何不写一行汇编代码就能设置栈的大小么?你知道如何在链接脚本中使用宏和头文件么?你知道如何在代码中随时随地检查栈的最大使用情况么?本文从理论到实践,从知其然到知其所以然,一杯奶茶的功夫就给你讲得明明白白。在中文嵌入式环境中,时不时的总能看到不少朋友”堆”“栈“傻傻分不清楚,我很早之前在文章《漫谈C变量——夏虫不可语冰》介绍过二者的区别,这里就不再深入展开,总之:栈(Stack)“是我们用来分配局部变量、实现函数调用和在异常响应时保存被打断代码上下文的地方转载 2022-12-04 20:52:00 · 705 阅读 · 0 评论 -
keil5制作flm文件【插件】
初始化之后就可以填充别的函数,这里用flash的话,主要是就是初始化,读,写,擦,实现完了之后点击编译,就可以在对应设置的生成文件夹中看到相关的生成flm文件了。版权声明:本文为优快云博主「ZL.zheng」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。然后就是把你需要的生成flm相关的驱动拉进来工程,可以新建一个文件夹存放驱动相关的.c文件。自此完成,吧生成的插件flm文件放到mdk的flash目录下就可以调用了。转载 2022-11-17 10:31:07 · 2275 阅读 · 0 评论 -
从AC5到AC6转型之路(1)——补救和准备
【说在前面的话】时间大约在2015年,Arm第一次在 MDK 5.20 中引入了Arm Compiler 6(那时候的版本是 6.9),正式拉开了Arm官方编译器从第五版(armcc)到第六版(armclang)升级替换的序幕……嵌入式行业的长尾效应是及其突出的,且不说都2022年了还有很多人在坚持 MDK4,即便是从“Arm在2017年对外宣布停止维护 Arm Compiler 5”算起,如今5年过去了,坚持使用 armcc 的用户仍然不在少数。Arm Compiler 5,也就是大家口中的 armcc,转载 2022-06-05 16:42:19 · 3031 阅读 · 0 评论 -
J-link v9 使用技巧之虚拟串口功能
使用ITM机制实现调试contex-M系列,实现printf与scanf。1. ITM简介ITM机制是一种调试机制,是新一代调试方式,ITM是ARM Cortex-M系列内核芯片中的一种全新的调试功能,可以方便的通过调试器来实现printf调试功能。来自STM32中文参考手册的介绍:ITM ( 指令跟踪微单元 instrumentation trace macrocell):ITM是一应用驱动的跟踪源,它支持printf类的调试手段来跟踪操作系统(OS)和应用事件,并发布判定的系统信息。I转载 2021-11-19 09:16:23 · 2125 阅读 · 0 评论 -
keil mdk中文乱码,两种解决方法,字体不再难看
方法一:修改成Encode in UTF-8 without signature我嘞个去!被字符编码整晕了,unicode,ANSI,UTF-8,GB2312。。。新版mdk(4.6,4.7)支持直接显示中文了,但光标老是半个半个的跳,超级不爽!按以前的解决方法,edit-->configration-->editer里面的Encoding修改为Chinese GB2132。但是!!!本来很好看的默认字体,修改GB2132以后,咋看咋觉得丑的不行~~~那个叫郁闷啊!后来,发现不要修改转载 2021-11-08 11:18:00 · 27648 阅读 · 11 评论 -
ARM Cortex-M 系列 MCU错误代码自动追踪库(CmBacktrace)的使用经验分享
大家在用STM32的时候有没有遇到过HardFault的问题呢:之前有一段时间被这个问题困扰了很久,下面针对这个问题做个小总结。现象还原:在debug模式下进行仿真调试,全速运行再停止运行,程序会跑到 HardFault_Handler函数中,产生 HardFault,即硬错。其产生的原因大概有如下几类:(1)数组越界操作;(2)内存溢出,访问越界;(3)堆栈溢出,程序跑飞;(4)中断处理错误;针对HardFault问题的定位,网上有几种方法,大概都是围绕着:在debug模式下,查看一些转载 2020-06-08 10:56:10 · 1324 阅读 · 0 评论 -
MDK-ARM编译器从V5升级到V6需要做哪些工作?
前面我分享过一篇文章【MDK v5.25比较实用的功能】,其中大概提了一下:编译器升级到ARM Compiler 6.9。就在前天,一关注我的朋友问了我这样一个问题:黄老师您好,前些日子您更新的公众号中介绍最新版本的keil5.25中提到了伴随更新的新编译器6.9。在简单的把原来的5版本编译器修改为6后,重新编译工程,出现了大量错误,并且大都包含在库文件中,请问您是否曾注意过这一点,并怎么...转载 2020-03-05 11:31:51 · 2804 阅读 · 0 评论 -
带你认识ARM最新的编译器AC6.12
本文结合MDK-ARMV5.27来讲述ArmCompiler6.12。1MDK升级内容MDK-ARMV5.27预览版已推出几个月:Keil MDK V5.27重大更新,预览版已上线在前不久终于推出V5.27正式版了,你们有安装试用吗?使用时,首先感觉的变化就是启动界面:此次正式版更新的内容,在预览版基础上有稍微变化,其中编译器从6.11升级为最新的6.12....转载 2020-03-05 11:20:37 · 4850 阅读 · 0 评论 -
fromelf语法
--text ARM Compiler toolchain v5.02 for µVision Using the fromelf Image Converter Home> fromelf command reference> --text --textThis option prints image information...原创 2019-01-18 09:27:16 · 3186 阅读 · 0 评论 -
ARM编译器的semihosting
出处:ARM编译器的semihostingSemihosted环境(semihosting是针对ARM目标机的一种机制,它能够根据应用程序代码的输入/输出请求,与运行有调试功能的主机通讯。这种技术允许主机为通常没有输入和输出功能的目标硬件提供主机资源)在semlhosted环境下用来实现C库函数与目标相关的函数。可以在你的Application Code中使用printf等stand IO...转载 2018-12-30 10:58:13 · 1692 阅读 · 0 评论 -
MDK 的编译过程及文件类型全解
出处:MDK 的编译过程及文件类型全解 MDK 的编译过程及文件类型全解------(在arm9的开发中,这些东西都是我们自己搞定的,但是在windows上,IDE帮我们做好了,了解这些对深入开发是很有帮助的,在有arm9开发的基础上,下面的东西很容易理解,如果看不懂,证明你还没有入门。下面的是从world复制过来的,格式和博客不太兼容,所有开始以字母q的,是world中的 □ 字符)...转载 2018-07-31 15:07:31 · 7792 阅读 · 4 评论 -
Keil中的USE MicroLib说明
出处:https://www.cnblogs.com/zyqgold/p/6114637.html在keil建立ARM的工程时其中有一项是选 use MicroLIB 由于对KEIL不是很熟悉,于是就查了查,得到了以下信息:microlib 是缺省 C 库的备选库。 它旨在与需要装入到极少量内存中的深层嵌入式应用程序配合使用。 这些应用程序不在操作系统中运行。microlib 进行了高度优化以使代...转载 2018-03-21 11:00:02 · 1834 阅读 · 0 评论 -
痞子衡嵌入式:ARM Cortex-M开发文件详解(3)- 工程文件(.ewp)
出处:https://www.cnblogs.com/henjay724/p/8232585.html大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家讲的是嵌入式开发里的project文件。 前面两节课里,痞子衡分别给大家介绍了嵌入式开发中的两种典型input文件:source文件、linker文件。痞子衡要再次提问了,还有没有input文件呢?答案确实是有,但这次真的是有且仅有了,本文...转载 2018-03-23 09:48:48 · 1941 阅读 · 0 评论 -
mdk的命令讲解(持续更新)
一、--autoinline, --no_autoinlineThese options enable and disable automatic inlining of functions.The compiler automatically inlines functions at the higher optimization levels where it is sensible to d...原创 2018-03-01 16:41:14 · 1713 阅读 · 0 评论 -
【C语言常识】mdk:Pragmas recognized by the compiler
出处:官方编译器手册See the following topics in the Compiler Reference:Pragmas for saving and restoring the pragma state#pragma pop#pragma push.Pragmas controlling optimization goals#pragma Onum#pragma Ospace#p...转载 2017-05-08 18:05:12 · 732 阅读 · 0 评论 -
mdk错误记录(持续更新)
1、 warning: #61-D: integer operation result is out of range由于编译器默认signed int即32位有符号整数类型,而1<<31实际为0x80000000,这样就有可能改写了符号位(最高位)依此类推,(2<<30),(3<<29)...等都会出现编译警告问题.解决办法为: ((unsigned...原创 2017-12-28 13:44:44 · 2055 阅读 · 0 评论 -
【C语言常识】Keil MDK的分散加载文件.sct
出处:http://blog.youkuaiyun.com/tracing/article/details/9720157面对这样一个新东西,先去官网看看,或者看看IDE的帮助,基本上你想要的东西都有了,BAIDU来的都不全面,这是一种学习方法。 http://www.keil.com/support/man/docs/armlink/armlink_BABDDH转载 2017-05-04 16:11:58 · 30696 阅读 · 5 评论 -
keil MDK中如何生成*.bin格式的文件
出处:http://blog.youkuaiyun.com/zhzht19861011/article/details/5927924 在Realview MDK的集成开发环境中,默认情况下可以生成*.axf格式的调试文件和*.hex格式的可执行文件。虽然这两个格式的文件非常有利于ULINK2仿真器的下载和调试,但是ADS的用户更习惯于使用*.bin格式的文件,甚至有些嵌入式软件开发者已经拥有了*.bin...转载 2017-12-27 17:12:43 · 620 阅读 · 0 评论 -
【C语言常识】mdk:Compiler optimization levels and the debug view
出处:官方编译器手册The precise optimizations performed by the compiler depend both on the level of optimization chosen, and whether you are optimizing for performance or code size.The compiler supports t转载 2017-05-08 17:58:23 · 624 阅读 · 0 评论 -
【C语言常识】mdk:Inline assembler rules for compiler keywords __asm and asm
出处:官方编译器手册The following rules apply to the __asm andasm keywords:Multiple instructions on the same line must be separated with a semicolon (;).If an instruction requires more than on转载 2017-05-08 10:38:09 · 743 阅读 · 0 评论 -
GD32F130FXP6学习笔记十三:mdk优化掉不调用的函数和防止没有显式调用的函数被优化掉
一、优化掉没有调用的函数,减少程序空间我做了下测试,在开一级优化下,我写了一个函数,但是没有调用,查看map文件发现它仍然占用程序空间,所以我怀疑不会优化的事情。于是百度了下,发现要勾选C/C++的One ELF Section per Function。什么是意思呢?就是每个文件的函数单独出一个连接文件,这样连接的时候,那些没有调用的函数就被移除掉了。查看编译后的ma原创 2017-05-05 09:48:16 · 3953 阅读 · 0 评论 -
GD32F130FXP6学习笔记十二:mdk定义一些变量上电不初始化
用IAR的同学一定知道__no_init关键字,就是把一些变量放到no_zero段,MCU复位时候不会初始化这些变量。查看了下mdk的C编译器说明文档,并没有专门的关键字,解决方法是需要自己开辟一个UNINIT的内存块,再把不需要初始化的变量定义到这个内存块里面(内存块地址和大小,需要手动修改,不够灵活)。一、MDK四中属性code :代码区rodata :只读数据原创 2017-05-04 20:00:59 · 2034 阅读 · 0 评论 -
【C语言常识】MDK各种Section分析
出处:http://www.cnblogs.com/yanghong-hnu/p/4705755.htmlbss段: bss段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。 bss是英文Block Started by Symbol的简称。 bss段属于静态内存分配。 data段:转载 2017-05-04 10:42:03 · 5563 阅读 · 0 评论 -
GD32F130FXP6学习笔记十一:KEIL MDK输出map文件分析
出处:http://kmoving.blog.163.com/blog/static/20504919720129241952437/一、文件分析流程1、第一部分:Section Cross References主要是各个源文件生成的模块之间相互引用的关系。stm32f10x.o(STACK) refers (Special) to stkheap2.o转载 2017-05-04 10:37:00 · 1229 阅读 · 0 评论 -
GD32F130FXP6学习笔记十:Cortex-M3中断学习
出处:http://blog.youkuaiyun.com/sunheshan/article/details/485534671 异常M3支持15个系统异常,240个外部异常IRQ,其中NMI,复位,hardfault三个异常的优先级固定不可更改且是负数,其余的都可编程。M3的异常分为抢占优先级和子优先级。2 关于中断优先级M3中,除了复位,NMI以及硬fault有固转载 2017-05-03 09:44:37 · 1617 阅读 · 0 评论 -
GD32F130FXP6学习笔记九:Cortex-M3 cm3.h 关于开关总中断函数解释
出处:http://blog.sina.com.cn/s/blog_72605ba50102vv87.html0.前言本文想解决的问题有:如何开启、关闭中断如何开启、关闭异常LPC177x/8x支持的中断优先级个数复位后,异常/中断默认的优先级如何设置异常/中断的优先级什么是优先级组,如何设置优先级组,复位后的优先级组 1. Cortex-M转载 2017-05-02 22:17:17 · 7294 阅读 · 0 评论 -
GD32F130FXP6学习笔记八:Cortex-M3启动代码分析笔记
出处:http://m.blog.youkuaiyun.com/article/details?id=52729422资料:http://www.51hei.com/bbs/dpj-26674-1.html资料:https://wenku.baidu.com/view/bad36fb577232f60dccca19a.html启动代码文件名是STM32F10X.S,它的作用先总结下转载 2017-05-02 21:42:52 · 1732 阅读 · 0 评论 -
GD32F130FXP6学习笔记七:RealView编译器常用特有功能
出处:http://blog.youkuaiyun.com/zhzht19861011/article/details/8645497一. 关键字和运算符1. __align(n):指示编译器在n 字节边界上对齐变量。 对于局部变量,n 值可为 1、2、4 或 8。 对于全局变量,n 可以具有最大为 2 的 0x80000000 次幂的任转载 2017-04-29 19:47:11 · 622 阅读 · 0 评论 -
GD32F130FXP6学习笔记六:cortex-m3系列的ADC初识
参考资料:http://blog.sina.com.cn/s/blog_5e87dc1201018l1n.html查看GD32F130FXP6用户指南的ADC章节,发现AD有两个组,4中转换模式。一、AD两个组1、规则通道组通过寄存器配置把某些通道放到一组里面(GD32F130FXP6最多支持16个通道),然后逐个转换这组通道,这组通道都转换完成后,再从头开始转原创 2017-04-28 20:48:31 · 7165 阅读 · 0 评论 -
GD32F130FXP6学习笔记五:cortex-m3系列的启动过程
出处:http://blog.youkuaiyun.com/cwcwj3069/article/details/10828007补充资料:https://wenku.baidu.com/view/4f9d2eb11a37f111f1855bfc.htmlCortex_m3的启动过程一.arm的启动过程arm的启动代码一般是用汇编写的,在堆栈建立以后才可以运行C代转载 2017-04-28 10:58:41 · 1504 阅读 · 0 评论 -
GD32F130FXP6学习笔记四:ARM 汇编指令集初识
出处:http://blog.youkuaiyun.com/xie0812/article/details/37883457补充资料:https://wenku.baidu.com/view/b2b8f2d831b765ce0408144f.htmlhttps://wenku.baidu.com/view/8f71ba07b52acfc789ebc9b8.html/*-转载 2017-04-28 08:56:34 · 2764 阅读 · 0 评论 -
GD32F130FXP6学习笔记三:ARM的GPIO初识
出处:http://www.openedv.com/posts/list/32730.htm最近在看数据手册的时候,发现在Cortex-M3里,对于GPIO的配置种类有8种之多:(1)GPIO_Mode_AIN 模拟输入(2)GPIO_Mode_IN_FLOATING 浮空输入(3)GPIO_Mode_IPD 下拉输入(4)GPIO_Mode_IPU 上拉输入(5)...转载 2017-04-26 09:06:30 · 4607 阅读 · 0 评论 -
GD32F130FXP6学习笔记二:CMSIS初识
出处:http://www.eefocus.com/freescale007/blog/13-07/295486_07c15.htmlCMSIS 到底是什么?先来看看ARM公司对CMSIS的定义:ARM® Cortex™ 微控制器软件接口标准 (CMSIS) 是 Cortex-M 处理器系列的与供应商无关的硬件抽象层。CMSIS 可实现与处理器和外设之间的一致且转载 2017-04-25 14:48:45 · 1461 阅读 · 0 评论 -
GD32F130FXP6学习笔记一:硬件和软件初学
第一次用RAM-M3的芯片,做一个学习笔记吧,希望能够帮助后来人。软件平台: keil v4.72MCU: GD32F130F8P6一、SWD下载口GD32F130F8P6支持SWD模式,具体介绍请看我的上一篇博客。VDD J-LINK V8 PIN1 (V8需要连接)SWDAT J-LINK V8 PIN7 (建议上拉)原创 2017-04-24 19:36:10 · 6567 阅读 · 0 评论 -
【ARMKEIL常识】uVision/Keil如何将数据导出到文件
出处:百度文库uVision/Keil如何将数据导出到文件1前言 在Keil中,有的时候需要将调试过程中的一些存储区数据(数组或结构体等)导出到文件,以便于对数据进行分析,可是找遍了菜单,也没有找到能够直接导出的功能,如何做呢?2应用举例 笔者在调试一款产品时,定义了一个256个元素的数组RpmFeedback,每个元素是一个无符号的32位数转载 2017-05-18 09:19:03 · 26141 阅读 · 2 评论 -
keil优化等级设置
原文chttp://blog.youkuaiyun.com/husion01/article/details/8087988转载 2014-08-06 11:17:22 · 3183 阅读 · 0 评论