- 博客(18)
- 资源 (3)
- 收藏
- 关注
原创 一文搞懂Secure Boot (安全启动)
如果SBL被黑客替换,黑客可以在自己的SBL中不去校验FBL,从而替换掉FBL,在非法的FBL中不对APP进行校验,从而替换掉APP,由此可见信任根(上面例子中的SBL)在安全启动过程中的重要性。TDA4的软件系统包含的软件组件不止上面提到的SBL、FBL及APP,还有主域A72运行的软件(Linux或QNX),主域R5F核运行的软件,以及DSP核(C66, C71等),这些软件镜像的校验过程和上面描述的是一样的。如果对文中的任何内容有任何建议请不吝赐教,如果想看到更多相关的感兴趣的内容,也欢迎私信联系。
2024-01-28 15:52:59
10100
原创 一文搞懂自动驾驶芯片TDA4 启动流程
TDA4是德州仪器推出的一款高性能、超异构的多核SoC,拥有ARM Cortex-R5F、ARM Cortex-A72、C66以及C71内核,可以部署AUTOSAR CP系统、HLOS(Linux或QNX)、图像处理以及深度学习等功能模块,从而满足ADAS对实时性、高运算能力、环境感知及深度学习等方面的需求。TDA4凭借着出色的运算能力、有竞争性的价格,赢得了越来越多汽车主机厂以及零部件供应商的青睐。对于ADAS行业的从业人员或者对ADAS领域感兴趣的人都有必要来了解一下TDA4这颗芯片。
2023-07-30 16:50:45
7001
1
原创 浅谈汽车网络安全(Cyber Security)-MCU
为何要引入汽车网络安全随着汽车新四化的发展,尤其是网联化及自动驾驶的推进,汽车网络信息安全显得越来越重要。一方面,汽车在使用过程中会产生大量用户数据,比如你什么时间去了什么地方,以及日常车辆行驶路线规律等信息,这些数据都是用户的隐私。假如你每个月的某一天都会驾车去一个固定的酒店(此处省略一万字),而你的车辆行驶信息被人窃取会带来什么样的后果。另一方面,随着高级驾驶辅助(ADAS)及自动驾驶的推出,车辆动力及制动控制需要部分或全部授权给智能驾驶系统,而车辆又暴露在互联网当中,此时如果智能驾驶系统被黑客攻
2021-03-11 15:30:39
13704
3
原创 AUTOSAR资料下载
AUTOSAR的地位越来越高,现在很多MCU软件开发工作岗位都要求熟悉AUTOSAR。今天给大家分享一些AUTOSAR的学习资料,对AUTOSAR感兴趣的同学不要错过。资料包含AUTOSAR架构基础和上层应用视频讲解,Vector培训资料以及AUTOSAR好文分享等。AUTOSAR架构基础及应用案例视频讲解:使用Mathworks工具进行AUTOSAR应用开发视频讲解:Vector对于AUTOSAR的培训文档:获取方式,微信搜索并关注公众号"汽车软件后花园",回复AUTOSAR或者点击 资
2020-12-10 12:21:02
1208
3
原创 AUTOSAR BSW介绍
BSW架构上一篇文章提到了基础软件层BSW包含微处理器抽象层(MCAL)、ECU抽象层、服务层以及复杂驱动,而每一层按照功能模块可以进一步划分,如下图所示。微处理器抽象层MCAL我们先来看一下微处理器抽象层(MCAL),MCAL是BSW的最低层,它包含一些MCU内部驱动软件模块,这些驱动直接访问MCU内部外设(ADC、WatchDog、General Purpose Timer等)。MCAL这一层依赖于MCU,但是它的上面一层(ECU抽象层)则可以独立于具体的MCU。MCAL主要包含下面这些模块:
2020-12-09 21:42:44
4170
2
原创 AUTOSAR软件架构简介
AUTOSAR是什么AUTOSAR的全称是AUTomotive Open System Architecture,直译为汽车开放系统架构,是由全球汽车制造商、零部件供应商及其他电子、半导体和软件系统公司联合建立,致力于为汽车工业开发一个开放的、标准化的软件架构。简单来说,AUTOSAR是一种开放的软件架构,需要汽车制造商、零部件供应商、芯片供应商及软件公司共同合作来实现该软件架构。AUTOSAR目前分为两种:Classic Platform AUTOSAR和Adaptive Platform AUTOS
2020-12-02 21:25:03
18694
原创 从事汽车电子软件开发需要什么技能?
前不久有一个朋友想转去做汽车软件开发,问我需要学习什么内容。今天在这里做一个分享,希望可以帮到这位朋友以及以后想要从事汽车电子软件开发的朋友们。随着SDV(软件定义汽车)概念的提出, 大家都认识到了软件在汽车电子领域的重要性,各大汽车主机厂纷纷成立了软件研发中心并争夺软件开发人才。上汽集团在今年年初成立了上汽软件中心(后改名为零束),长城汽车成立了诺博、诺创、诺博,还有很多OEM也成立或者扩大了各自的软件研发中心,这里都不赘述了。总之,这对从事汽车软件开发的同僚们是很大的利好。2019年大家经历了汽车
2020-11-24 14:58:42
7567
4
原创 Linux or QNX ?
Linux大家可能都比较熟悉了,我们先来看一下QNX的简介。QNX简介关于QNX名字的由来有一则趣事:Gordon Bell和Dan Dodge在1980年成立了Quantum Software Systems公司,他们根据大学时代的一些设想写出了一个能在IBM PC上运行的名叫QUNIX(Quick UNIX)的系统,直到AT&T发律师函过来才把名字改成QNX。从QNX的最初命名可以看出,QNX是一种类UNIX的操作系统,其遵守POSIX规范,也就是说在Linux(也遵守POSIX规范)上
2020-11-17 14:55:54
2762
1
原创 Linux进程间通信之FIFO
管道(Pipe)是UNIX系统进程间通信的一种古老形式,所有类UNIX系统(Linux,Qnx等)都支持这种IPC机制。管道分为无名管道和命名管道(FIFO),它们都是半双工的通信方式,一个进程对管道进行写操作,另外一个进程对管道进行读操作。上次分享了无名管道的创建及使用,本文介绍一下FIFO的使用。上次提到了无名管道只能用于具有亲缘关系的进程间的通信,比如父子进程之间或者父进程的两个子进程之间的通信,原因是无名管道创建的文件描述符并不指向文件系统,而是由内核缓冲区来实现,因此对没有亲缘关系的进程不可见
2020-10-25 22:24:10
349
原创 浅谈域控制器
最近几年,汽车电子领域有一个概念异常火爆,那就是域控制器。今天就从三个方面来介绍一下域控制器,分别是:什么是域控制器,为什么要引入域控制器,座舱域控制器简介。什么是域控制器呢?简单来说就是把功能相近的多个传统ECU,集中到一个算力和资源都很强大的控制器里,这个控制器被称为域控制器,所以这里的域指的是功能域。该控制器需要包含多个传统ECU的功能,每个传统ECU对应域控制器里的一个或多个应用程序,而控制执行器的底层驱动由域控制器统一管理。常见的域控制器有:动力总成域控制器,车身域控制器,底盘域控制器,辅助驾
2020-09-18 08:32:28
12459
原创 Linux进程间通信之Pipe
管道(Pipe)是UNIX系统进程间通信的一种古老形式,所有类UNIX系统(Linux,Qnx等)都支持这种IPC机制。管道分为无名管道和命名管道(FIFO),它们都是半双工的通信方式,一个进程对管道进行写操作,另外一个进程对管道进行读操作。无名管道只能用于具有亲缘关系的进程间的通信,比如父子进程之间或者父进程的两个子进程之间的通信,原因是无名管道创建的文件描述符并不指向文件系统,而是由内核缓冲区来实现,因此对没有亲缘关系的进程不可见。而命名管道(FIFO)则没有这种限制,我们下次再来介绍命名管道(FIF
2020-09-12 21:14:32
334
原创 熵增与热力学第二定律
热力学第二定律有多种表述,比较常见的有克劳修斯表述和开尔文表述。中学物理课本采用的是克劳修斯表述:不可能把热量从低温物体传向高温物体而不引起其它变化。如果要实现把热量从低温物体转移到高温物体,就需要给系统输入能量。比较典型的例子就是空调和冰箱,空调可以源源不断地把室内热量转移到室外,尽管室内的温度低于室外,在这个过程中给系统输入的能量就是电能。需要提到的是输入的电能并没有全部用来把室内的热量转移到室外,压缩机在工作的过程中由于机械摩擦会产生热量。所以电能转换成了两部分,一部分用来把室内的热量转移到室外,另
2020-09-06 23:35:04
4790
原创 I2C死锁原因及恢复方法
如无特殊说明,下文中主设备和MCU概念可以互换。I2C是一种比较常用的串行通信协议,常见于MCU和一些外设的通信中,比如MCU和外部EEPROM、传感器、LED驱动IC等的通信都会用到I2C通信。因此作为一名MCU软件工程师,需要掌握I2C的驱动配置以及应用软件的编写。在实际使用过程中,I2C比较容易出现的一个问题就是死锁,今天就来介绍一下I2C死锁产生的原因以及如何解决死锁问题。在介绍I2C死锁产生的原因之前,先简单介绍一下I2C的通信协议。I2C由串行数据线SDA和串行时钟线SCL组成,SDA和S
2020-09-04 21:59:54
6501
原创 Linux 守护进程(Daemon process)
守护进程(Daemon)是一类在后台长期运行的特殊进程,一般在系统引导时开始启动,一直运行到系统关闭。守护进程一般用于提供某种服务,比如log打印守护进程syslogd,任务规划守护进程crond,实现Dbus总线功能的dbus守护进程等。下面介绍一下如何创建一个守护进程,创建守护进程一般分为五个步骤:创建子进程并终止父进程、在子进程中创建新的会话、改变工作目录、重设文件创建掩码、关闭不需要的文件描述符。1.创建子进程并终止父进程这一步实现了两点。第一,如果该守护进程是作为一条shell命令启动的,父进
2020-09-01 09:05:06
837
原创 Dbus通信及使用方法介绍
D-Bus是一种高级的进程间通信机制,它由freedesktop.org项目提供,使用GPL许可证发行。D-Bus的主要概念为总线,注册后的进程可通过总线接收或传递消息,进程也可注册后等待内核事件响应,例如等待网络状态的转变或者计算机发出关机指令。DBus的三层架构:底层接口层:主要是通过libdbus这个函数库,使进程拥有使用DBus的能力。总线层:主要是由Dbus 总线守护进程(daemon)提供的,在Linux/Qnx系统启动时运行,负责进程间的消息路由和传递,其中包括内核和桌面环境的消息传递。
2020-08-23 08:22:45
6204
原创 Qnx任务调度
我们知道线程是操作系统进行任务调度的基本单位,那是谁来决定执行哪一个线程呢?答案是操作系统内核,内核决定一个特定时刻哪个线程占有CPU。CPU有一组寄存器,当一个线程运行时,线程相关的信息会被存储到这些寄存器中(比如程序执行的位置,一些中间变量等)。当内核决定执行另一个线程时,它需要做以下事情:1.保存当前运行线程的寄存器数据及其他上下文信息2.加载将要执行进程的寄存器数据和上下文到CPU中但是内核是如何判断该执行另一个线程了呢?它会查看在当前时间点是否有某个线程处于就绪状态。还记得对互斥锁的访问是
2020-08-15 22:42:22
748
原创 Hypervisor介绍(二)
Hypervisor如何工作在Hypervisor内部,和OS类似的一系列事件将会发生,只不过是在更高一级的层面上。此时我们讨论的不是OS和多线程,而是VMM和多个OS。VMM调度OS的运行,然后让出CPU的使用权。类似线程和OS的模型,一个OS不会永远下去,下面一些时间将会发生。– OS遇到了某些问题– 某个HW事件发生就像OS为了定义线程的HW资源沙箱会给每个线程分配特定的内存区域一样,VMM也会给每个OS分配特定的内存区域,我们暂且把这些资源分配成为资源沙箱。当一个OS访问了它的沙箱之外的资源
2020-07-26 23:02:55
1111
Getting_Started_with_QNX_Neutrino.pdf
2020-08-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人