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