![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式
文章平均质量分 58
奋斗得小牛
这个作者很懒,什么都没留下…
展开
-
如何快速定位段错误 Segmentation fault
直接上干货 linux下:首先修改makefile文件打开调试选项 例如:#VER:=debugifeq($(VER),debug)。。。改为VER:=debugifeq($(VER),debug)。。。然后终端执行ulimit -c unlimited(生成core)然后执行可执行文件调试可执行文件的core文件sudo gdb 可执行文件 coregdb bt显示的是当前程序结束是的堆栈位置。...原创 2020-12-29 10:10:47 · 486 阅读 · 0 评论 -
can整车报文解析
设置初始化,配置管脚,是否进行映射,配置波特率,设置中断函数等等。 下面详细介绍如何解析整车报文的详细过程 Can1控制器发,Can2控制器接收。发送比较简单,设置好发送函数,配置一下ID就完事了,接收也同样简单,只需滤波一下需要的ID就行。但是如果是整车报文的解析就不一样了。主要是接收方的解析。 首先我们得到...原创 2018-08-16 17:53:54 · 29860 阅读 · 1 评论 -
STM32 CAN诊断详解
在许多领域里面,控制系统由很多部分组成,只不过有主次之分。主控制系统是如何知道其他系统是否出现问题的,答案就是通过can诊断,不仅能知道出现的问题还能进行想对其进行的操作。一般为诊断仪和各个部分的通信。 我们在can报文分为诊断报文和解析报文以及网络管理报文,不同的报文根据不同的ID保存在不同的位置。can诊断报文保存在自己的缓存里面。他的报文格式就是数据帧,简单来...原创 2018-08-20 17:32:36 · 5218 阅读 · 0 评论 -
can 网络管理
网络管理主要功能:是用来管理ECU是否在网络里面,不在的话请求加入,也就是ALIVE报文, 要判断是否掉线,以及睡眠状态的转换机制,以及跛行状态判,也即是RING报文。主要的实现逻辑流程:从rtos队列里面取出数据,保存在自定义的结构体里面 不论在何种状态只要接收到报文都需要静进入normal状态,等于初始化一次 提取信息,报文的主要信息有三部分,报文ID,目的地址,以及消息类...原创 2018-08-31 16:26:54 · 10635 阅读 · 5 评论 -
FreeRtos内存管理 heap_1.c /heap_2.c /heap_3.c原理代码解析
FreeRTOS提供的内存管理都是从内存堆中分配内存的。默认情况下,FreeRTOS内核创建任务、队列、信号量、事件组、软件定时器都是借助内存管理函数从内存堆中分配内存。最新的FreeRTOS版本(V9.0.0及其以上版本)可以完全使用静态内存分配方法,也就是不使用任何内存堆。对于heap_1.c、heap_2.c和heap_4.c这三种内存管理策略,内存堆实际上是一个很大的数...原创 2018-10-25 15:26:21 · 1438 阅读 · 0 评论 -
结构体定义以及类的定义
结构体1、最正规定义方式:定义结构体data,此时结构体相当于一个类型,比如int,如需使用此结构体,方法同intstruct data char a; int d;}; struct data B2、定义结构体data同时,定义需要使用的结构体变量sum1,sum2。如后面再需要定义结构体变量,方法同1struct data{char a; ...原创 2018-11-01 13:48:41 · 3131 阅读 · 0 评论 -
创建一个线程函数为类的成员的线程,没有对象,但是又要用到类里面的其他变量。
创建一个线程,这个线程需要用到类成员变量如果我们简单的使用静态变量,相当于全局变量,可以调用这个函数最为线程函数,但是在函数内部我们无法使用其他类的成员。如果不定义静态变量有无法创建这个线程。解决方法:(线程是在类里面的函数中创建)1创建一个线程,线程函数为类public成员,参数设置为this。hT...原创 2018-11-01 14:46:47 · 1061 阅读 · 0 评论