首先需要完成對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的功能還是很健壯的,能夠對抗多次意外斷電而不會陷入“死機”或者異常。
當然也可能是測試得不夠充分。