Davinci工程vBaseEnv模块讲解

配合的模块

要正常使用vBaseEnv模块,要同时使能EcuC、OS、vBRS和vLinkGen模块。

OS是操作系统,除了FBL以外,其他都需要用到OS。
vBaseEnv是基础环境
vBRS是基本运行系统
vLinkGen脚本链接生成器
EcuC是ECU配置

EcuC配置

需要配合vBaseEnv模块的只是EcuC里面的EcucGeneral。

Alignment of arrays数组对齐方式,可以选择1/2/3/4字节对齐,auto的话数组的对齐方式就会跟数组元素的对齐方式一样。

Atomic Bit Access In Bitfield如果选择了,编译器就会优化对位域中的单比特读写访问。我们一般不勾选。

Atomic Variable Access原子变量访问方式,可以选择1/2/3/4字节,一般默认4字节就行。

Bit Field Data Type位域数据类型,默认int就行。

Bit Order位序,默认LSB_to_MSB,没得改。

Ecuc Bsw Implementation Code Type实现代码类型,指的是BSW与SWC接口的实现类型是源代码还是库文件,我们这里默认选择源代码就行。

Byte Order字节序默认小端,没得改。

CPU Type寄存器宽度,默认32位就行,没得改。

Conditional Generating条件生成,就是只重新生成需要更改的文件,不用更改的就不生成,默认勾选就行。

Dummy function虚函数,调用指针函数的时候会检查是不是NULL,一般用不到就不勾。

Dummy statement虚拟语句,让编译器不对一些不必要的地方报警,默认勾选。

Dummy Statement Kind虚拟语句处理方式,默认self assignment自分配就行。

EcuC Safe Bsw Checks使用安全检查,默认不勾选。

Size Of Enum枚举大小,默认32位。

Size Of Int类型int大小,默认32位。

Size Of RAM Pointer RAM指针大小,默认32位。

Size Of ROM Pointer ROM指针大小,默认32位。

Alignment of struct结构体对齐方式,默认Auto就行。

Struct In Array Alignment结构体在数组当中的对齐方式,默认Auto就行

EcuC Use Std Return Type For Rte标准返回类型Std_ReturnType用于RTE,默认不勾选。

OS配置

主要是中断处理和定时器处理,需要配合vBaseEnv模块的只是OS里面的OsOS,为OSEK应用程序定义OSEK OS属性的对象

Number Of Cores操作系统可以控制的最大核数,取决于硬件,一般不写。

Scalability Class可扩展类,一般不写。

Os Stack Monitoring操作系统堆栈监控,一般不使用。

Os Status操作系统是标准状态还是扩展状态,默认扩展。

Os Use Get Service Id获取服务ID,一般不使用。

Os Use Parameter Access访问参数,一般不使用。

Os Use Res Scheduler使用寄存器注册表资源,一般不使用。

下一级的OsHooks钩子一般都不使用。

vBaseEnv配置

vBaseEnvGeneral

要选芯片

在这里面选择你使用的芯片

vBaseEnvDerivativeInformations

上面选择完你使用的芯片,这里针对你选择的芯片进行环境配置,都是自带的,一般不同改。

vBaseEnvAvailableChannels_Can可用的CAN通道数量。

vBaseEnvAvailableChannels_Ethernet可用的以太网通道数量。

vBaseEnvAvailableChannels_Flexray可用的Flexray通道数量。

vBaseEnvAvailableChannels_Hyperbus可用的Hyper总线数量。

vBaseEnvAvailableChannels_I2c可用的IIC总线数量。

vBaseEnvAvailableChannels_Lin可用的LIN总线数量。

vBaseEnvCpuCore芯片的核,会关联到vBrsCfg.h 文件里面的BRS_CPU_CORE_x宏定义。

vBaseEnvCpuCoreAmount芯片内核数量,会关联到vBrsCfg.h文件里面的BRS_CPU_CORE_AMOUNT宏定义。

cpu init core芯片内核的ID,用于一般初始化。会关联到vBrsCfg.h文件里面的BRS_CPU_INIT_CORE宏定义。

vBaseEnvCpuMaxFrequency芯片最大频率。

vBaseEnvTestedDerivative用的是什么芯片,会关联到vBrsCfg.h文件里面的BRS_DERIVATIVE_x宏定义。

Used Manual这东西没什么用。

vBaseEnvMemLayoutHwRegions

这里只是个硬件内存列表,没有划分内存,只是告诉你使用的芯片内存分为什么区域而已。

vBaseEnvInterruptHandling

配置通信通道的中断处理,就是上面vBaseEnvDerivativeInformations那里有几种通道,这里会有所体现。

譬如我这个芯片有三个CAN通道0/1/2,每个通道再细分四个通道:邮箱0-15,邮箱16-31,BusOff和ErrDet。每个通道有自己的名字、索引号、优先级和通道源数。

vBRS配置

需要配合vBaseEnv模块的只是vBRS里面的vBRSGeneral和vBRSHwConfig

vBRSGeneral

vBRS Disable Setup Support失能BRS引导默认的MSR堆栈配置,默认不勾选。

vBRS Enable HSM Support对HSM核心用例的支持,会关联到vBrsCfg.h文件里面的BRS_ENABLE_HSM_SUPPORT宏定义。

vBRS Enable Multi Core Support多核操作系统支持,芯片没有多核的话就不用勾选,会关联到vBrsCfg.h文件里面的BRS_ENABLE_OS_MULTICORESUPPORT宏定义。

vBRS Enable Safe Context Support对SafeContext操作系统的支持,会关联到vBrsCfg.h文件里面的BRS_ENABLE_SAFECTXSUPPORT宏定义。

vBRS Fbl Support支持FBL,会关联到vBrsCfg.h文件里面的BRS_ENABLE_FBL_SUPPORT宏定义。Disabled就没有这个宏定义,选择FBL_without_EcuMInit就为BRS_FBL_WITH_ECUMINIT,选择FBL_with_EcuMInit就为BRS_FBL_NO_ECUMINIT。

vBRS Enable EcuM Stub Generation生成EcuM.c和EcuM.h文件,一般不勾选。

vBRS Enable Schm Stub Generation生成SchM相关的文件,默认勾选。

vBRS Enable Schm Stub Support DrvCan AN防止SchM生成CAN Driver/CAN Interface/CANSM/COMM模块的专属区域,默认勾选。

vBRS Enable Support Toggle Custom Pin如果你使用的是评估板,勾选上的话这个定制LED灯就会闪烁,会关联到vBrsCfg.h文件里面的BRS_ENABLE_SUPPORT_TOGGLE_CUSTOM_PIN宏定义。

初始化的时候会在BrsMainInit函数里面执行到下面这条语句,在BrsMainRegisterCyclic里面注册了个BrsMainWrapperTogglePinCustom接口,每1000ms调用一次。

BrsMainRegisterCyclic(BrsMainWrapperTogglePinCustom, BRSMAIN_CYCLETIME_1000MS);

BrsMainWrapperTogglePinCustom接口里面只是执行了一句话,通过翻转引脚来产生闪烁的效果,本质上是调用BrsHwPort_SetLevel或者Dio_WriteChannel接口。

void BrsMainWrapperTogglePinCustom(void)
{
  BrsMainTogglePin(BRSMAIN_TOGGLEPIN_CUSTOM);
}

我们还需要在文件Demo\DemoFbl\Appl\Include\BrsHw_Ports.h里面,把后面三个的x改为具体的值。

Toggle Custom-Pin - Dio Channel Reference一般不用选。

vBRS Enable Support LEDs跟vBRS Enable Support Toggle Custom Pin差不多,也是闪烁LED,会关联到vBrsCfg.h文件里面的BRS_ENABLE_SUPPORT_LEDS宏定义。

vBRS Enable Support Toggle Wd Pin也是闪烁LED,会关联到vBrsCfg.h文件里面的BRS_ENABLE_SUPPORT_TOGGLE_WD_PIN宏定义。

vBRSHwConfig

vBRS Enable PLL Clocks Handling使能在BrsHw内处理锁相环和时钟配置,会关联到vBrsCfg.h文件里面的BRS_ENABLE_PLLCLOCKS宏定义,默认勾选。

vBRS Enable Port Handling使能vBRS的端口处理,会关联到vBrsCfg.h文件里面的BRS_ENABLE_PORT宏定义,默认勾选。

vBRS Enable Watchdog Handling使能vBRS的看门狗处理,会关联到vBrsCfg.h文件里面的BRS_ENABLE_WATCHDOG宏定义,默认勾选。

vBRS Evaluation Board选择你是用的评估板,一般用的都是自己项目的电路板,所以选个芯片型号就行。

vBRS Osc Clock外部晶振频率,会关联到vBrsCfg.h文件里面的MAIN_OSC_CLK宏定义,根据电路板进行填写。

vBRS Periph Clock和vBRS Periph Clock Description外部时钟频率,默认自带的。

Peripheral Clock Mcu Reference不用选

vBRS Time base Clock锁相环频率

vBRS Compiler Instruction Set汇编指令集,这个就没有什么好默认了的,适合哪个选哪个。会关联到vBrsCfg.h文件里面的BRS_INSTRUCTION_SET_xxx宏定义和Makefile.config.generated里面的INSTRUCTION_SET变量。

Enable FPU support使能FPU,一般不动它就行。

vBRSDriverHandlingCAN

关于CAN驱动的一些处理配置

vBRS Enable Driver Handling CAN使能CAN驱动处理,包括PLL和时钟设置、端口引脚设置、附加寄存器,会关联到vBrsCfg.h文件里面的BRS_ENABLE_CAN_SUPPORT宏定义,默认勾选。

vBRS Driver Handling CAN_Peripheral Clock将vBRSHwConfig/vBRSPeriphClock中定义的时钟用于外围时钟,由CAN驱动程序使用,默认勾选。

Frequency of peripheral clock [MHz]和Frequency of peripheral clock - Mcu Reference用于锁相环计算的CAN驱动外设时钟频率,不用设置。

vBRS Driver Handling CAN_channelxx使能通信的通道,会关联到vBrsCfg.h文件里面的BRS_ENABLE_CAN_CHANNEL_x宏定义。

vLinkGen配置

需要配合vBaseEnv模块的只是 vLinkGen里面的vLinkGenMemLayout里面的vLinkGenMemoryRegions。
配置 vLinkGen模块要先了解vBaseEnv里面你的芯片有什么样的硬件内存分区。
然后在 vLinkGenMemoryRegions里面再进行细分,每个硬件内存分区在软件上都可以再继续细分成几个,注意软件分区的范围不能超过硬件的划分范围。

  • 15
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不吃鱼的羊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值