RH850 FCL的使用


一、前言

調試的電路板為瑞薩F1KM系列,使用的FCL庫版本為2.13,應用說明手冊為R01US0078ED0213,手冊和庫都可以在官網下載到。

好,進入正題。

使用CS+版本時參考庫提供的CC-RH_200文件夾 ,此文件夾下的FCL文件夾為源碼文件,在調試時,添加此文件夾下所有文件,此文件夾下的文件都不要進行更改。

其中RH850-D1M1A、RH850-D1x、RH850-F1H、RH850-F1x、RH850-F1K文件下的文件為參考代碼文件夾,根據芯片型號選擇參考代碼,進行調試。

根據F1KM系列我們選擇F1K系列。在不了解具體流程前還是要按照參考代碼進行調試,否則真有坑啊,由於之前理解擦寫動作函數可以不在RAM中運行,導致調試時頻繁出錯,

不清楚問題出現哪里,后來理解了參考代碼擦除操作是在RAM中的進行的,這個坑才跳出來。由於調試過程中遇到很多問題,在這里總結一下注意事項及相關操作方法。

二、工程的配置

2.1.在工程文件Section中添加FCL庫所需要的段

2.1.1 ROM中添加

R_FCL_CODE_ROM.text

R_FCL_CONST.const

R_FCL_CODE_USRINT.text

R_FCL_CODE_USR.text

R_FCL_CODE_RAM.text

R_FCL_CODE_ROMRAM.text

R_FCL_CODE_RAM_EX_PROT.text

2.1.2 RAM中添加

R_FCL_DATA.bss

FCL_RESERVED.bss

關於FCL_RESERVED.bss段

由於此段的內定義的數據大小為宏FCL_RAM_EXECUTION_AREA_SIZE  為0x8000,共32K,占用了整個Local RAM大小,

由於在調試時Retention RAM中的變量在CS+ 中不正常,所以將FCL_RESERVED.bss段定義在Retention 段內,保證了調試程序時,變量的正常使用。

關於FCL_RAM_EXECUTION_AREA_SIZE  宏定義的大小應該可是進行修改的,在調試成功后,將宏定義改為了0x6000,擦寫操作也能正常進行,但為了

保險起見,我們還是不要進行修改了,以防后面埋了個坑,反正定義也是在Retention RAM段,不影響正常變量的定義。

三、文件的修改

3.1 fcl_descriptor.h

根據上面FCL_RESERVED.bss段定義的Retention RAM起始地址,修改fcl_descriptor.h文件中的宏定義FCL_RAM_ADDRESS。

根據實際設置時鍾大小進行FCL_CPU_FREQUENCY_MHZ的修改,

FCL_AUTHENTICATION_ID為安全ID,如果不使用,不需要進行修改。

3.2 關於boot.sam的修改

此定義為清零 RAM范圍定義,將set后設置為芯片RAM正常地址

GLOBAL_RAM_ADDR 
GLOBAL_RAM_END 
LOCAL_RAM_ADDR 
LOCAL_RAM_END 

四、初始化過程

4.1 調用R_FCL_Init (&sampleApp_fclConfig_enu)函數

4.2 調用R_FCL_CopySections();函數

4.3 在內存中運行以下兩個函數

FCLUser_Open ();
DRV_CodeFlashEnvInit();

兩個函數。參考庫提供的參考main.c的 方法為

fpFct = ( uint32_t (*)() )R_FCL_CalcFctAddr ( (uint32_t)(&FCL_Ctrl) );
fpFct ();

此處一定注意運行是在RAM中進行的,此處有坑,我就跳里了,不要直接運行FCL_Ctrl ()函數哦!!!

 

五、注意事項

調試成功后可以參考fcl_ctrl.c的例程,編寫自己的接口程序了,新編寫文件時,注意在源文件頭添加#pragma section text "R_FCL_CODE_USR"的定義

將代碼定義到R_FCL_CODE_USR段內,否則有坑!!!

編寫好庫文件后可以將fcl_ctrl.c移除工程文件了,進行接口函數的驗證,擦除,寫數據等。

通過程序擦寫FLASH后,mem窗口查看內容不會立即顯示,多調試下載幾次代碼就正常了。

 

總結完畢,歡迎討論。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM