自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SSH/SourceTree/Git/Scons quick setup

​。

2024-12-05 04:03:49 490

原创 Gas Furnace troubleshooting

Error code 57 ,基本上就是因为这个Pressure Switch的输出出了问题,导致控制芯片软件报错,表现形式为点火30秒后就会强制熄火,因为控制芯片认为燃烧的废气没有被充分排出到室外,于是熄火保护。Condensate Pumps 是个盒子,4个角是入水口,透明的管子是出水口,用处是把盒子里的水通过这个透明管子排出去(因为取暖的Furnace 在地下室,需要这个pump把水泵到一楼的下水道)当检测到蓝色的小电机的pump风压的时候输出为短接(0欧姆),当风压不够的时候输出为 断开(悬空)

2024-12-02 12:09:55 281

原创 AUTOSAR RTE 回顾

注意: 以上只是创建了一个一个的SWC 个体,SWC 与 SWC 之间的互动将在composition里面实现(需要先新建SWC prototype,因为这里只是性质定义,所以需要在composition里面创建SWC实体) [上面这些所有的,都可以在migration的时候复用]至此,SWC的 函数名,函数周期,函数内部的变量获取/函数调用 全部完成, 唯一剩下的就是 由哪个 OS task 去调用该函数(实际上并不影响执行)至此,我们有了 函数原型体,函数所需的变量,以及函数的触发条件。

2024-11-08 03:53:28 1012

原创 5分钟精通Windows环境变量

科普内容 what why how(WWH)三步走Windows环境变量,本质上是告诉了Windows操作系统一堆文件夹路径,如下图发明Windows环境变量是为了方便程序员在cmd中 调用或者包含调用 .exe程序的的时候可以偷懒例如: 如果没有Windows环境变量,想调用 python.exe 就必须声明所在的具体位置当配置了环境变量之后,不需要声明文件路径,即可在cmd中直接执行下面命令来达到同样的效果。

2024-10-17 05:42:36 357

原创 Automotive Ethernet_草稿

example。

2024-10-02 13:14:53 1045

原创 面试跟manager聊点不一样的

2是要 理解客户的真正需求,我们都遇到过他有的时候要求我们做一个功能,但是过一阵可能需求又变了。技巧就是,1是要抓住timeline的关键点,有的时候他们会说些模糊不清的话(I will check and get back to you),记得及时follow up。内部印度team、供应商team的协调,跟客户的协调。他们的输入分别是什么。

2024-01-11 03:05:55 726

原创 重新认识AUTOSAR Interface

1 当DCM模块里面配置了相应的0x11 EcuReset service之后,就会在DCM_BSWMD.arxml文件内自动生成对应mode group数据类型,并且在DCM_Cfg_SWCD.arxml生成相应的mode switch interface,以及实例化的ModeGroupPrototype_DcmEcuReset,以及相应的Pport。3 SWC是最终的接收端,于是SWC需要自己定义所需的mode group,然后定义相应的mode switch interface。

2023-10-06 09:10:18 604

原创 AUTOSAR COM模块框架梳理

SWC调用这两个函数去把signal的信息更新到IPDU里面,根据PDU的ComTxModeMode 和 signal/signal group 的ComTransferPropety 属性 共同确定PDU什么时候被发送出去。BswM的action 里面可以去触发 Ipdu group 的 发送,感觉是跟PN有关 【在某些特定的情况下,让BswM去关闭特定的Ipdu group 的 发送 和接收】把IPDU内的signal提取出来提供给SWC使用,把SWC发送的signal拷贝到IPDU buffer内。

2023-10-06 09:09:44 1655

原创 AUTOSAR 面试知识回顾

如果答不上来,就讲当时做了什么。

2023-09-24 05:00:33 4297

原创 SWC 流程

【不依赖与Implementation data type,所以不用担心】 所以拿着 SWC的arxml 和定义 Interface的arxml这两个文件,就可以在任意的project里面复用了。然后在composition的assembly connector里面将两个port下面的dataelement连接起来,生成RTE的时候rte.c里面就会生成这些个Rte_IRead, Rte_Write函数实体,从而实现数据传输【RTE只会生成rte.c,不会生成/更新 上面的component.c 文件】

2023-09-19 12:02:55 1625

原创 c语言基础知识+OS+数据结构

.bss.data.textpre-compiler: compiler: 检查语法问题link: 将symbol转化为实际函数/变量地址,map file里面可以看到预编译在做什么: (#define)Macro写一个函数: Macro本质就是pre-processor将内容进行文本替换typedef 和 macro哪个好const的含义volatile的含义const 和 volatile公用对固定地址赋值extern: change visible scopestatic 修饰全局变量: visib

2023-09-18 12:17:51 398

原创 手写C语言知识梳理: 栈,队列,链表

【代码】手写C语言知识梳理: 栈,队列,链表。

2023-09-17 23:26:45 198

原创 C语言pointer 和 structure 常用项目级别知识

structure 本质是一系列variable的合集,因此在有 a set of related variable definition 的时候,就应该使用structure。structure 作为函数输入时应该传递其指针而不是本身,原因有两点。

2023-03-16 01:53:47 359

原创 AUTOSAR RTE 总结

5. 之所以搞ADT出来,是为了Interface的复用,因为IDT是和AUTOSAR Platform Type绑定的,而AUTOSAR Platform Type与硬件有关(Int是16还是32-bit), 而在创建Interface的时候如果直接用IDT换了硬件就没法复用了,所以选用ADT和Data Element绑定,然后再在SWC的Internal Behavior里面用DataTypeMapping将ADT和IDT对应起来。经过这三步,至此在RTE layer以上的所有配置都完成了。

2023-01-17 00:20:24 1382

原创 AUTOSAR RTE 目录

3] AUTOSAR project基于CAN DBC文件,而其所包含的CAN网络往往是由多个ECU组成的。通过System Extract + ECU Extract,最终实现的是针对CAN网络下某一个ECU内部的APPL + Interface + ComSignal代码生成。[2] SWC只定义Port一级,只定义方向: Sender还是Receiver Port,然后将interface分配给新建的Port。AUTOSAR RTE的核心思想是基于SWC的。

2023-01-12 11:19:39 455

原创 ECU Extract + OS Task Mapping 步骤

纲要:通过已经把SWC的所有Data Element都连接上了,接下来就是把SWC的Runnable给Mapping到对应的OS Task上,让它运行起来。

2023-01-12 11:15:09 1752

原创 System Extract 步骤

纲要:把Composition下的SWC分配到System Description 描述的CAN网络的的ECU上。

2023-01-12 11:14:47 1408

原创 System Description 步骤

2] 从ISOLAR project的 "Ecus,Networks,Frames,Pdus,Signals" folder structure看去,这就是接下来这个project的Composition需要交互的所有的ECU外部通讯的信息(inter-ECU)[4] Frame 和 PDU 的区别在于:Frame里面多了一个“大端/小端” 的信息,而且Frame里面会写这个Frame是CAN还是LIN,PDU里面就不会有这个信息 (去“在AUTOSAR stack里面怎么体现,COM还是MCAL里面?

2023-01-12 11:14:34 1090

原创 Composition步骤

纲要:SWC属于AUTOSAR的Component文件夹下,而Composition属于Composition文件夹下。

2023-01-12 11:14:10 709

原创 SWC步骤

纲要:SWC属于AUTOSAR的Component文件夹下,而Composition属于Composition文件夹下。

2023-01-12 11:12:57 1080

原创 C 编译过程简介

C build = preprocessing + compile + link (from .c/.h file to executable file)Compiling and Linking - Cprogramming.compreprocessing: process the #include and #define Macro etccompilation: Compilers convert the source code(.c and .h file) in...

2022-03-03 14:02:18 211

原创 AUTOSAR_Com

这是一系列文章的一部分,讲一讲 AUTOSAR CAN流程 和 OSI 7层架构之间的关系1. Com 上接 RTE, 下接 PDU。所以它负责把下面传过来的message【PDU】拆成signal,顺便把message【PDU】分个组所以在Com里面主要是对各个signal的属性进行配置,对message没什么操作Com/Comsignal :...

2021-07-30 05:31:02 523

原创 面试前C代码热手列表

写一段代码,确定系统是big endian 还是 little endian写一个struct,初始化,并做为函数输入【分别传原值 / 传指针】写一个array,初始化,并做为函数输入【分别传原值 / 传指针】位操作符LeetCode里面那些数组排序基础题interrupt函数的注意事项【不传参,没有返回值,不能调用可重如函数,避免浮点数运算】从汇编语言的角度看看函数调用,局部变量出入栈的过程 https://godbolt....

2021-03-25 01:45:38 601

原创 AUTOSAR 面试topics小结

OS:OS has 4 levels in AUTOSAR, timing protection(任务执行时间监测)and memory protection(防护未授权软件访问相关内存)ALARM: comes from the hardware timer, could be used to set an event or trigger a callback functionBasic Task: suspend, ready, runExtended Task: H...

2021-03-20 05:51:25 2296

原创 单片机startup code介绍

在进入main函数之前,单片机会先执行startup code来配置c语言所需要的运行环境。 【单片机上电启动流程详见单片机启动流程和存储架构详解和 浅析多核ECU运行流程】startup.c一般由编译器自带(在IDE里面新建project,选择芯片型号后,编译器就会自动将相应的startup.c文件添加到工程里)或者MCU厂商提供startup函数的主要作用Copy the .data and .bss from ROM to RAM 【setup好全局变量和static变量】...

2021-03-18 03:59:11 1140

原创 C语言面试5:const volatile, static, extern, register, typedef, #define, enum, big/little endia

Const, #define:#define PI 3.14 : the preprocessor replaces those macros before the compiler even sees it. const means it will be saved in read-only flash. C code cannot change it ( cannot change even use pointer because it's in read-only memory)...

2021-01-28 12:07:17 250

原创 AUTOSAR 面试问题7:AUTOSAR OS的basic task,extend task。 ISR category 1, ISR category 2

https://blog.youkuaiyun.com/xiaowestwind/article/details/107783054OSEK OS:OESK OS是一个事件触发操作系统,通过定时器溢出、错误发生等这些事件触发OS TASK的调度运行。AUTOSAR OS的核心功能还是源自OSEK OS ,OSEK OS的很多特点在AUTOSAR OS中还是适应的。AUTOSAR OS:静态操作系统:举个例子,OS中的task是实现在Davinci CFG工具中配置好的,实现运行中不会像...

2021-01-27 13:12:01 4861

原创 C语言面试3: structure & union, bit field, data aligment

Struct:/*************************************/typedef struct{float price;int ProductId;char name[24];} Laptop;LaptopLaptop1, *Laptop2;/*************************************/Struct memberLaptop1. ProductIdpointer to a ...

2021-01-22 15:06:50 346

原创 嵌入式系统面试2:面试问题实例汇总

Aptiv:difference between process thread and task in rtosMutex vs Semaphore Const volatile in embedded c what is memory leakage, how to avoid it? :how does SP works? what is status register in micro what happens in sta...

2021-01-16 11:40:36 470

原创 嵌入式系统面试1:interrupt

Hardware/Software interrupt edge triggering/ level triggeringHardware: triggered by peripheral devices outside the microcontroller,asynchronous and can occur in the middle of instruction execution, 我们谈论的基本都是硬件中断Software: executing a speci...

2021-01-16 10:10:54 414

原创 嵌入式面试大纲:C语言+嵌入式系统+AUTOSAR

C Programming https://www.tutorialspoint.com/cprogramming/index.htmpointer: dangling, voild, Null, wild pointerhttps://aticleworld.com/dangling-void-null-wild-pointers/ array // p[i] 的本质是 *(p+i) structure & union, bit field, data alig...

2021-01-16 04:50:10 1381

原创 C语言面试1:pointer

知识点:pointer arithmeticchar *p; p+1 地址加1,因为char 是1个byteint *p; p+1地址加4,因为p是4个bytearray of pointerint p; integerint p[2]; arrayint *p[2]; array of pointer p[i] = &a[i]; 指针数组里面每个元素都是存的地址pass pointer to f...

2021-01-15 12:41:56 216

原创 嵌入式_面试题

const volatile difference between union and structure Can structures be passed to the functions by value? Why cannot arrays be passed by values to functions? Advantages and disadvantages of using macro and inline functions What happens when recursion.

2021-01-14 10:22:31 284

原创 TC3XX 多核ECU的中断向量表解疑

关于多核ECU的中断向量表,热心网友问了一个很好的问题今天研究了一下,先说结论: 每个core都有自己单独的memory去存储自己的中断向量表,而且每个core的中断优先级是相互独立的。也就是说,每个core都可以有自己的priority为20的中断接下来是论证过程:【赶时间的同学可以直接拉到最后看杰伦】1. 以Tasking编译器为例,安装目录下自带了关于 中断向量表的 linker 文件 【TC3XX 系列最多有6个core,所以为每个core都预留了一个linker文件】...

2020-11-26 05:20:58 6529 5

原创 开篇: AUTOSAR面试话题大纲

AUTOSAR的module很多,但作为middle ware,最重要的功能其实就是两个:一个是在AUTOSAR OS里面通过RTE去调用应用层的函数。 另一个从APPL到MCAL的数据传输。围绕着上述核心思想。只要能说清楚OS是如何通过RTE去调用SWC的进程,外加数据是如何从CAN一路通过CANIF,PDUR,COM,RTE最终传输到APPL,面试的目的就达到了。至于网络管理,UDS诊断,都是一些核心以外的扩展功能,不影响AUTOSAR这个框架的理解。接下来这个系列,会尝试...

2020-11-18 12:22:50 2519 2

原创 AUTOSAR面试话题3_startup code + 编译过程

1. linker 文件里面专门有个地方定义start address的symbol和run address。因此,linker文件会自动将startup.c 文件里面的_START函数存放在0x80020020地址。 而在寄存器的配置过程中,我们会将ECU的reset vector [BMHD] 指向 0x80020020。 因此,当ECU重启后,就会自动跳转到startup函数,接着顺利跳转到各个main函数linker file:https://blog.youkuaiyun.com/q...

2020-11-18 05:23:36 1423

原创 AUTOSAR面试话题2_多核ECU_Memory Allocation

1. MCU都是哈佛架构,CPU从flash里面取指令,从ram里面取variable以3核的TC377为例,每个核都有自己的RAM,FLASH,有自己的main函数。但是编译的时候,默认并不会自动放在对应core的DRAM,PFLASH里面【通过map文件可以看见】 因此,我们的目的是将在不同core上运行的code,variable分别放到对应core的RAM和flash里面。从而达到优化的目的2. 编译完的code分为.bss .data .text .rodata 这几种s...

2020-11-18 04:33:17 1820

原创 AUTOSAR面试话题1_UDS与OSI七层网络模型

1. UDS 与 OSI 七层网络模型UDS是在汽车行业中的一个标准化诊断协议,ISO14229里面定义了它的各个诊断子服务。UDS一般基于CAN通讯,通过某一指定的CAN ID来发送诊断服务命令给ECU,来实现功能。通常: 完整的UDS通讯报文由 CANID + N_PCI + SID + DATA 这几个要素组成,详见下图:其中:N_PCI由CANTp或者J1939Tp模块实现,它的作用是把应用层需要发的message拆分成多个8 Bytes的message,以兼容CAN的数据长度.

2020-11-18 02:28:58 3622

原创 32bit MCU 与 16bit MCU 的 区别

以 32-bit 英飞凌 TC377 为例右下图可见,虽然是32-bit MCU,但是每个地址对应的是一个byte【8-bit】左上图是通过 Trace32 查看单片机memory, 可见,32个bit 为一组。结论:不管是16-bit 还是 32-bit 的MCU,地址对应的最小单元都是1个byte,它们的区别在于一次访问的最大内存是 32bit 还是 16bit[数据总线是32-bit,寄存器的大小也是32-bit]...

2020-10-13 05:00:21 2492

原创 指针作为函数输入的优点

1. 全局变量作为函数输入只能使用该值,不能将值传回该全局变量2.全局变量的指针作为输入即能使用该值,又能将值传回该全局变量【在该全局变量是结构体,即想用一些元素的值,又想对另一些元素的值更新的时候尤其有用】结构体school1.room的赋值必须在main函数里面...

2020-05-30 07:53:22 516

空空如也

空空如也

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

TA关注的人

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