随笔分类 -  MDK

摘要:使用mdk编程,假如有一个有用的函数你定义了但是没有显式的调用,mdk在默认方式下,将会把这个函数从整个程序总删除掉,以节省ROM. 比如,你在ROM的0x00002000处定位了一个函数,假设为void test(void),然后使用函数指针来调用它: void (*UserProgram)(); 阅读全文
posted @ 2019-12-30 17:01 wdliming 阅读(1497) 评论(0) 推荐(0) 编辑
摘要:目前keil mdk已经更新到5.29,很多新的功能,可以尝试,体验。公司项目可以使用老的编译器,自己玩玩可以谭毅新的版本的keil。 我做嵌入式行业,编程也多和硬件打交道,好多人说编译器只是工具,重要的在于算法和思想。这话说的本来没错,但要有一个条件在先:那就是你真正掌握了你所用的编译器。但就我来 阅读全文
posted @ 2019-12-30 16:37 wdliming 阅读(1133) 评论(0) 推荐(0) 编辑
摘要:1、默认情况下,keil和iar都是认为char是unsigned char,可以通过设置去更改的。 2、赋初值的全局变量和静态变量,对于在程序中赋初值的全局变量和静态变量,程序编译后,MDK将这些初值放到Flash中,紧靠在可执行代码的后面。在程序进入main函数前,会运行一段库代码,将这部分数据 阅读全文
posted @ 2019-12-30 13:37 wdliming 阅读(530) 评论(0) 推荐(0) 编辑
摘要:这两天,学习了keil-mdk编译器的特性,这基本上独立于c语言语法,平时基本上都在强调c语言的学习,但是编译器的学习我们也要注重,类似于gcc一样,不也有很多网上的资料,讲述gcc的特性和用法吗。作为嵌入式开发,keil-mdk的特性也是要了解到,另外,iar编译器也是有其特有的编程技巧的,因此都 阅读全文
posted @ 2019-12-22 20:19 wdliming 阅读(647) 评论(0) 推荐(0) 编辑
摘要:在一次使用MDk的编译优化等级比较高的时候发现编译不优化时功能正常,开了优化等级02就出现异常,调试中看了很多博客总结一下。 一个变量,如果你的主程序要用到,同时中断还要用到,要加volatile修饰。告诉编译器这个变量是可能随时发生变化的,使得编译器编译程序的时候,每次都从RAM里面读取数据,而不 阅读全文
posted @ 2019-12-22 15:39 wdliming 阅读(444) 评论(0) 推荐(0) 编辑
摘要:最近在使用ac6.9的编译器,编译速度是真的很快,使用stm32的hal库编译速度也比ac5的编译器快很多。本文试验stm32中字节对齐的代码测试,主要是结构体,因为结构体中实际项目中用到最多,同时在仿真环境中打印出来。 ac5的测试结果: 测试结果如下: ac6的测试结果: 阅读全文
posted @ 2019-12-21 13:39 wdliming 阅读(4223) 评论(0) 推荐(0) 编辑
摘要:本文说的__VA_ARGS__,就是一个可变参数宏,与printf中可变参数的宏定义一个道理,是新C99规范中增加的。 __VA_ARGS__详情内容 1.关于__VA_ARGS__ __VA_ARGS__它是一个可变参数的宏,就是将左边宏中“...” 的内容原样抄写在右边 __VA_ARGS__ 阅读全文
posted @ 2019-12-16 13:35 wdliming 阅读(2221) 评论(0) 推荐(0) 编辑
摘要:后文rtt代表RT-Thread 在官网公众号中,看到rtt发布了rtt nano,这个就很轻量级的rtos内核,把多余的驱动都裁剪了,因此移植工作量小,可以哪来学习一番,体验rtt之美 rtt现在也集成到cubemx5.0以上的平台,类似于freertos中间件,这个做法,倒是有点类似于大厂的风格 阅读全文
posted @ 2019-12-15 10:30 wdliming 阅读(3728) 评论(0) 推荐(0) 编辑
摘要:今天在安富莱的论坛上ac6的使用方法,所以,就小试牛刀玩了玩,终于ok了。使用keil5.25+stm32+hal库,5.23开始才支持ac6,因此keil版本不能太低。 可以参考:https://blog.csdn.net/ybhuangfugui/article/details/99826708 阅读全文
posted @ 2019-12-13 12:35 wdliming 阅读(8015) 评论(1) 推荐(1) 编辑
摘要:今天网上看到keil中如果快速定位hardfault的方法 http://www.armbbs.cn/forum.php?mod=viewthread&tid=91746&fromuid=58 http://www.armbbs.cn/forum.php?mod=viewthread&tid=863 阅读全文
posted @ 2019-12-12 16:17 wdliming 阅读(2198) 评论(0) 推荐(0) 编辑
摘要:在硬汉平台看到一个比较好的帖子,关于如何定位HardFault_Handler,这里要记录下网址。 http://www.armbbs.cn/forum.php?mod=viewthread&tid=21940(KEIL和SEGGER都升级了Cortex-M系列内核出现硬件异常时原因分析笔记,支持G 阅读全文
posted @ 2019-12-12 13:21 wdliming 阅读(1347) 评论(0) 推荐(0) 编辑
摘要:Keil RTX是为ARM和Cortex-M设备设计的免版税,确定性的实时操作系统。它允许您创建同时执行多个功能的程序,并帮助创建更好的结构和更容易维护的应用程序。 特征 具有源代码的免版权,确定性RTOS 灵活的调度:循环,抢占和协作 具有低中断延迟的高速实时操作 为资源有限的系统提供小封装 无限 阅读全文
posted @ 2019-12-10 13:46 wdliming 阅读(959) 评论(0) 推荐(0) 编辑
摘要:转载自:https://blog.csdn.net/u011976086/article/details/54342447#commentBox 之前使用过ucos,freertos,但是这个keil自带的RTX倒是没有在项目中使用过,只有在安福莱的论坛中,头比较丰富的教程,网上正好看到了这篇文章, 阅读全文
posted @ 2019-12-10 13:27 wdliming 阅读(4860) 评论(0) 推荐(1) 编辑
摘要:今天在写程序的时候,想使用sizeof求数组的大小,数组中其他c文件定义,在头文件使用extern uint8_t buff_value[]; 声明 但是keil编译报错,网上查了,发现,需要写成extern uint8_t buff_value[30];把数组的大小固定了,才能编译通过。 阅读全文
posted @ 2019-12-07 17:37 wdliming 阅读(3413) 评论(0) 推荐(0) 编辑