自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(108)
  • 问答 (2)
  • 收藏
  • 关注

原创 服务层-系统服务

确保系统能够高效地管理多个任务,支持多任务并发执行,满足汽车系统对实时性的要求。:确保系统中不同任务和模块之间的同步和协调,提高系统的实时性和可靠性。:支持车辆的故障诊断和故障码管理,确保系统能够及时检测和报告故障。:确保系统能够在不同工作模式下正确运行,支持系统的灵活性和适应性。:确保系统中不同模块之间的通信顺畅,支持数据的可靠传输。:确保系统的数据安全和完整性,支持加密通信和数据保护。:提高系统的可靠性和稳定性,防止系统因故障而停止响应。:确保系统中的时间一致性和定时操作的准确性。

2025-03-03 22:22:17 486

原创 ECU抽象-I/O硬件抽象

I/O 硬件抽象(I/O Hardware Abstraction)是 AUTOSAR 架构中 ECU 抽象层(ECU Abstraction Layer)的一部分,其主要目的是将底层硬件相关的 I/O 操作进行抽象化和统一管理,从而为上层应用提供与硬件无关的访问方式。这一模块对底层硬件的电学特性和具体实现进行屏蔽,使得上层应用能够以逻辑信号的形式访问 I/O 设备,而无需关心其具体物理特性。

2025-03-03 21:29:06 634

原创 ECU抽象-通信硬件抽象

这是提供给上层服务层(如PDU路由模块、通信栈模块等)的接口。在这一层,上层服务无需关注具体CAN控制器的物理实现或其功能特性,所有访问均通过标准化接口进行调用。(Drivers for external CAN ASIC):用于支持外部CAN控制器(如通过SPI或其他总线扩展的CAN控制器)(CAN Transceiver Driver):负责控制外部CAN收发器的工作状态(如正常模式、待机模式等)。

2025-03-03 21:06:41 306

原创 ECU抽象-存储器硬件抽象

提供统一的存储访问接口,上层服务通过该接口访问存储器,无需了解存储设备的具体类型或硬件实现方式。

2025-03-03 20:45:04 938

原创 软件开发过程和V流程

SYS.2 系统需求分析:SYS.3 系统架构设计:SYS.4 系统集成和集成测试:SYS.5 系统合格性测试:SWE.1 软件需求分析:SWE.2 软件架构设计:SWE.3 软件详细设计和单元构建:SWE.4 软件单元验证:SWE.5 软件集成和集成测试:SWE.6 软件合格性测试:主要步骤:主要步骤:主要步骤:主要步骤:

2025-03-03 19:22:03 26

原创 ECU抽象-板载设备抽象

如下图,内部看门狗通过MCAL中看门狗驱动,外部看门狗通过MCAL的通信驱动中的SPI,但是ECU抽象把这两个统一为统一接口。这样,服务层在访问这些看门狗时,不需要关心是访问内部看门狗还是外部看门狗,从而减少了复杂性并提高了系统的可维护性。为了提高系统的通用性和简化上层服务的调用,板载设备抽象层提供了统一的接口,这些驱动程序通过微控制器抽象层访问 ECU 车载设备。板载设备抽象层包含了 ECU 车载设备的驱动程序。具体来说,板载设备抽象层将看门狗设备分为。,但无论是内部看门狗还是外部看门狗,

2025-03-03 16:56:06 569

原创 Autosar精华

ECU抽象层负责提供统一的访问接口,使得上层软件模块可以和通信,内存或I/O资源进行交互。将具体硬件细节隐藏在ECU抽象层之后。

2025-03-02 22:54:41 985

原创 MCAL-I/O驱动

PORT 驱动初始化是对微控制器的整个 PORT 模块进行初始化配置。

2025-03-02 22:52:53 802

原创 使用SPI总线与外部传感器通信,使用ECU抽象

首先,MCAL层提供了针对特定微控制器的SPI驱动实现。在这个例子中,SpiDriverAbstraction。,使得应用程序可以更容易地使用SPI功能,函数用于初始化SPI硬件,而。分别用于发送和接收数据。

2025-03-02 22:15:02 124

原创 MCAL-通信驱动

根据数据使用情况定义 SPI 通道,配置缓冲区。

2025-03-02 21:49:46 632

原创 MCAL-存储器驱动

存储器驱动由四部分组成。

2025-03-02 21:05:51 290

原创 MCAL-微控制器驱动

GPT Driver: AUTOSAR中有两类定时器,。该模块使用定时器单元的硬件定时器通道,为操作系统或其他基础软件模块提供计时功能。单次触发(One-Shot Mode):计时器计数到设定值后停止,触发中断。连续模式(Continuous Mode):循环计数,周期性触发中断。通过定时器中断触发Runnable(如100ms任务)。配置占空比和频率,驱动电机或LED。测量外部信号脉宽或频率(如传感器信号)。

2025-03-02 14:09:45 209

原创 实现两个SWC通过RTE通信(如“传感器SWC”发送数据→“控制算法SWC”处理)

创建Runnable:ReadTemperature_Runnable。(发送数据):P_Port_Temperature。(接收数据):R_Port_Temperature。验证控制算法SWC是否在85°C时触发保护逻辑。:接收温度数据,若超过阈值则触发保护逻辑。:周期100ms,读取模拟温度值并发送。中注入温度数据(如70°C、85°C)。:周期100ms,读取温度数据并处理。到100ms周期任务(例如。到同一100ms周期任务,(与传感器SWC一致)。,触发周期100ms。,触发周期100ms。

2025-03-01 23:33:50 569

原创 设计一个“车速计算”SWC,通过Sender-Receiver端口输出车速信号。

功能目标:根据车轮脉冲信号(轮速传感器输入)计算当前车速,并将结果通过Sender端口发送给其他SWC。输入:轮速脉冲数(如,类型)。输出:车速(如,类型,单位)。触发方式:周期性计算(例如每10ms执行一次)。输入接口(Require Port):端口类型:(接收轮速脉冲数)。数据接口:(数据类型)。输出接口(Provide Port):端口类型:(发送车速)。数据接口:(数据类型)。使用工具(如DaVinci Developer或ISOLAR-A):新建一个 Atomic SWC,命名为。添加两个端口:

2025-03-01 23:18:09 879

原创 示例:设计一个“车速计算”SWC,通过Client-Server端口输出车速信号。

在DaVinci Configurator中生成RTE代码,客户端调用代码会自动生成。若轮速脉冲通过硬件输入,需配置MCAL的GPT(通用定时器)模块捕获脉冲。(通过Sender-Receiver接收轮速脉冲,用于内部计算)。检查Client-Server接口的匹配性(操作名称、参数类型)。输入:无(或可包含请求参数,如是否需要滤波后的车速)。(Server Port)映射到RTE服务接口。若需要将车速通过诊断服务(UDS)上报,需配置。:无脉冲输入时调用服务,验证状态码。:根据轮速脉冲信号计算车速,

2025-03-01 23:12:42 501

原创 AUTOSAR

AUTOSAR 的计划项目主要有三项,,包括制定无缝的软件架构堆叠流程并将应用软件整合至ECU中;,作为应用软件整合标准,以便软件构件在不同的汽车平台上复用。

2025-01-27 22:57:27 485

原创 面试(十一)

当有任务需要执行时,从线程池中取出一个空闲的线程来处理任务,任务完成后该线程不会被销毁而是返回到线程池中等待下一次使用。服务端采用单线程,当accept一个请求后,在recv或send调用阻塞时,将无法accept其他请求(必须等上一个请求处recv或send完),无法处理并发。服务端采用多线程,当accept一个请求后,开启线程进行recv,可以完成并发处理,当随着请求数增加需要增加系统线程。1. 共享内存:同一进程内的所有线程共享相同的地址空间,所以一个线程可以直接访问另一个线程的数据。

2024-11-27 22:13:30 843

原创 CAN协议

当外界有强电场或电磁干扰时,由于两根信号线受到的影响基本相同,因此它们之间的电压差(即差分信号)受到的影响较小。广播式地向总线上发送自己的信息,这也是为什么我们能周期性地获得比如五门一盖、座椅占位状态、整车电源模式等报文(在差分传输应用中,双绞线不仅可以降低自身对外界的干扰,同时可以消除与外界干扰源的电容耦合和感应耦合。②在空闲时收紧信号,使得高低两条线的电压一致,即为。):标识符,区分功能,同时决定优先级(根据仲裁规则,):扩展标志位,区分标准格式和扩展格式():保留位,为后续协议升级留下空间,比如。

2024-11-02 13:25:41 634

原创 CAN诊断

诊断请求格式诊断响应格式数据长度限制物理寻址方式功能寻址方式。

2024-11-01 12:02:48 395

原创 CRC校验

模二加法和模二减法的结果是相同的,并且与异或(XOR)运算的结果是一致的。奇数个1相加得1,偶数个1相加得0模二乘除法和普通乘除法一样演算,唯一的区别是,这里重点关注模二除法,因为它与CRC算法密切相关,它有三个性质1. 当最后余数的位数小于除数位数时,除法停止2.当被除数的位数小于除数位数时,则商数为0,被除数就是余数3.只要被除数或部分余数的位数与除数一样多,且最高位为1,不管其他位是什么数,皆可商1。

2024-10-27 21:29:17 518

原创 GNC C编译器语法优化

通过定义局部变量来存储宏参数的值,可以避免参数被多次求值的问题。这在处理有副作用的操作(如自增、自减)时尤为重要。int _y = y;_x > _y?_x : y;_x > _y?_x : y;})_x,__y是一个局部变量,它存储了x,y的值,从而确保x,y只被求值一次。

2024-10-23 22:37:46 468

原创 Git和SVN

Git 的命令实在太多了,日常工作需要掌握 add, commit, status, fetch, push, rebase等,若要熟练掌握,还必须掌握 rebase和 merge的区别, fetch和 pull的区别等,除此之外,还有 cherry-pick, submodule, stash等功能。

2024-10-18 09:42:27 488

原创 面试(十)

对于需要大量局部变量、递归调用或使用复杂数据结构的任务,栈大小可能需要更大,例如 2048 字节或更多。:需要在同意内存区域存储不同类型的数据,但只在某一时刻使用其中之一,联合体可以节省内存。原子操作是指在多线程或并发环境中,某个操作要么完全执行,要么完全不执行,无法被中断。"原子操作"这个术语源于物理学中的"原子"概念,意为不可分割的最小单位,不可拆分。:对于简单的任务,例如处理轻量级的信号或周期性任务,通常可以使用较小的栈,例如。局部变量未初始化时,其值是未定义的,使用之前应确保进行初始化。

2024-10-08 22:50:29 1050 1

原创 项目最后优化(十五)

你可以利用QProcess的信号和槽机制来处理进程完成后的操作,而不是在主线程中等待它完成。

2024-10-07 20:11:25 1184

原创 应用界面编写(十四)

接下来我们会在来进行界面的编写,并且在荔枝派中运行。那么我们有必要了解一下Qt到底是什么呢?QT是一个跨平台的应用程序和用户界面框架,用于开发具有图形界面的软件。而QT的跨平台原理则是基于“”的策略。这意味着开发者可以使用,以生产适应各个平台的应用程序。QT框架通过封装底层操作系统的差异,,从而实现跨平台开发。而QT可以对不同平台的编译器和环境进行区分,例如,QT使用宏定义来区分不同的操作系统和编译器环境,如Linux、MSVC、MINGW等,从而在编译时选择合适的实现。

2024-10-07 16:00:26 750

原创 通过URL与数据库交互(十三)

之前项目是直接连接MySQL,现在先与服务器上脚本交互,再实现与数据库的交互。脚本使用PHP语言编写。.php是PHP文件的扩展名,PHP是一种广泛使用的服务器端脚本语言,主要用于创建动态网页和Web应用程序。下面这段PHP代码定义了一个用于操作MySQL数据库的类Mysqlmethod属性:这个二. python使用PHP提供的接口三. QT使用PHP提供的接口可以通过 类来发起 HTTP 请求。在GET请求中,URL通常包含了请求的资源地址,而实际要传递给服务器的参数则通过URL中

2024-10-06 22:07:21 639

原创 STM32常见配置

PWM模式:设置输出比较模式为PWM模式1.在PWM模式1中,输出将在计数器值小于TIM_Pulse时为高电平,大于时为低电平。I2C_Mode_SMBus:用于SMBus(系统管理总线),更具特色,适合特定应用。I2C_Mode_I2C:标准I2C模式,用于一般应用。I2C_DutyCycle:指定在快速模式下的时钟高低电平的比例。I2C_Init:将配置应用于指定的I2C接口(如I2C1)I2C_ClockSpeed:设置I2C总线的时钟频率;I2C_OwnAddress1:设置从设备的I2C地址。

2024-09-27 00:24:13 877

原创 智能水培机

准备查询语句," FROM qtnew " 指定数据表为qtnew,WHERE ID =?,设置查询条件,'ID'字段的值等于一个占位符,这个占位符号用query.addBindValue(ID_S)替换为一个具体的值:ID_S。");//查询MySQL的qtdata中最新的数据// 准备查找语句");if (!return;else调用checkNew_data函数,读取数据库的数据更新。

2024-09-02 17:02:41 1672

原创 面试(九)

僵尸进程:进程已经完成执行,但其父进程还未读取其退出状态,因此在进程表种仍存在。它的存在是为了让父进程获取子进程的终止状态,之后才会完全清除孤儿进程:父进程已经结束,但它还在运行,操作系统会将孤儿进程的父进程重新指定为'init'进程,以确保它能够被适当管理守护进程:是系统后台运行的进程,它在系统启动时由init进程或类似的系统进程启动,并在系统运行期间保持活跃,直到系统关闭;它们被称为守护进程是因为它们像守护者一样在后台持续工作,确保系统的正常运作和服务的持续提供。

2024-08-31 21:14:12 939

原创 面试(八)

创建一个接口或抽象类,定义服务的标准方法和功能。

2024-08-30 16:53:02 963

原创 荔枝派Dock驱动DSI屏幕(十二)

显示驱动可以划分为三个层面:驱动层,框架层及底层。底层与图形硬件相连接,主要负责将上层配置的功能参数转换成硬件所需要的参数,并配置到相应寄存器中显示框架层对底层进行抽象封装成一个的功能模块。驱动层对外封装功能接口,通过内核向用户空间提供相应的设备结点及统一的接口在驱动层,分为三个驱动,分别是驱动,display驱动,LCD&HDMI驱动。驱动与对接,实现linux标准的接口。display驱动时整个显示驱动中的核心驱动模块,所有的接口都由display驱动来提供,包括lcd的接口。

2024-08-12 00:47:23 1116

原创 四. 设备树

node-name@unit-address //node-name:节点名字 unit-address:表示寄存器基地址或设备地址,如下serial@101f0000label:node-name@unit-address // 引入label目的就是为了方便便访问节点,可以直接通过&label来访问这个。

2024-08-06 18:44:32 437

原创 Licheerv Dock终端测试功能和完成相关配置(十一)

下面表格是我项目中需要用到的硬件和功能,我们接下来会一个一个完成其功能。

2024-08-01 23:23:19 1009

原创 完成QT上位机(八)

这一章节我们将完成QT上位机的设计,如果有同学对QtCreater的使用不太熟悉的,可以参考下面的链接Qt 快速入门系列教程 · Qt 快速入门系列教程 (gitbooks.io)

2024-08-01 23:23:05 1662

原创 Licheerv Dock 实现交叉编译(十)

lunch 会提供方案选项以供选择,其中lunch d1-h_nezha-tina 是 d1-h_nezha-tina的标准方案,lunch d1-h_nezha_min-tina是只能让系统跑起来的最小系统方案。pack:打包,将编译好的固件打包成一个.img格式的固件,固件路径/out/d1-h_nezha-tina/tina_d1-h-nezha_uart0.img。make -j32:编译,其中-j后面的数字参数为编译用的线程数,可根据开发者编译用的PC实际情况选择。文件传输完成后,运行文件。

2024-07-31 17:10:59 1067

原创 Licheerv Dock 基础上手和拉取SDK(九)

全志公司设计的,内核采用CPU,该CPU是基于指令集设计的CPU。

2024-07-31 16:46:45 1135

原创 知名的嵌入式大厂

(Kirin Series): 这是海思为华为智能手机和平板电脑开发的应用处理器。例如,麒麟9000系列曾被广泛用于华为的旗舰手机中。(Balong Modem): 为移动设备提供高速网络连接,包括4G和5G调制解调器。(Ascend Series): 主要用于人工智能计算场景,如数据中心和边缘计算设备。(Kunpeng Processors): 针对服务器市场推出的ARM架构处理器。

2024-07-30 13:26:17 3100

原创 面试(七)

1. 连续分配方式2. 基本分页存储管理方式3. 基本分段存储管理方式4. 段页式存储管理方式。

2024-07-26 00:16:59 465

原创 C语言中常用的排序

对相邻两个元素的值进行两两比较,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就如水底下的气泡一样逐渐向上冒。

2024-07-25 22:53:46 325 2

原创 面试(六)

由于共享资源规则,导致高优先级线程被低优先级线程阻塞。解决办法:1、优先级天花板:将申请某资源的线程的优先级提升到最高;2、优先级继承:将占用资源的进程的优先级提升,与其他申请进程的优先级相同,等释放后再恢复。

2024-07-24 23:43:18 934

空空如也

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

TA关注的人

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