自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(91)
  • 收藏
  • 关注

原创 Classic AUTOSAR精讲专栏目录

欢迎大家来到钢琴上的汽车软件创建的《Classic AUTOSAR精讲系列专栏》,期待在这里能够与大家一起进步,分享成功,分享喜悦!下面蓝色的文章标题都是传送门,点击直接跳转到对应文章。

2023-03-04 15:10:31 1433 1

原创 Classic AUTOSAR精讲系列介绍

已逐渐被大众所认可接受。随着汽车新四化的发展,越来越多的朋友加入到了汽车这个行业,未来汽车的发展,大量的功能都需要软件来实现,这也正是我们这些汽车电子软件工程师发展的良好机遇。本人先后多家主机厂和Tier1从事自动驾驶,ADAS,车联网开发工作,目前在一家汽车零部件公司从事车联网相关工作,为了能和更多的朋友交流,我创建了。

2023-02-08 13:33:10 2078

原创 AUTOSAR OS的启停

目标硬件必须在OS启动之前被初始化OS在StartOS()调用之前不会运行tdown Hook在执行ShutdownOS() API调用期间被调用。

2024-05-17 09:05:43 26

转载 __attribute__((weak))介绍以及用法

在c语言中,函数和初始化的全局变量是强符号,未初始化的全局变量是弱符号。强符号和弱符号的定义是连接器用来处理多重定义符号的,它的规则是:不允许多个强符号;如果一个强符号和一个弱符号,这选择强符号;如果多个弱符号,则任意选一个。

2024-05-13 13:36:38 26

原创 CCC数字钥匙各版本关系

CCC钥匙规范版本关系CCC数字钥匙架构Overview

2024-05-11 16:46:35 170

原创 AUTOSAR OS调度表讲解

调度表提供了一种在配置时静态规划一系列操作的方法调度表与一个AUTOSAR OS计数器相关联,可以指定持续时间,并包含一个或多个到期点调度表可以通过下面方式与全局tick源同步:隐式同步,其中驱动调度表的计数器是全局时间源显示同步,其中驱动调度表的计数器由本地计数器驱动,并通过告知操作系统全局滴答源的当前值手动同步表。

2024-05-11 08:46:44 141 2

原创 AUTOSAR CAN Busoff处理

CAN通信Busoff即总线关闭态,一个CAN节点有三种状态,主动错误状态、被动错误状态以及总线关闭态。如下图可知进入Busoff的原因是因为发错错误大于255,在此状态节点不能收发报文。

2024-04-28 10:50:48 233

原创 FreeRTOS中信号量与互斥锁区别

在多任务实时操作系统(RTOS)如FreeRTOS中,任务同步和资源共享是常见的需求。为了有效地管理这些操作,FreeRTOS提供了多种同步机制,其中信号量(Semaphore)和互斥锁(Mutex)是最常用的两种。尽管它们在某些方面相似,但它们在用途和行为上存在显著差异。本文将探讨这两种同步机制的区别以及它们在实际应用中的使用方式。

2024-04-24 15:27:54 383

原创 ISO CANFD与Non-ISO CANFD

总的来说,ISO CAN FD和非ISO CAN FD在技术实现和标准化程度上存在差异,选择哪一种标准往往取决于具体的应用场景和兼容性需求。随着ISO 11898-1:2015标准的推广和应用,ISO CAN FD逐渐成为主流的CAN FD实现方式。ISO CAN FD和非ISO CAN FD(也称为Bosch CAN FD)是两种不同的CAN FD协议标准。它们之间的主要区别在于它们在设计和实现时所遵循的规范不同。

2024-04-24 10:12:26 368

原创 CANFD帧能否唤醒CAN网络

本文的撰写起因是源于AUTOSAR技术群中一位朋友的提问。他提出的问题是关于AUTOSAR网络管理功能是否支持CAN FD报文的实现。朋友:Autosar网络管理功能有用CANFD报文实现的吗?我:有啊,Autosar网络管理不限制报文类型是标准CAN还是CANFD朋友:数据收发还是8字节的方式,只是报文类型可以是CANFD?我:对,另外报文长度其实也没啥限制,只要符合规范要求。

2024-04-23 13:32:39 243

原创 AUTOSAR OS Alarm讲解

使用中断ISR可以构建以不同速率激活任务的系统。然而,对于复杂的系统,这种方式效率不高且不切实际。alarm(警报)提供了一种更方便、更灵活的调度系统的方式。一个计数器一个或多个与计数器关联的alarmalarm指定当达到特定的计数器值时要执行的动作。系统中的每个计数器都可以附加任意数量的alarm。当计数器的值等于附加在该计数器上的警报值时,称该警报已经过期。在到期时,OS将执行与警报相关的操作。动作可以是激活一个任务,执行一个警报回调例程,设置一个事件或驱动一个软件计数器。

2024-04-22 14:12:10 311

原创 AUTOSAR OS Counter讲解

Counter(计数器)以tick为单位记录操作系统中发生了多少“事情”。tick(滴答)是一个抽象的单位。时间,例如毫秒,微妙,分钟等,然后计数器计算过去了多少时间旋转,例如以度或分钟为单位,计数器计算物体旋转了多少按钮按下,计数器计算按钮按下多少次错误,计数器计算错误发生的频次中断(有时是任务)用于驱动一个计数器。该驱动程序负责进行正确的OS API调用来滴答计数器,或者告诉OS计数器已经滴答到一个所需的值。

2024-04-22 08:52:00 72

转载 链表基础知识详解(非常详细简单易懂)

链表作为C语言中一种基础的数据结构,在平时写程序的时候用的并不多,但在操作系统里面使用的非常多。不管是RTOS还是Linux等使用非常广泛,所以必须要搞懂链表,链表分为单向链表和双向链表,单向链表很少用,使用最多的还是双向链表。单向链表懂了双向链表自然就会了。

2024-04-19 15:40:31 101

原创 AUTOSAR OS Event讲解

在AUTOSAR系统中,event(事件)用于向任务发送信号信息。事件可以为Extended task提供多个同步点,如下图:extended task可以等待事件,这将导致任务进入等待状态。当系统中的任务或ISR设置事件时,等待任务将进入就绪状态。当它成为最高优先级的就绪任务时,OS将选择它来运行。事件由与其关联的extended task拥有。通常,extended task将作为一个无限循环运行,其中包含对其拥有的事件的一系列受保护的等待调用。因此,事件机制允许我们构建事件驱动的状态机。

2024-04-18 09:13:26 281

原创 AUTOSAR Resource讲解

访问由任务和中断共享的硬件或者数据是不可靠的且危险的。这是因为当低优先级的任务或者中断更新共享数据时可能产生抢占,即这是一种竞争条件。访问共享数据的语句序列成为临界区。为了提供对临界区中引用的代码和数据的安全访问,我们需要强制互斥。即必须确保在临界段期间,系统中没有其他任务或者2类中断能够抢占当前正在执行的任务。AUTOSAR操作系统提供了基于资源(Resource)的互斥机制。Resource只是一个二进制信号量。当一个任务或2类中断获得资源时,其他任务或者中断无法获得该资源。

2024-04-17 13:11:43 65

原创 蓝牙SPSM

SPSM是蓝牙协议栈中的一个重要组成部分,它通过在L2CAP层上复用多个协议或服务,提高了蓝牙通信的效率和灵活性。同时,它还涉及到流量控制和安全性,是实现复杂蓝牙应用的关键技术之一。

2024-04-16 15:26:26 386

原创 蓝牙特征属性

扩展属性:这个属性表明特性有更多的属性定义在特性扩展属性描述符(Characteristic Extended Properties Descriptor)中。例如,一个特性可以同时支持读取、写入和通知,这样就可以创建一个既可以被读取也可以在值改变时通知客户端的特性。当一个特性设置了这个属性,任何在广播范围内的蓝牙设备都可以接收到这个特性的值,而不需要建立一个安全连接。通知属性:这个属性允许服务器设备在特性值改变时,主动向已订阅的客户端设备发送通知。可写属性:这个属性表示特性值可以被写入。

2024-04-16 14:30:56 254

原创 AUTOSAR Interrupt讲解

在SuspendOSInterrupts()之后,除了SuspendAllInterrupts()/ResumeAllInterrupts()对和SuspendOSInterrupts()/ResumeOSInterrupts()对之外的API调用不被允许。在SuspendAllInterrupts()之后,不允许调用SuspendAllInterrupts()/ResumeAllInterrupts()和SuspendOSInterrupts()/ResumeOSInterrupts()之外的API。

2024-04-15 14:12:08 174

原创 AUTOSAR Task快速熟悉手册

必须同时执行许多不同活动的系统称为并发系统。这些活动可能有一些软件部分,因此提供它们的程序必须并发执行。这些程序必须在必要时进行合作,例如,当它们需要共享数据时。实时系统中的每个并发活动都由一个表示。大多数应用程序代码存在于任务中。如果您有许多必须同时执行的任务,则需要提供一种允许并发的方法。一种方法是为每个任务设置一个单独的处理器。您可以使用并行计算机,但是这种解决方案对于许多应用程序来说过于昂贵。

2024-04-12 09:19:44 310

原创 蓝牙MTU的更新

在低功耗蓝牙(BLE)开发过程中,MTU(Maximum Transmission Unit)是一个关键的概念,它指的是在连接中可以传输的最大数据包大小。例如,在许多BLE堆栈中,默认MTU值可能为23字节(20字节的数据负载加上3字节的头部信息)。请注意,过大的MTU值可能会导致链路不稳定或增加延迟,因为较大的数据包可能需要更长的时间来传输。在实际的BLE开发中,MTU的处理和协商通常是通过BLE堆栈的API来完成的。如果请求的MTU值被接受,那么新的MTU值将被应用到连接中。来找到最佳的MTU值。

2024-04-11 09:37:06 407

原创 什么是蓝牙OOB

蓝牙OOB(Out of Band)配对是一种在蓝牙设备之间建立安全连接的方法,它不依赖于传统的蓝牙无线频段来传输配对所需的关键信息。这种方法不仅提供了更大的灵活性,允许开发者自定义配对流程,而且通过在非蓝牙信道上传输敏感信息,显著提高了配对过程的安全性。在OOB配对过程中,设备可能会通过外部提示,例如闪烁的LED、屏幕上显示的数字或声音信号,来辅助信息的传输。这种配对方式的流程通常包括交换公钥或配对码,然后使用这些信息计算出一个共享的密钥,最终用该共享密钥来加密和验证设备间的通信。

2024-04-10 09:39:03 408

原创 Ble的认证与授权

在BLE(Bluetooth Low Energy)中,认证(Authentication)和授权(Authorization)是确保设备间安全通信的重要概念。这两个过程通常是相互关联的,但它们的具体实现和需求可能会根据应用场景和安全要求而有所不同。

2024-04-10 09:37:35 396

原创 蓝牙notify和indicate消息区别

Notify是单向的,不需要确认。Indicate是双向的,需要确认响应。这两种机制使得BLE设备能够有效地进行数据交换,同时保持低功耗的特性。Notify适合于那些对实时性要求高但可以容忍丢包的应用场景,如心率监测。而Indicate则适合于需要可靠传输的场景,如步数统计。

2024-04-09 10:37:17 717

原创 蓝牙GAP与GATT

GAP是BLE核心规范的一部分,它定义了设备在广播、扫描、连接和断开连接等基本行为上的通用访问方法。GATT是BLE核心规范的一部分,它提供了一种标准的方式来组织和传输设备间的数据。GATT是BLE设备之间进行数据交互的基础,它为设备提供了一种标准化的方式来定义和访问服务和特性。GAP是BLE设备必须遵守的一组规则,以确保不同制造商的设备能够相互发现和连接,从而实现互操作性。GATT支持设备同时充当中央(Central)和外围(Peripheral)角色,即设备可以同时连接到其他设备并被其他设备连接。

2024-04-07 09:08:44 339

原创 一文了解低功耗蓝牙BLE

作为GATT服务器,GATT的大部分功能都由各个GATT配置文件处理。这些配置文件使用GattServApp(存储和管理属性表的模块)。

2024-04-03 14:52:53 1002

原创 蓝牙Simple Peripheral工程学习

TI BLE SDK提供了Simple Peripheral工程,初学者可以通过这个工程来学习基本的蓝牙知识,通过实操掌握蓝牙基本的理论与通信方式。在介绍这个工程前,先为大家介绍蓝牙Peripheral与Central的区别。如下图GAP主要负责Ble设备的连接,GAP状态机描述了设备空闲、设备发现与连接三个阶段的状态转换,状态解释如下Standby复位后设备处于初始空闲态Advertiser广播者广播指定格式数据使其他设备知道自己可连接,广播消息可包含设备地址和一些附加数据比如设备名称。

2024-04-02 10:29:32 791

原创 AUTOSAR OS详细介绍及配置说明(更新版20240115)

AUTOSAR OS扩展了OSEK/VDX标准中的操作系统,所以本文结合OSEK/VDX的标准来介绍AUTOSAR OS,并借助Vector Configurator讲解AUTOSAR OS的配置。源于德语,英文意思是:“车载电子设备的开发系统和接口”,它是一个标准,用来产生嵌入式操作系统的规范,通讯协议栈,和汽车网络管理协议,也产生其他相关的规范。OSEK被设计来提供整车的各种电子控制单元的软件标准架构。

2024-01-16 08:49:40 329 1

原创 硬件安全HSM介绍

随着汽车智能化和网联化的发展,汽车软件面临着更加严重的安全风险问题,为了应对一系列软件安全问题,就离不开硬件安全模块这个扮演着安全之锚的角色。HSM是硬件安全模块的英语缩写,全称是Hardware Security Module。HSM可以用于车辆安全信息(比如密钥)的生成、存储以及处理,且能够隔离外部恶意软件的攻击。HSM可以用于构建、验证可靠的软件,以保护在软件加载并初次访问之前的安全启动。HSM包含有加密/解密硬件加速功能,和软件解决方案相比能够有效降低CPU负载。

2023-12-07 09:18:33 1085

原创 AUTOSAR CAN Busoff处理

CAN通信Busoff即总线关闭态,一个CAN节点有三种状态,主动错误状态、被动错误状态以及总线关闭态。如下图可知进入Busoff的原因是因为发错错误大于255,在此状态节点不能收发报文。

2023-11-10 14:38:35 951

原创 git commit规范提交

Git每次提交代码时,都要写Commit Message(提交说明),通常情况下,Commit Message应该清晰明了,说明本次提交的目的和具体操作等。例如,有些人会写此次代码的修改是基于哪个模块,有些人会写解决了哪些Bug,有些则只写修改了哪个文件,中英文混用等等五花八门的Commit格式,这导致后续的代码维护成本很高,有时候提交人看Commit Message都不知道自己改了什么。比如查阅某个业务的修改历史,查阅某个时间段修复了哪些Bug,因为Commit没有统一的格式,就比较难快速获取这些信息。

2023-11-06 15:44:57 363

原创 AUTOSAR EcuM,ComM,CanNm的关联

然后当ComM进入Full Communication后也会默认往Ready Sleep状态里面去跑,除非持续收到外部的唤醒,否则不会去保持Network的唤醒状态。在Slient状态下没有收到NM Message,并且这时收到了NM Bus-Sleep的指示,则让CanSM去关闭通道,然后进入No Communication的状态。进入Full Communication后由于是内部唤醒,会首先进入Network Requested,执行正常的报文收发,能一直主动去保持Network的唤醒状态。

2023-11-03 16:39:00 651

原创 AUTOSAR CAN协议栈架构总览介绍

在知道了Classic AUTOSAR层级架构后,我们就可以根据该架构列出CAN协议栈的层级关系,如下图服务层涉及的模块有:Can NM,DCM,COM,PDUR,Can TPECU抽象层涉及的模块有:Can Interface微控制器层涉及的模块有:Can Driver注:图片来源于网络,如有侵权,联系删除。

2023-10-31 13:54:16 633

原创 车载网络SOA服务之SOMEIP介绍

随着ADAS,自动驾驶,OTA等业务的兴起,对于通信带宽的需求越来越迫切。传统的方式CAN,FlexRay甚至MOST等总线已经不能满足当下的需求,所以汽车工业需要考虑一种高带宽,高速率的通信网络,另外传统面向信号的通信方式也需要随着新业务的需要转向面向服务的通信方式。考虑到这种需求,以太网通信被引入车载网络中。以太网作为工业界广泛接受的协议,很多协议比如TCP/IP和UDP也经过了几十年严格的研发和协议的验证。

2023-10-25 11:31:23 263

原创 AUTOSAR CAN通信 TxConfirmation RxIndication ACK介绍

CAN的错误帧中有一种就是ACK错误,ACK错误由发送方负责检测,发送方在ACK段发送2个隐性位,接收发收到该帧时将ACK槽置为显性位(ACK应答),由于“线与“原则,ACK段会由”01“组成,发送方在发送CAN帧时同时监听总线,如果发生方在ACK槽中检测出隐性电平就会检测出ACK错误(由于没有接收方在ACK槽填充),同时会发出ACK错帧帧。中断模式是在中断ISR中调用CanIf_TxConfirmation通知CanIf,然后CanIf通过User_TxConfirmation通知上层User。

2023-10-24 09:41:37 433

原创 git rebase -i 详解

git rebase命令允许我们轻松地更改一系列提交,修改存储库的历史记录。我们可以重新排序、编辑或合并提交。一般常用git rebase来合并当前分支的多个commit记录(压缩)以及避免出现分支的交叉合并(变基)1。

2023-10-23 10:26:27 2516

原创 AUTOSAR IdsM介绍

车辆中的许多新功能建立在车载和后台服务之上,需要面对保护车辆免受网络攻击的挑战。为车辆的E/E架构配置了安全机制,更新签名软件、安全启动和安全车载通信系统正在逐步建立。目前,IDS(Intrusion Detection System)作为一种额外的安全机制正在引起OEM和供应商的关注。

2023-10-20 13:51:53 486

原创 git commit添加模板

此时当我们输入git commit -s时就会自动创建如下commit内容。如果想在commit中添加作者签名,使用**-s**指令,如下。

2023-10-17 14:01:18 608

原创 AUTOSAR介绍

AUTOSAR接口标准AUTOSAR接口标准接口AUTOSAR接口是通用接口,源自任意SWC的端口。AUTOSAR接口由RTE提供,用于SWC之间或SWC与ECU固件(IoHwAb、复杂设备驱动)之间的接口。例如,SWC可以通过这些接口读取输入值并写入输出值。标准AUTOSAR接口是由AUTOSAR标准预定义的特殊AUTOSAR接口。SWC使用这些类型的接口访问由服务层的BSW模块(例如ECU状态管理器或诊断事件管理器)提供的AUTOSAR服务。

2023-10-16 11:03:41 890

原创 硬件安全HSM介绍

随着汽车智能化和网联化的发展,汽车软件面临着更加严重的安全风险问题,为了应对一系列软件安全问题,就离不开硬件安全模块这个扮演着安全之锚的角色。HSM是硬件安全模块的英语缩写,全称是Hardware Security Module。HSM可以用于车辆安全信息(比如密钥)的生成、存储以及处理,且能够隔离外部恶意软件的攻击。HSM可以用于构建、验证可靠的软件,以保护在软件加载并初次访问之前的安全启动。HSM包含有加密/解密硬件加速功能,和软件解决方案相比能够有效降低CPU负载。

2023-10-13 10:49:09 1656 1

原创 SAE J1939协议

SAE J1939是基于CAN(Controller Area Network,控制器局域网)的通信协议,广泛用于各类商用车。该协议对车辆中连接CAN的电子组件及其附加设备之间的通信进行了标准化。

2023-10-12 15:46:35 1319

How to Integrate E2E in MICROSAR

文档介绍了在VECTOR AUTOSAR软件MICROSAR中如何集成End_to_End Protection。

2024-02-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除