- 博客(11)
- 资源 (3)
- 收藏
- 关注
转载 STM32 KEIL _MAP文件解析
0、写在前面相信有较大项目开发经验的朋友都曾遇到内存溢出的问题,那么大家都是如何分析这类问题的呢?大家遇到HardFault_Handler 有对map分析过吗? 首先讲述一下关于map在MDK-ARM中的配置。其实,在MDK-ARM中,我们可以根据自己的情况(不同配置),在map文件中输出对应(我们需要)的内容。默认情况下,输出所有信息。 Project -> Options for Ta...
2018-04-23 11:45:15 1961
转载 STM32硬件错误HardFault_Handler的处理方法
在用Keil对STM32的程序进行仿真时程序有时会跑飞,停止仿真程序会停在HardFault_Handler函数里的死循环while(1)中。这说明STM32出现了硬件错误。 STM32出现硬件错误可能有以下原因: (1)数组越界操作; (2)内存溢出,访问越界; (3)堆栈溢出,程序跑飞; (4)中断处理错误; ...
2018-04-23 11:40:48 5396
转载 stm32使用MDK开发中的一些常见问题
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://no001.blog.51cto.com/1142339/8571171. 解决:keil报错invalid redeclaration of type name "s32"答案:一般在Target Options C/C++选项卡里的Include Paths 里要添加几个固定的...
2018-04-23 11:37:47 2165
转载 STM32 硬件错误HardFault_Handler的真凶
STM32出现HardFault_Handler故障的原因主要有两个方面:1、内存溢出或者访问越界。2、堆栈溢出。最近遇到的问题是栈溢出,情况是这样的,举例说明:static char data[10000];void fun1(unsigned char *buf){int i=0;for(i=0; i<5000; i++){data = buf;}}void fun2(void){un...
2018-04-23 10:37:57 16962 1
转载 STM32学习笔记之__attribute__ ((at())绝对定位分析
学习STM32也会遇到这样的绝对定位的问题如下:uint8_t UART_RX_BUF[1024] __attribute__ ((at(0X20001000))); //就是将串口接收的数据定位到RAM中起始地址为0X20001000;绝对定位要么定位到flash、要么定位到RAM,这里我们将定位在flash进行说明。MDK如何实现将数据存储到FLASH指定地址? 我们在烧...
2018-04-23 10:18:39 3933
转载 STM32的堆与栈
上一篇博客解决了因为堆栈的设置空间不够而引发的“命案”,这次我们就来看看它的“杀人动机”。首先我们来认识一下堆与栈的含义():(1)栈区(stack):由编译器自动分配和释放,存放函数的参数值、局部变量的值等,其操作方式类似于数据结构中的栈。(2)堆区(heap):一般由程序员分配和释放,若程序员不释放,程序结束时可能由操作系统回收。分配方式类似于数据结构中的链表。(3)全局区(静态区)(st...
2018-04-23 10:12:26 2191 1
转载 STM32的内存管理和堆栈相关的认知
今天仔细读了一下内存管理的代码,然后还有看了堆栈的相关知识,把以前不太明白的一些东西想通了,写下来,方便以后查看,也想大家看了能指出哪里不对,然后修改。 首先,先看一下stm32的存储器结构。Flash,SRAM寄存器和输入输出端口被组织在同一个4GB的线性地址空间内。可访问的存储器空间被分成8个主要块,每个块为512MB。FLASH存储下载的程序。SRAM是存储运行程序中的数据。所以,只...
2018-04-23 10:02:59 646
转载 一个关于使用STM32F4芯片CCM RAM时的异常分析
前言有客户用STM32F427芯片,程序将CSTACK放在CCM RAM中,结果测试过一段时间的板子都出现了不能正常运行的情况。这个现象一度让我们怀疑是否是CCM RAM在测试过程中遭到了破坏,导致我们在解决问题的道路上浪费了不少时间。事实证明STM32的CCM RAM并没有那么脆弱,而解决问题时尽力从多个角度进行验证,不放过所有可能出问题的环节之心态更为重要。在具体讨论问题的原因之前,不妨先介绍...
2018-04-23 09:26:34 2944 2
转载 浅谈C++/JAVA/C#运行机制和执行效率
浅谈C++/JAVA/C#运行机制和执行效率 估计有很多同学都对C++/JAVA/C#这三大热门语言的运行机制和执行效率有或多或少的困惑,自己也有,但是经过前期的学习,了解了三者在这两方面的区别,就废话不说了,进入主题吧。 一、运行机制 1、JAVA-编译和解释型语言 一个JAVA文件,首先会由JAVA编译器(JAVAC)编译成class(字...
2018-04-23 00:09:29 1778
转载 关于STM32的CPU的使用率~裸机不带系统
1. 如果你不跑操作系统,CPU肯定一直都是100%使用的,哪怕你里面是延时等待,CPU也是一直在执行空语句nop,因为STM32里面是有一个CPU。2.对于stm32总是百分百。只是有多少时间空闲,多少时间干活!3.楼主的意思是实际CPU用来干正事的时间,在整个时间里的比例,打个比方,如果工作50mS,再等待200mS,完成一个大循环,那么CPU的使用率就是20%。如果楼主的程序是以大循环方式做...
2018-04-21 14:27:09 9456 1
转载 STM32串口第一个字节丢失问题的分析过程
STM32串口发送必须先检测状态,否则第一个字节无法发出,发送完毕,必须检测发送状态是否完成,否则,发送不成功,使用stm32f10x调试串口通讯时,发现一个出错的现象,硬件复位重启之后,发送测试数据0x01 0x02 0x03 0x04..接收端收到的数据为:0x02 0x03 0x04,第一个数据丢失。换成发送别的数值的数据,如0x06 0x0ff,则接收到0x0ff,0x06丢失。错误依旧。...
2018-04-18 22:29:26 3166 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人