![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式
虎啸h
小白
展开
-
内存申请与释放导致的问题
文章目录背景问题分析 背景 最近这刁钻的问题都让我碰上了,产品运行一到两天后就不正常工作了。输出各个过程的信息发现有块内存的内容不正常,本该是一些固定的数据,发现跟程序设定的不一样了,最后仿真发现提示outof heap,堆超限了。。。,也不是每次都提示堆超限吧,多少次后会提示堆超限呢? 问题分析 看到内存在没有使用的情况下里面的内容都是0 产品跟外界产品一直在通信,每次接收到符合协议的内容都会申请(malloc)1024Byte的内存,但是却只释放(free)了收到字节个数的大小,导致申请不到内存,原创 2020-08-17 20:23:30 · 383 阅读 · 0 评论 -
只有在上电或复位时才会出现问题一种可能的原因
文章目录背景复位的作用不复位会导致的结果 背景 在做产品时发现有时候产品复位或者刚上电时产品工作异常,百思不得其解,经过较长时间的调试发现是因为没有复位导致的,那么复位的作用是什么呢? 复位的作用 作用是使电路恢复到起始的确定状态,当给cpu上电那一瞬间,电压有在几微秒内(有的是几毫秒内)不是直接跳变到5V的而是一个直线上升的阶段,这时候,cup不能正常工作,需要复位电路给它延时以等到电压稳定。 不复位会导致的结果 如果系统在上电时得不到有效的复位,则程序计数器PC将得不到一个合适的初值,因此,CPU可能会原创 2020-08-01 17:04:35 · 506 阅读 · 0 评论 -
工作中遇到的几个makefile问题
文章目录工作中遇到的几个makefile问题提示报错no rules to make ***.h needed by **.c报错提示can not open **.h在makefile里也要尽量避免用绝对路径题外话 工作中遇到的几个makefile问题 提示报错no rules to make ***.h needed by **.c 一般都是提示no rules to make ***.c,没想到还有提示没有规则去编译.h的情况,实在是没有办法无意间将.c去掉,竟然提示没有规则去编译 .c, ok一下就原创 2020-08-01 16:48:48 · 236 阅读 · 0 评论 -
RS485导致产品工作不正常问题记录
RS485问题记录 背景介绍 遇到设备不能正常启动的问题,只有打开串口后设备才可以正常工作,最后终于定位到问题点: RS485芯片不工作时AB线间电压差代表的默认应该是逻辑高(异步串行通信(UART)的起始位是低电平,结束位是高电平),如果是低(A低B高差值大于一定范围)那么就会导致串口一直在收数,如果程序里没有针对接收字长的限制就有可能导致接收缓存数组buf越界,导致程序跑飞。而正常运行后也会导致cpu占用率过高(一直在接收数据),影响产品的性能。 所以硬件上485A、B一定要做好上下拉。 在自己的硬件有原创 2020-07-14 19:54:23 · 720 阅读 · 0 评论 -
isp-iap-bootloader
bootloader -- 芯片在出厂时预先烧写,还有很多不同叫法:isp服务程序(stc),bootstrap(msp430)等等。这段代码会首先检测芯片的指定引脚上有没有特定的信号,如果没有,则跳入用户程序执行。否则就按照bootloader特定的通信协议,与计算机进行握手,并最终触发计算机将新的程序通过通用接口(如串口)传送到芯片。然后bootloader通过软件的方式(当然需要硬件支持),...转载 2018-02-28 14:44:20 · 499 阅读 · 0 评论