->返回总目录<-
前言
网上看了太多讲Autosar的,但是看了之后还是一知半解,正好最近在工作中自己配置了一下,接触的时间不多,也算是有了一个初步的了解,做一个记录。我这边是直接在S32DS上进行配置的,在配置的过程中,我也参考了很多别人的讲解,总体看下来除了格式,配置项基本与EB保持一致。
枯燥的原理之类的我这边就不讲了,直接上干货,怎么配置,如有讲的不对的地方,请各位见谅,就算是互相学习了吧。
一、PORT配置
1.1 新增一个Port模块
右键ECU ID,选择【Module Configuration】
选中Port,然后将Port导入到右侧,然后点击【OK】
在工程下面,就新增了一个Port模块,双击Port,我们打开这个模块来进行配置。
1.2 Port相关配置
1.2.1 General
Config Variant这个是选PostBuild还是pre-build,在最后介绍一下。
选择你想要重要的一些功能,这些函数在Mcal里面本体都实现了,只是说勾选上就使能这个函数,不勾选就禁用了这个函数。
1.2.2 PortContainer
PortPin Mscr:这个要根据你所使用的PIN去选择,比如我选择的是PTH6, 在NXP芯片手册的S32K3xxx_IOMUX.xlsx里面可以找到,PTH6对应的MSCR为230
到此为止,如果没有错误,那么PORT的功能就算是配置好了。
1.2.3 UnTouchedPortPin
新增4个,我这个是S32K3xxx系列,保持一致就行
1.2.4 UntouchedIMCR
下面三个,保持一致就可以
二、生成代码
点击上面的小锤子按钮,在Src里面就会生成代码。
二、代码示例讲解
2.1初始化
1.如果上面选择Pre-Build的话,Port初始化函数的形参就要用NULL_PTR
Port_Init(NULL_PTR);
2.如果选择PostBuild的话,Port初始化函数的形参就要有一个实体
Port_Init(Port_Config);
3.对比
左边为PostBuild生成的代码,右边为Pre-Build生成的代码,对比发现主要3个文件不一样
Port_Cfg.h主要就是这个Precompile的开关开启还是关闭
postbuild的话,会引用这个结构体,结构体里有一些Port的初始化信息。
最终PORT的使用还是要结合DIO一起,来对PIN的输出做一个控制。