【RH850 MCAL】MCAL配置工程搭建


前言

文章主要用途是记录和分享,要是被设为VIP文章,请私我更改!
太懒了不想写,直接看正文吧 0.0

1. 下载和安装

REF:参考链接
Note:已经安装好的工程可以直接复制使用,以下记录的是从无到有的过程。

1.1. MCAL代码

  1. 登录瑞萨官网 (需要注册,很方便)

  2. 选择合适的型号,点击进行下载。
    在这里插入图片描述

  3. 下载后是一个压缩包,解压后得到3个压缩包。(C1M型号的)
    在这里插入图片描述

  4. 解压每个压缩包,里面有一个可运行的.exe程序文件,执行此程序提出其中的代码。
    在这里插入图片描述

  5. 可将.exe中的文件统一提取到.\CBD2100679_D00\ThirdParty路径下,便于代码生成脚本的调用。
    在这里插入图片描述

1.2. 配置工具Configurator

  1. 还是在瑞萨官网,下载Davinci Configurator(CFG)。
    • 瑞萨的MCAL是在CFG配置的,不是EB.
    • 也可以去vector官网下载最新版本的CFG.

在这里插入图片描述

  1. 解压DaVinci_related_files_R19-11.zip如下所示。
  • CBDxxx.exe是CFG的工具安装包。
  • LLWEBxxx.pdf是MCAL和CFG关联的说明文档。(以下是按照pdf中提到的内容进行设置。)
    在这里插入图片描述
  1. 安装CBDxxx.exe。(密码见LLWEBxxx.pdf)
  2. 将每个模块的arxml文件复制到.\CBD2100679_D00\Components\MSR_Vector_SLP4\BSWMD下
    每个模块有两个arxml,以adc为例。
    • \X1X\C1x\modules\adc\definition\4.2.2\C1MA\R422_ADC_C1MA_78.arxml (多个arxml只要一个,_78和_75留一个_78)
    • \X1X\modules\adc\generator\R422_ADC_C1x_BSWMDT.arxml

可以用这个脚本复制arxml:

import sys
import shutil
import os


def get_files_by_ex(path, ex):
    files = []
    for file in os.listdir(path):
        file = os.path.join(path, file)
        if os.path.isdir(file):
            files.extend(get_files_by_ex(file, ex))
        elif file.endswith(ex):
            files.append(file)
    return files


if __name__ == '__main__':
    path_s = r'.\AUTOSAR_RH850_C1M\AUTOSAR_RH850_C1M-Ax_MCAL_Ver42.02.00_SPAL_CAN_LIN\all\X1X\C1x\modules'
    path_d = r'.\AUTOSAR_RH850_C1M\CBD2100679_D00\Components\MSR_Vector_SLP4\BSWMD'
    file_ex = '.arxml'

    for file in get_files_by_ex(path_s, file_ex):
        shutil.copy(file, path_d)

2. CFG工程配置

2.1. 新建CFG工程

  1. 点击菜单栏中的File,选择 New ECU Project…在这里插入图片描述

  2. 配置工程名称和路径
    在这里插入图片描述

  3. 后面的配置默认即可
    在这里插入图片描述

2.2. 添加模块

  1. 在Project Settings中添加需要的模块。
    在这里插入图片描述
  2. 勾选需要的模块,点finish即可。
    在这里插入图片描述
  3. 如果有其他工程的模块,可以导入其他的arxml。
    • 点击菜单栏中的File,选择 Import
      在这里插入图片描述

    • 选择并添加arxml
      在这里插入图片描述

    • 勾选导入的模块,并选择导入方式是替换还是合并。
      在这里插入图片描述

2.3. 添加依赖模块

以ADC模块为例,需要用到DemEventParameter,则需要添加DEM模块,但DEM的错误不需要关心。
在这里插入图片描述
添加的方式和2.2中提到的类似,但要从"AUTOSAR Standard Definition"中选择。
在这里插入图片描述

3. 代码生成脚本

3.1. 瑞萨生成工具

CFG中并不能直接生成代码,调用的是瑞萨的生成工具。按照如下方式调用并传入参数。
在这里插入图片描述

3.2. 自定义脚本

以下是经过封装的脚本GenCode.bat,修改其中的一些参数路径即可直接使用。
使用方式:GenCode.bat + Module,比如 GenCode.bat Adc

@echo OFF
setlocal enabledelayedexpansion

REM this script calling by CFG, should be put in the *.dpa path.
set current_dir=%cd%

REM Davinci project name *.dpa
set project=rh850

REM output dir
set out_dir=%cd%\Appl\GenData

REM rh850 mcal project
set "ThirdParty_dir=%current_dir%\..\..\ThirdParty"

REM rh850 mcal generate tool
set "generater=%ThirdParty_dir%\X1X\common_platform\generic\generator\MCALConfGen.exe"

REM rh850 mcal module
set "valid_module=Adc Can Dio Fls Gpt Icu Lin Mcu Port Pwm Spi Wdg"

REM CFG generate flag. 0: OK, 1: NOK
set ret_CFG=0

REM validate input module.
for %%a in (%valid_module%) do (
    if /i "%%a"=="%1" (
        goto :gen_process
    )
)

REM invalid module
echo Error: Unknown module %1
set ret_CFG=1
goto :end

:gen_process
REM Adc, Can, Dio, Fls, Gpt, Icu, Lin, Mcu, Port, Pwm, Spi, wdg
set p1="%ThirdParty_dir%\X1X\C1x\modules\%1\sample_application"
set p2="%current_dir%\Config\ECUC\%project%_%1_%1_ecuc.arxml"
set p3="%ThirdParty_dir%\X1X\C1x\common_family\generator\Sample_Application_C1x.trxml"
set p4="%ThirdParty_dir%\X1X\C1x\modules\%1\generator\R422_%1_C1x_BSWMDT.arxml"
set p5="%current_dir%\Config\ECUC\%project%_Mcu_Mcu_ecuc.arxml"
set p6="%current_dir%\Config\ECUC\%project%_Dem_Dem_ecuc.arxml"
set p7="%current_dir%\Config\ECUC\%project%_Os_Os_ecuc.arxml"
set p8="%current_dir%\Config\ECUC\%project%_EcuM_EcuM_ecuc.arxml"
if /i "%1"=="mcu" (
    set p4="%ThirdParty_dir%\X1X\C1x\modules\%1\generator\R422_MCU_C1MA_BSWMDT.arxml"
    set p5=""
)
REM due to %generater% limited, should working in the module dir.
cd %p1%

REM call %generater%. Redundant parameters don't matter for each module.
%generater% -m %1 -o %p1% %p2% %p3% %p4% %p5% %p6% %p7% %p8%

REM copy code to the out_dir
if "%errorlevel%"=="0" (
    xcopy /Y include %out_dir%\include\
    xcopy /Y src %out_dir%\src\
) else (
    set ret_CFG=1
    echo Error: %1 generate failed.
)
copy %1.log %out_dir%\%1.log
goto :end


:end
cd %current_dir%
exit /b %ret_CFG%

3.3. CFG生成代码

CFG可以调用自定义的脚本,调用上述脚本即可生成代码。

  1. 在Project Setting中,按以下方式配置Generation Steps。
    在这里插入图片描述

  2. 点击Generate按钮,即可出现需要生成的模块。
    在这里插入图片描述

  3. 点击菜单栏中的View,选择 Generation Result,出现生成模块的结果。
    在这里插入图片描述

  4. 右键模块,并选择"Open …",即可在Console窗口看到输出信息。
    在这里插入图片描述

总结

RH850 MCAL配置工程主要是生成代码的脚本比较麻烦,传入参数没有说明,好在每个模块可以传入相同的arxml,多余的参数也不会产生错误。另外,如果想要传入参数方便,可以尝试在新建CFG工程时,将ECUC Files设置为一个。
欢迎批评指正和探讨交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

kook 1995

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

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

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

打赏作者

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

抵扣说明:

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

余额充值