
MDK
文章平均质量分 67
不咸不要钱
逝者如斯夫,不舍昼夜
展开
-
FreeRtos学习笔记(12)systemView 分析任务调度情况
使用stm32f429 + freertosV10.5.1 + systemView 3.5 + keil AC5。使用systemview 追踪观察freertos之间任务切换细节原创 2024-03-25 19:38:27 · 1539 阅读 · 0 评论 -
MDK自动生成带校验带SVN版本号的升级文件
自动将 SVN 版本号 添加到程序中,并为app添加 crc校验,方便mcu升级原创 2023-10-11 19:30:00 · 6731 阅读 · 0 评论 -
调试笔记--jlink 变量转实时波形小技巧
调试笔记–jlink 变量转实时波形小技巧上篇讲了jlink RTT组件在RAM中开辟一段内存,将printf字符串存入然后通过jlink调试接口读取RAM,将printf字符串在jlink-RTT Viewer组件上显示出来。printf的字符串可以通过jlink的调试接口从RAM读出,举一反三,那么变量呢?变量也是可以。本文参考:安富莱嵌入式专题教程第6期安富莱嵌入式专题教程第4期安装J-Scope软件安装SEGGER软件时,最好都不要有中文路径,SEGGER的中文支持很差软件下载连原创 2021-06-21 20:33:15 · 12010 阅读 · 1 评论 -
调试笔记--keil printf小技巧
调试笔记–keil printf小技巧单片机开发过程中,大部分项目都离不开printf,printf可以打印系统当前运行的日志信息从而快速定位问题原因,一种极为方便的人家交互手段。使用过printf的都知道,要是有printf前,需要对 fputc 函数进行重定向(printf的本质就是先将用户字符串进行格式化(处理%d、%f等格式),然后调用 fputc 函数将格式化后的字符串一个一个的处理一遍,如果将 fputc 定义为串口输出字符串,则printf最终会将字符串从串口输出,这是最常见的,当原创 2021-06-15 21:50:42 · 11831 阅读 · 8 评论 -
调试笔记--keil 测量周期小技巧
调试笔记–keil 测量周期小技巧本文参考安富莱专题教程第7期 http://www.armbbs.cn/forum.php?mod=viewthread&tid=87176&extra=page%3D1cortex-m内核的单片机,内核内除了systick定时器外,还有一个用于调试的WDT定时器,可以在keil中协助测量代码运行周期。WDT定时器默认是给调试器用的,自己最好不要使用。直接看keil的状态栏计时器一定要确保时钟周期和单片机内核一致在要测量代原创 2021-06-11 23:06:11 · 7885 阅读 · 8 评论 -
调试笔记--keil 断点调试小技巧
调试笔记–keil+jlink断点调试小技巧原创 2021-06-10 22:04:59 · 13028 阅读 · 0 评论 -
keil 使用AC6 中文警告解决办法
最近开发的项目工程一般都是用AC6编译器,好处是编译速度快,优化等级高,但是AC6对于中文支持不好,项目文件目录一定不要有中文路径,否则不能使用gotodef跳转功能。如果项目内有使用中文字符串,则AC6编译过程会弹出警告信息,虽然不影响使用,但是十分犯人。可以填入 -Wno-invalid-source-encoding 将该警告信息屏蔽。...原创 2021-02-21 10:16:39 · 6212 阅读 · 0 评论 -
c语言对齐方式研究笔记
c语言对齐方式研究笔记为什么要对齐TragicJun 发表于 2006-9-18 9:41:00 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。比如有些架构的CPU在访问一个没有进行原创 2020-12-23 18:39:19 · 1673 阅读 · 0 评论 -
如何为程序分配合适的栈空间?
分散加载文件中都有定义堆栈空间大小,堆空间一般由程序员使用malloc函数动态分配的,因此堆空间大小一般都会根据实际情况自行确定。栈是一块用于存储程序数据的内存区域,例如下述数据:局部变量返回地址函数参数编译器临时变量中断时的上下文在 IAR 中,可以开启栈使用分析让 IDE 在编译链接阶段就推算出这个程序的栈最大使用量。不过这种方法无法分析使用函数指针的方式调用的函数,也不能确定递归函数的嵌套次数。编译后打开map文件,查看栈最大使用空间,然后修改对应分散加载文件的栈大小(要有一定的余原创 2020-06-10 18:54:52 · 3763 阅读 · 0 评论 -
keil for 51 汉字显示问题
最近用STC8 单片机做一个电子锁相关的项目,用到OLED显示一些汉字,本来没什么问题的,很简单,但是在做指纹录入删除时,OLED显示删除总是不对,甚至影响其他部分显示,检查文件编码方式GB2312没问题,然后又检测字符文件,没问题,后来甚至一度怀疑OLED底层显示汉字问题。最后百度一下,发现原来这个是keil for 51的问题,汉字一般情况下都是占两个字节,下面GB2312汉字,第二个字节为0xfd褒 饼 昌 除 待 谍 洱俘庚过糊 积 箭 烬 君 魁 例笼慢谬凝 琵 讫 驱 三 升 数她听妄锡原创 2020-05-14 19:06:29 · 7853 阅读 · 0 评论 -
IMXRT10xx MDK 编译器AC5 升级AC6
1.更换编译器为AC62.产生链接信息,可以gotodef3.更改编译配置4.修改分散加载文件(重点)修改分散加载文件第一行#!armclang --target=arm-arm-none-eabi -mcpu=cortex-m7 -E -x c如果不修改会报如下错误flexspi_nor_release\IMXRT1064.out: Error: L6079E: Subt...原创 2020-03-27 16:04:28 · 10471 阅读 · 4 评论