嵌入式
JohnYe1983
这个作者很懒,什么都没留下…
展开
-
代码优化, volatile关键字
一.volatile的作用volatile关键字是一种类型修饰符. 它总是与优化有关. 用volatile关键字修饰的变量,可以避免编译器优化,从而可以提供对特殊地址的稳定访问.二.何时需要使用volatile关键字?1、中断服务程序中修改的供其它程序检测的变量需要加volatile. 2、多任务环境下各任务间共享的标志(变量)应该加volatile. 3、硬件寄存器通常也要加volatile说原创 2017-05-26 15:04:22 · 428 阅读 · 0 评论 -
第11章 FreeRTOS任务栈大小确定及其溢出检测
本章节为大家讲解FreeRTOS任务栈大小的确定方法以及栈溢出检测方法。给任务分配多大的栈空间,一直是初学者比较头疼的问题,本章就主要为大家讲解如何解决此问题。 本章教程配套的例子含Cortex-M3内核的STM32F103和Cortex-M4内核的STM32F407以及F429。11.1 任务栈大小的确定在基于RTOS的应用设计中,每个任务都需要自己的栈空间,应用不同,每个任务需要的栈大转载 2017-07-12 10:07:37 · 7888 阅读 · 1 评论 -
处理hardfault问题
在debug时经常会出现程序莫名其妙的掉到hardfault的中断中,起初完全不知道是从哪里查找问题,后来有遇到过几次,通过网络资料以及自己的调试,对于解决这样的问题有一些体会,我分析给大家,希望对初学者有用。1)对于出现这样的问题,一般是内存被破坏了,而对于内存破坏的原因一般是数组越界或者是内存相关的库函数使用不当所致。我的程序中会用一些内存相关的函数,如memcpy(),sprint(),mal转载 2017-07-05 19:23:46 · 2593 阅读 · 0 评论 -
IAR下库文件的生成及使用
一. 生成库1、把不想生成库的文件排除掉,在排除文件右击Options->Exclude from build选中,然后确定.2、在工程文件右击Options->General Options->Output选择Library,然后确定,如图3、重新编译工程,Project->Rebuild all,编译后在Debug->ext文件夹下生成后缀为.a的库文件二. 使用库1、右击工程Options->原创 2017-10-31 16:42:34 · 5287 阅读 · 0 评论