Autosar_VLinkGen

1. 概述
2. 在AUTOSAR架构中的位置
3. 支持的编译器
4. 内存分区
4.1 内存分配细节
4.2 数据段初始化
5. 集成或生成文件
1. 概述


vLinkGen模块 提供一种创建链接器脚本的抽象方法。 以便将二进制代码,常量和变量(链接器符号)放置在目标内存(例如ROM,RAM等)中的预定义位置。

vLinkGen的基本思想是 提供一个独立于编译器的连接器描述方法(分配到硬件具体的内存区域除外)。方便能够以类似的方式将其应用于其他项目。

链接程序脚本的配置可以完全完成,而无需了解编译器特定的链接程序脚本语言。然后,vLinkGen会以适合所选编译器的格式生成链接器脚本。

2. 在AUTOSAR架构中的位置


3. 支持的编译器
Compiler Name    Version Restrictions
ARM    only 5.x.x, 6.x.x or later
Wind River Diab    -
GCC    -
Green Hills    -
HighTec (GCC)    -
IAR    only 7.x.x or later
Linaro (GCC)    -
Renesas    -
Tasking    -
Texas Instruments    -
4. 内存分区


Hardware Memory Areas (vBaseEnvMemLayoutHwRegion)

由vBaseEnv模块提供。它们代表硬件上的实际内存布局,无法更改。
1
Memory Regions (vLinkGenLinkerMemoryRegion)

逻辑抽象层,用于将配置与实际内存布局分开,并使它独立于硬件。
1
Memory Region Blocks (vLinkGenMemoryRegionBlock)

可以将其链接到区域的下边界或上边界。它们用于生成的链接描述文件中的实际内存定义。
1
Section Groups (vLinkGen*SectionGroup)

这些组的大小取决于链接器节的具体内容。
同样,它们的起始地址取决于映射到同一存储区块的先前组的配置位置和大小。
1
2
CONST and VAR Section Groups (vLinkGenLinkerSectionGroup)*
常量和变量段组
Linker Section
最小的实体,包含源代码中分配给它们的不同链接器符号(函数,常量,变量等)的具体内容。
在编译器手册中,它们通常称为“输入节”。
4.1 内存分配细节
如何生成各个输出类型在编译器特定的链接器脚本中


4.2 数据段初始化
根据配置,vLinkGen生成一些结构(初始化表)可以用来

初始化内存区域块与零初始化(ECC)
初始化变量部分组与具体数据(INIT)或0 (ZERO_INIT)。
将代码从ROM复制到RAM,以便在那里执行。
这种初始化通常由vBRS的启动代码执行。


NONE    无需初始化。
INIT    用预定义值(ROM到RAM的副本)初始化section group中的所有变量数据。
ZERO_INIT    用零完全初始化section group中的所有变量数据。
NONE    未配置初始化。
EARLY    复位后总是直接初始化。仅在确实必要时使用。由于PLL那时可能未初始化,因此大区域的初始化可能需要很长时间。
ZERO    始终在默认vBRS启动例程期间首先进行初始化。
ONE    始终在默认vBRS启动例程期间进行第二次初始化。默认情况下,如果需要初始化,则应使用此值。
HARD_RESET_ONLY    在第一阶段之后立即初始化。但是,仅在发生硬件重置时才进行初始化。
TWO、THREE    可选的初始化阶段,将在HARD_RESET_ONLY阶段之后相应地初始化。仅在确实必要时使用。
5. 集成或生成文件
File    Name Description
vLinkGen_Template.< ext >    < ext >是后缀, 是一个链接文件。
vLinkGen_InitSections_Lcfg.c    包含初始化列表的生成文件
vLinkGen_InitSections_Lcfg.h    包括类型定义和初始化列表外部声明的生成文件
vLinkGen_InitSections_Cfg.h    包含预编译时的宏定义的生成文件
 

autosar_sws_timesyncovercan是AUTOSAR标准中定义的基于CAN总线的时间同步服务。 在汽车电子系统中,不同的控制单元(ECU)需要按照统一的时间基准进行操作,以确保各个控制单元之间的协调和同步。autosar_sws_timesyncovercan就是为了满足这个需求而被定义的。 autosar_sws_timesyncovercan使用了CAN总线作为通信的介质,通过CAN总线将时间同步消息发送到各个控制单元。通过时间同步消息,各个控制单元可以获取精确的时间信息,并根据这个时间信息进行各种操作,例如数据传输、事件触发等。 autosar_sws_timesyncovercan实现了基于Master-Slave架构的时间同步机制。其中,Master节点负责发送时间同步消息,而Slave节点则负责接收并进行时间同步。Master-Slave架构确保了整个系统中所有控制单元之间的时间保持一致。 autosar_sws_timesyncovercan定义了不同的时间同步模式,包括周期同步模式和非周期同步模式。周期同步模式适用于需要周期性执行任务的应用场景,而非周期同步模式适用于一次性任务的应用场景。 autosar_sws_timesyncovercan还规定了时间同步消息的格式和传输方式,确保消息的可靠性和准确性。同时,还定义了时间同步相关的接口和API,方便控制单元的开发和集成。 总之,autosar_sws_timesyncovercan是一种以CAN总线为基础的时间同步服务,通过统一的时间基准来协调和同步汽车电子系统中的各个控制单元,实现系统的高效运行和协作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值