- 博客(8)
- 收藏
- 关注
原创 keil:fatal error:“xxxx.h“ file not found解决方法
我在移植lwip的过程中,出现了头文件不包含的问题,按理这些年经验,不至于范这种低级错误,该添加的添加了,该配置的都配置了。为什么始终会报这个fatal error呢?折腾了一下,后面发现一个小细节,在lwip的xxx.c文件中,很多头文件引用是#include "lwip/xxxx.h"格式的,说明在相对路径下的一个绝对路径,那在options->c/c++下面设置头文件路径的时候,针对lwip应该怎么设置呢?先来看下lwip文件的架构:可以看到,在Include路径下面,包含了4个子文件,
2020-07-05 10:10:14 26969 5
转载 Keil MDK报错:Browse information of one of more files is not available解决方法
在移植LWIP时,将文件合并进工程的时候发现了这个错误,找了网上很多方法,各种修改keil配置的方法都不奏效(可自行百度,可能对你有效)。然后参照下面链接,完全解决了问题。转载 《Keil MDK中工程改变目录或更换电脑之后报错Browse information of one of more files is not available解决方法》经过验证,有效果,希望能帮到大家!...
2020-07-05 09:43:22 1169
原创 RTOS系统CPU使用率和任务堆栈空间统计方法
在做产品开发时,我们都会接触到一个概念,那就是余量。对于硬件,比如某电容耐压至少需要15V,那么根据经验和设计规则,可能会留有一定的余量,最后选型耐压值为16V的电容。硬件如此,软件呢?更需要按照这种思路去设计,相比硬件,软件更无形,所以留有余量是衡量软件稳定性必须考量的一个关键点。根据在整车软件设计的经验,CPU的负载率需要控制在85%以内,堆栈使用率控制在80%,对于外部通信,CAN的通信负载率需要控制在40%以内,最高不超过45%(硬件设计达到国际一流车企标准的前提下)。OK,言归正传。我们在进行
2020-06-30 00:12:40 2217 2
原创 嵌入式内存管理——清除多余的私有内存
最近在调试一份基于ucosII系统的代码,在观察map文件的时候,发现有个文件莫名其名的占用了9kb空间。这个文件就是ucosII自带的内存管理lib_mem.c文件。为什么会这样呢?一路查看,发现如下定义:UcosII 在lib_mem.c中,留有很多接口可以对内存进行操作,可操作内存大小由#define LIB_MEM_CFG_HEAP_SIZE 9u*1024u /*Configure Heap Memory Size */这个大小可能是同事操作遗留下来的,我没去比对源码的初始值。#ifnd
2020-06-28 23:26:07 839
原创 嵌入式内存管理——变量定义后到底是如何神之存在?
在基于RTOS进行嵌入式软件编程时,如果让代码精简,内存用到恰到好处,那就需要在开发过程中,对代码进行深度优化,然而能达到多深,就看你对内存知识掌握的多深了。为了能够知己知彼,我对相关定义都进行了验证,入木三分才能有的放矢。根据上一节文章,我们在开发过程中,定义的变量究竟最后是怎么存放的呢?怎样在消耗我们的内存?我们以前又是如何在“挥霍”这宝贵的资源的呢?先来个预览吧:RAM区:FLASH区:我进行了如下验证:一、任务函数中的变量到底存在什么地方?因为全局变量定义后,都是存放在.data或者
2020-06-27 21:14:31 218
原创 嵌入式内存管理——编译器优化等级对内存的影响
第一次写技术文章,不知道如何表述才能更好的和大家交流,试着慢慢写,希望可以坚持下去。写这个的原因有很多,主要还是自己困惑,其次想和大家交流下心得。如有不对的地方,欢迎指正。PS:简单自我介绍,感兴趣可以上知乎--我的介绍对于嵌入式设备来说,举例STM32这类,RAM区一般不超过512kbyte,Flash最多2Mb,咱们这篇文章,主要是关注内存(即RAM区)。所有代码,都里不开内存,但由于嵌入式芯片处于成本考虑,内存都不会太大,所以,在使用过程中,对内存资源的把控尤为关键,如果设计不好,导致内存爆满那
2020-06-27 20:24:18 669
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人