TC275的Mcal的FEE和FLS部分相关配置

首先需要完成对TC275的Mcal关于FEE和FLS部分的基本配置。

可能还需要对Resource和Mcu模块进行最基本的配置。
在集成过程中有以下需要注意的地方(可能是由于tc275的mcal的McalLib相关的公共资源的架构比较老):

tc275的mcal的基本配置。已经能够正常使用生成配置的*c、*h文件了。
tc275的mcal的集成问题。由于启动代码和与其他模块存在依赖的原因,存在以下文件的修改:

文件Fls_17_Pmu_Protect.h,修改了以下宏定义:
#define FLS_INIT_RESETENDINIT() mcal_simulated_applResetEndInit()
#define FLS_INIT_SETENDINIT() mcal_simulated_applSetEndInit()
文件OsStub.c中修改了以下函数的实现:
void OS_ModifyPeripheral32(uint32 area,volatile uint32* address,
uint32 clearmask, uint32 setmask);
uint32 OS_ReadPeripheral32(uint32 Area,volatile uint32* Address);
void OS_WritePeripheral32(uint32 Area,volatile uint32* Address,uint32 value);


其中,FEE和FLS对其他模块的依赖是很小的。但是tc275中模块的依赖还是有一些的。注意,在TC275的mcal配置中,如果只是对FEE进行单元的功能测试,

可以不使用EcuM和Mcu模块。其中EcuM是完全不需要添加的。而对于MCU模块可能必须要添加,否则在EB tresos 16.0.0 中可能会报错。

但是在集成过程中,可以不使用Mcu的配置相关的inc和src文件。


在配置中需要有以下注意事项:
1、FeeBlockConfiguration中,
FeeBlockNumber的意思是一个ID的意思(index的作用)。
FeeBlockSize表示一次写入的bytes。

2、在FeeNvmJobEndNotification中,
需要配置callback为NvM_JobEndNotification。
否者Fee_MainFunction和Fls_17_Pmu_MainFunction可能一直处于忙等待中出不来。

3、在FlsConfigSet中添加一个FlsConfigSet_0。
在FlsJobEndNotification中设置一个函数指针为Fee_JobEndNotification。否则会出现以下bug。

[目前FEE在mcal中配置完成之后,一直在Fee_Init这个api中出不去。
表现为,Fee_MainFunction这个函数一直被执行,FEE的状态机一直不能够变为idle状态。]

 经过测试,如果将JobErrorNotification在FEE和FLS中均进行配置,这个模拟EEPROM的功能还是很健壮的,能够对抗多次意外断电而不会陷入“死机”或者异常。

当然也可能是测试得不够充分。

 

 

 

 

 

 

 

 

 

 

原文地址:https://www.cnblogs.com/praiseslow/p/13612598.html