- 博客(36)
- 收藏
- 关注
原创 AutoSAR从概念到实践系列之MCAL篇(二)——Mcu模块配置及代码详解(下)
通过EB来配置MCU模块并生成代码供上层模块集成,介绍的配置项为常用配置,如果项目的功能复杂可能会涉及其他项配置,但本质上都是配置某个寄存器的参数,在使用时需结合静态代码和芯片手册熟悉工作原理,才能更准确的理解某个配置内容;
2025-04-26 21:09:43
898
原创 AutoSAR从概念到实践系列之MCAL篇(二)——Mcu模块配置及代码详解(上)
Mcu模块位于BSW的MCAL这一层,与芯片硬件强相关,AutoSAR标准通过对这一模块进行标准化,通过标准的API以适应不同的芯片平台。MCU Driver为MCU提供以下基础服务:MCU初始化、PowerDown、复位以及其他MCAL(微控制器抽象层)软件模块所必需的特定功能。其初始化过程通过与启动代码协同工作(如下图1所示),以实现灵活且与应用相关的微控制器初始化。其中启动代码高度依赖于MCU(不同平台的芯片有不同的Start_Up Code),其中涉及的功能必须在进行标准化MCU初始化之前完成;
2025-04-20 21:55:58
927
原创 AutoSAR从概念到实践系列之MCAL篇(一)——MCAL架构及其模块详解
MCAL 位于 AUTOSAR 软件架构中基本软件(Basic Software, BSW) 的底层, 主要是用来访问 MCU 寄存器和内部外设的底层驱动,同时使的上层软件(如 ECU 抽象层、 系统服务层等)独立于 MCU 硬件平台, 保证上层软件的标准化和通用性。对MCAL的架构及其组件进行了介绍,并对其配置工具EB进行了简要介绍,后续将定期逐一介绍MCAL各个模块的配置使用(以NXP_S32K144为例)。帮助开发者高效实现符合 AutoSAR 标准的汽车电子系统,大大提高了驱动软件开发的效率。
2025-04-18 22:41:58
1201
原创 MCU刷写——HEX与S19文件互转详解及Python实现
工作之余来写写关于的Bootloader刷写的相关知识,以免忘记。今天就来聊聊Hex与S19这这两种文件互相转化,我是分享人M哥,目前从事车载控制器的软件开发及测试工作。学习过程中如有任何疑问,可底下评论!如果觉得文章内容在工作学习中有帮助到你,麻烦走一波!
2025-04-13 16:08:00
945
原创 MCU刷写——Hex文件格式详解及Python代码
HEX文件(Intel HEX)是一种由英特尔公司设计的ASCII文本格式,广泛用于存储和传输嵌入式系统中的二进制数据(如微控制器固件)。HEX文件通过编码二进制数据为可读文本,并包含地址、校验和等信息,确保数据完整性和正确性。本文深入解析HEX文件的结构,并提供Python解析代码示例。
2025-04-12 22:53:06
935
原创 MCU刷写——S19(S-Record)文件格式详解及Python代码
S19文件(也称为S-Record、SREC或Motorola S-record)是一种由摩托罗拉(Motorola)公司设计的ASCII文本格式,用于表示二进制数据。它最初用于嵌入式系统的固件传输和存储,尤其在微控制器(MCU)编程、EEPROM烧录和调试中广泛应用。S19文件通过可读的文本形式编码二进制数据,同时包含地址、数据及校验信息,确保数据传输的完整性。S19文件凭借其简洁的格式和可靠性,在嵌入式开发中占据了重要地位,其自校验机制和兼容性使其成为固件传输的首选格式之一。
2025-04-12 22:28:30
1353
原创 软件开发中常用数据结构介绍:C语言队列
今天给大家带来循环队列的实现代码,至于队列的实现原理,网络上有许多详细的解释,我这里就不在赘述,直接上代码;工作之余来写写C语言相关知识,以免忘记。如果觉得文章内容在工作学习中有帮助到你,麻烦。学习过程中如有任何疑问,可底下评论!,我是分享人M哥,目前从事车载。的软件开发及测试工作。
2023-08-20 16:48:15
585
原创 软件开发中常用数据结构介绍:C语言链表
提起链表,相信大家都很熟悉,无非就是数据域和指针域的相关操作,这里不多说,直接上代码;上述代码是链表最简单的使用形式,其余复杂使用场合都可基于此代码进行添加;,我是分享人M哥,目前从事车载控制器的软件开发及测试工作。工作之余来写写C语言相关知识,以免忘记。如果觉得文章内容在工作学习中有帮助到你,麻烦。学习过程中如有任何疑问,可底下评论!
2023-08-13 14:20:25
348
原创 CAPL编程的催化剂——CAPLdll的实现
CANoe作为一款功能强大的总线开发及测试工具,不仅仅是因为其丰富的库函数,最重要的是其兼容了多种编程语言,可以实现灵活的开发,极大的解决了纯CAPL编程所带来的限制,如通过动态链接库(DLL)来实现复杂函数的编写,使其能够在CAPL中可以调用,下面将对DLL的实现进行分析。capldll.cpp这个文件初看相当复杂,从整体上来说,这段代码主要包含了两部分:自定义函数实现和回调函数定义,今天的主要任务是实现自定义函数,这里的函数定义与普通函数定义差不多,只是利用了CAPL的格式。在VS2017工程中打开。
2023-08-04 22:14:16
3459
1
原创 带你玩转车载测试——CAPL入门篇六:CAPL常用库函数介绍(二)
欢迎大家学习我的《带你玩转车载测试——CAPL入门篇》系列课程,我是分享人M哥,目前从事车载控制器的软件开发及测试工作。学习过程中如有任何疑问,可底下评论!如果觉得文章内容在工作学习中有帮助到你,麻烦走一波!CANoe中的诊断库函数主要有两类:一类是依据CDD文件使用的函数;另一类是依据传输层动态库(cantp.dll)来实现诊断功能的函数。
2023-07-30 15:23:33
3961
原创 带你玩转车载测试——CAPL入门篇五:CAPL常用库函数介绍(一)
(2)向CAN总线输出错误帧,可以采用output和canOutputErrorFrame函数,同时可以通过canGetErrorFrameCount函数来返回CAN通道的总错误帧数量。如:当按下按键‘a’时,CAN控制器复位;(1)canGetBusLoad:返回CAN通道的负载率百分比,如下图1所示:当按下按键‘a’时,write窗口输出当前的总线负载率;(4)output函数不仅可以向总线发送错误帧,还能发送任意报文,如下图3所示:当定时器触发后,报文0x100被发送到总线上;
2023-07-24 06:00:00
3744
2
原创 带你玩转车载测试——CAPL入门篇四:CAPL程序结构
variables// Sedan在进行CAPL编程时,对于经常使用的一些模块可以写成函数,方便后期调用,其自定义函数跟C语言类似,但也有区别:在声明函数参数时,除整型、浮点型、结构体及枚举等类型外,像类似singal、message及diagrequest等来自dbc中的变量,在声明时需要增加*号,如:singal * s;else。
2023-07-20 22:04:19
3067
原创 带你玩转车载测试——CAPL入门篇三:CAPL基本语法
欢迎大家学习我的《带你玩转车载测试——CAPL入门篇》系列课程,我是分享人M哥,目前从事车载控制器的软件开发及测试工作。学习过程中如有任何疑问,可底下评论!如果觉得文章内容在工作学习中有帮助到你,麻烦走一波!CAPL作为一种类C的语言,对于类似于if/else语句,switch语句及while语句等流程控制语句同样适用,下面将进行一一介绍。
2023-07-18 06:00:00
3757
原创 带你玩转车载测试——CAPL入门篇二:CAPL数据类型
其中,CAPL中的整型常用的主要包括:int,long,byte及dword等;CAPL作为一种类C的语言,其数据类型大部分与C语言相同,但也有与其功能相关的特殊的类型,如:msTimer,message等类型;(2)诊断数据类型:diagrequest和diagresponse类型,通过定义这两种诊断请求和诊断响应变量来进行诊断服务的发送。(3)系统变量类型:系统变量类型是定义在各自命名空间里的变量,主要用来传递事件触发的值等,一般需要自己定义;“message + dbc中报文名 + 变量名”
2023-07-17 06:00:00
1336
原创 Tensorflow应用(一):MNIST手写数字识别
采用softmax回归模型对MNIST数据集进行训练、测试和评估,得到结果的正确率。from tensorflow.examples.tutorials.mnist import input_dataimport tensorflow as tfmnist = input_data.read_data_sets("Mnist_data/",one_hot = True)x = tf.placeholder(tf.float32,[None,784])W = tf.Variable(tf.zer
2020-12-21 18:59:03
196
原创 快慢指针的应用
快慢指针是指移动速度一快一慢的两个指针变量。通常有以下应用:删除数组重复项; 判断链表是否存在环; 移除数组元素;通过力扣的一道习题来练习下快慢指针的使用:27. 移除元素难度简单732收藏分享切换为英文接收动态反馈给你一个数组nums和一个值val,你需要原地移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并原地修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例...
2020-12-17 15:24:35
112
原创 二分法在数组计算中的应用
数组作为一种最基本的数据结构,表示存储在连续内存空间的相同类型数据,分一维数组和二维数组,一维数组在内存中是连续存储;二维数组一般是按行或列来存储,每一行或列又是连续存储。一般我们是通过下标对数组进行索引,比如a[0],a[1],由于数组在内存中是连续存放,如果我们对其进行增加或删除操作,就必须移动其他元素,即使得算法的时间复杂度为O(n),故一般不会对数组进行频繁的增删操作。我们通过力扣的一个习题来学习下数组的使用:35. 搜索插入位置给定一个排序数组和一个目标值,在数组中找到...
2020-12-16 20:23:11
159
原创 Python中字符串的索引和切片
在使用Python编程过程中,有时候需要某个字符串的一个或多个字符,可以采用字符串的索引和切片来完成。对于某一个字符,通-过索引来输出,具体运算符为[N],N的范围是0~N-1,这个也叫做正向索引,比如[0]表示第一个字符;也可以采用-N~-1来索引,此时-1表示最后一个字符,-N表示第一个字符;注意不要越界索引!取出多个字符采用切片操作,比如[1:5:2],1表示开始索引,5表示结束索引,...
2020-04-29 17:12:36
888
使用Pygame库来实现一个简单的赛车小游戏
2024-03-24
CAN总线Excel矩阵转DBC小程序
2024-03-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人