精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

瑞薩RH850 FCL、FDL和EEL庫的配置和使用

jf_Vqngj70R ? 來源:美男子玩編程 ? 作者:美男子玩編程 ? 2023-01-13 13:16 ? 次閱讀

瑞薩RH850 Flash中有兩種存儲類型:Mapping of Code Flash Memory和Mapping of Data Flash Memory。

Mapping of Code Flash Memory存儲代碼,Mapping of Data Flash Memory存儲數據。

pYYBAGPA6YKADsPPAAFy4tYj9PA427.jpgpoYBAGPA6YKAcTxGAAEF9s1lLOI980.jpg

瑞薩車規級MCU操作Flash沒有直接提供寄存器接口,需要安裝官方提供的庫文件,有三種形式:

FCL:程序存儲區仿真庫,可使用此庫訪問程序存儲區,一般用于程序自升級操作;

pYYBAGPA6YKAaI1PAAClD6eDS28186.jpg

FDL:數據存儲區仿真庫,可通過此庫操作數據區,需要人為定義地址和數據長度,占用Flash空間比EEL略少,但占用RAM大;

EEL:EEPROM仿真庫,可使用此庫來訪問數據內存區,該方法類似于訪問外部EEPROM,使用此庫時,不用管理對數據區閃存寫和擦除操作,其占用Flash容量大,需配合FDL庫來操作。

pYYBAGPA6YKACOF9AACeuC3rAlc957.jpg

1FCL庫

1.1、配置FCL庫

第1步:下載FCL庫(點擊閱讀原文查看)。

FCL庫官網地址

RH850 FCL庫與用戶手冊地址

第2步:安裝FCL庫。

8b2b5f26-9300-11ed-bfe3-dac502259ad0.png

安裝完成后可見官方庫文件和用戶使用文件兩部分:

poYBAGPA6YKAHhICAABP3kRPY0c611.jpg

文件系統結構說明如下所示:

poYBAGPA6YKAUeS6AALvwf1agqE474.jpg
poYBAGPA6YKALwhrAAHnHkMZPB0822.jpg

第3步:將官方庫文件和對應的用戶使用文件添加到自己的工程后,在CS+工程中的添加FCL需要的代碼段,如下圖所示:

pYYBAGPA6YKAOJTNAAIcCYjWMYA491.jpgpYYBAGPA6YKACDAeAAGlP2n14d8607.jpg

注意:

在這些代碼段中請不要插入其他段;

FCL_RESERVED.bss段:在RAM中存放FCL庫運行的代碼,即復制上面代碼段的內容到此RAM中。如果定義了R_FCL_HANDLER_CALL_USER,則用戶代碼R_FCL_CODE_USER.text也在RAM中運行。在實際應用中定義FCL_RESERVED預留的大小,大小必須包含該庫代碼量和用戶代碼量(如果定義了R_FCL_HANDLER_CALL_USER );

/* This array reserves the copy area in the device RAM */
#define FCL_RAM_EXECUTION_AREA_SIZE 0x8000
R_FCL_NOINIT uint8_t FCL_Copy_area[FCL_RAM_EXECUTION_AREA_SIZE];

R_FCL_DATA.bss:FCL內部運行數據段;

在CS+環境下,FCL編譯后會出現3個對齊失配警告,請忽略。

W0561322:Section alignment mismatch : "R_FCL_CODE_USR.text"
W0561322:Section alignment mismatch : "R_FCL_CODE_RAM.text"
W0561322:Section alignment mismatch : "R_FCL_CODE_ROMRAM.text"

第4步:修改fcl_cfg.h文件。

#define R_FCL_COMMAND_EXECUTION_MODE    R_FCL_HANDLER_CALL_USER
//修改成
#define R_FCL_COMMAND_EXECUTION_MODE    R_FCL_HANDLER_CALL_INTERNAL

R_FCL_HANDLER_CALL_USER(user mode):user模式,用戶代碼運行在RAM區,在自編程命令執行期間,可以運行用戶代碼,用戶可以輪詢庫的運行狀態。需要消耗一定的RAM空間;

R_FCL_HANDLER_CALL_INTERNAL (internal mode):internal模式,不需要輪詢庫的狀態,在自編程命令執行期間沒有狀態值的返回,直到命令執行結束。消耗RAM空間小。

第5步:修改fcl_descriptor.h文件。

#define FCL_CPU_FREQUENCY_MHZ  (240)                          /*!< CPU frequency in MHz */
#define FCL_AUTHENTICATION_ID {0xFFFFFFFF, 
                               0xFFFFFFFF, 
                               0xFFFFFFFF, 
                               0xFFFFFFFF}                    /*!< 128Bit authentication ID */
#define FCL_RAM_ADDRESS        0xFEBC0000                     /*!< RAM address range blocked for FCL */

FCL_CPU_FREQUENCY_MHZ:CPU工作頻率配置,請不要在庫的運行期間改變CPU的工作頻率,如果需要改變,改完后必須重新初始化FCL庫;

FCL_AUTHENTICATION_ID:如果設備設置了ID驗證碼,需要提供相應的ID碼,在FCL初始階段需要驗證ID,如果ID驗證不通過,不能成功執行FCL命令;

FCL_RAM_ADDRESS:根據相應的設備配置RAM起始位。

第6步:修改r_fcl_types.h文件。

#define R_FCL_NO_BFA_SWITCH


#if ((defined R_FCL_MIRROR_FCU_COPY) && (defined R_FCL_NO_FCU_COPY))
    #error "r_fcl_types.h: Invalid define for support device macro"
#elif ((defined R_FCL_MIRROR_FCU_COPY) && (defined R_FCL_NO_BFA_SWITCH))
    #error "r_fcl_types.h: Invalid define for support device macro"
#elif ((defined R_FCL_NO_FCU_COPY) && (defined R_FCL_NO_BFA_SWITCH))
    #error "r_fcl_types.h: Invalid define for support device macro"
#elif (defined R_FCL_MIRROR_FCU_COPY)
    #define R_FCL_INNER_NO_BFA_SWITCH
#elif (defined R_FCL_NO_FCU_COPY)
    #define R_FCL_INNER_NO_FCU_COPY
#elif (defined R_FCL_NO_BFA_SWITCH)
    #define R_FCL_INNER_NO_BFA_SWITCH
    #define R_FCL_INNER_NO_FCU_COPY
#endif

在FCL V2.12版本中增加了R_FCL_NO_FCU_COPY、R_FCL_MIRROR_FCU_COPY和R_FCL_NO_BFA_SWITCH預編譯配置選項。

在執行FCL庫環境準備命令時,為了從MCU內部固件讀取數據,需要開關CodeFlash幾次。有些設備需要更少的開關來完成這個準備工作,需要定義R_FCL_NO_BFA_SWITCH 宏;

R_FCL_NO_BFA_SWITCH 宏和R_FCL_NO_FCU_COPY、R_FCL_MIRROR_FCU_COPY 不能同時被定義。

預編譯目標設備所需的定義如下表所示:

poYBAGPA6YKAOm1RAAMqZW26e8s684.jpg

1.2、使用FCL庫

pYYBAGPA6YKAFaX8AALJKRvcLus123.jpgpYYBAGPA6YKAFaX8AALJKRvcLus123.jpg

2FDL庫

2.1、配置FDL庫

第1步:下載FDL庫(點擊閱讀原文查看)。

FDL庫官網地址:https://www.renesas.cn/cn/en/software-tool/data-flash-libraries#download

RH850 FDL庫與用戶手冊地址:https://www.renesas.cn/cn/en/products/microcontrollers-microprocessors/rh850-automotive-mcus/rh850f1km-s4-high-end-automotive-microcontrollers-ideal-body-applications/design-support#hardware_tools

第2步:安裝FDL庫。

8c02de06-9300-11ed-bfe3-dac502259ad0.png

安裝完成后可見官方庫文件和用戶使用文件兩部分:

poYBAGPA6YKAUFoQAABQ7Qb8Nzo941.jpg
pYYBAGPA6oeAVAROAAPmyZOk7j4585.pngpoYBAGPA6YKAb9diAAH1yHkKie4757.jpg

第3步:將官方庫文件和對應的用戶使用文件添加到自己的工程后,在CS+工程中的添加FDL需要的代碼段,如下圖所示:

pYYBAGPA6YKAOJTNAAIcCYjWMYA491.jpgpYYBAGPA6YKAajWlAALD078Sjuk187.jpg

注意:

FDL庫的代碼段請按照如圖樣例1設置,位置可以任意,但不要插在FCL代碼的中間;

R_FDL_Data.bss:FCL內部運行變量數據段;

R_FDL_CodeRam.bss: 在執行FDL環境準備期間,Code Flash不可用,需要從RAM中運行代碼。

第4步:修改r_fdl.h文件。

#define R_FDL_NO_BFA_SWITCH


/* Global compiler definition */
#if ((defined R_FDL_MIRROR_FCU_COPY) && (defined R_FDL_NO_FCU_COPY))
    #error "r_fdl.h: Invalid define for support device macro"
#elif ((defined R_FDL_MIRROR_FCU_COPY) && (defined R_FDL_NO_BFA_SWITCH))
    #error "r_fdl.h: Invalid define for support device macro"
#elif ((defined R_FDL_NO_FCU_COPY) && (defined R_FDL_NO_BFA_SWITCH))
    #error "r_fdl.h: Invalid define for support device macro"
#elif (defined R_FDL_MIRROR_FCU_COPY)
    #define R_FDL_INNER_NO_BFA_SWITCH
#elif (defined R_FDL_NO_FCU_COPY)
    #define R_FDL_INNER_NO_FCU_COPY
#elif (defined R_FDL_NO_BFA_SWITCH)
    #define R_FDL_INNER_NO_BFA_SWITCH
    #define R_FDL_INNER_NO_FCU_COPY
#endif

在FDL V2.12版本中增加了R_FDL_NO_FCU_COPY, R_FDL_MIRROR_FCU_COPY和R_FDL_NO_BFA_SWITCH預編譯配置選項。

在執行FDL庫初始化時,為了從MCU內部拷貝固件,需要在固件區和用戶區來回切換幾次,需要定義宏R_FDL_NO_BFA_SWITCH 。有些設備不需要拷貝固件(比如RH850/D1M1A),需要定義R_FDL_NO_FCU_COPY宏。

不要同時定義R_FDL_NO_BFA_SWITCH和R_FDL_NO_FCU_COPY, R_FDL_MIRROR_FCU_COPY 。

預編譯目標設備所需的定義如下表所示:

poYBAGPA6YKALqsuAAKbhrIYoTw665.jpg

第5步:修改fdl_descriptor.h文件。

/* The Flash programming hardware is provided with a clock, derived from the CPU subsystem frequency. Check that 
       the frequency is correct as this has an impact on the programming quality and performance! */
    #define CPU_FREQUENCY_MHZ       (240)                           /**< CPU frequency in MHz */


    /*****************************************************************************************************************
     *  Important definitions for run-time configuration of the FDL: 
     *   - EEL/FDL Pool -
     *****************************************************************************************************************/
    /* The physical erase unit of the Data Flash is 64Byte. 
       The Renesas EEL works with a ring buffer consisting of ring buffer (virtual) blocks that merge a certain number 
       of physical blocks.
       E.g. virtual block size of 2kB equals 32 physical blocks of 64Bytes --> EEL_VIRTUALBLOCKSIZE = 32
            virtual block size of 4kB equals 64 physical blocks of 64Bytes --> EEL_VIRTUALBLOCKSIZE = 64


       Note: If the Renesas EEL is not used, an alignment is not necessary "EEL_VIRTUALBLOCKSIZE" need not be defined 
       and the pools start and size definitions can be set free to the application needs */
    #define EEL_VIRTUALBLOCKSIZE    (64u)


    #define FDL_POOL_SIZE           (16u * EEL_VIRTUALBLOCKSIZE)    /**< Number of Data Flash blocks, accessible by
                                                                         the FDL. Typically it is the complete
                                                                         no. of available Data Flash blocks */
    #define EEL_POOL_START          (1u * EEL_VIRTUALBLOCKSIZE)     /**< 1st block of the EEL pool */
    #define EEL_POOL_SIZE           (6u * EEL_VIRTUALBLOCKSIZE)     /**< no. of blocks for the EEL pool */

CPU_FREQUENCY_MHZ:CPU工作頻率配置,請不要在庫的運行期間改變CPU的工作頻率,如果需要改變,改變后必須重新初始化FDL庫;

EEL_VIRTUALBLOCKSIZE虛擬塊定:Data Flash物理塊的大小為64Bytes,在EEL(EE2PROM Emulation Library)庫中,需要合并一定數量的物理塊虛擬成一個虛擬塊作為EEL的緩沖區,用戶可以根據實際應用定義虛擬塊的大小;

如果沒有使用EEL,設EEL_VIRTUALBLOCKSIZE = 0。如果使用EEL,例如要定義2KB的虛擬塊,則需要32塊64B的物理塊組成,那么設EEL_VIRTUALBLOCKSIZE = 32。

FDL_POOL_SIZE :設備Data Flash的物理塊的數量;

EEL_POOL_START、EEL_POOL_SIZE:EEL池的起始塊和大小定義。

如果沒有使用EEL,設EEL_POOL_START = 0, EEL_POOL_SIZE = 0;

如果使用EEL,例如,EEL_POOL_START = 0u * EEL_VIRTUALBLOCKSIZE、EEL_POOL_SIZE = 5 * EEL_VIRTUALBLOCKSIZE。

2.2、使用FDL庫

poYBAGPA6YKAL4kKAAMQ3Vxvmu8657.jpg

3EEL庫

FDL和EEL都是操作Data Flash Memory,EEL依托于FDL,在FDL庫中已經講解了使用EEL的方法。EEL和FDL關系如下圖所示:

poYBAGPA6YOABIO1AAB5NI9f-yk578.jpg

EEL PooL:EEL Pool為EEL提供存儲數據和管理信息

User PooL:所有不是EEL Pool分配的FDL Pool空間都可由用戶應用程序自由使用,因此稱為User PooL。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FlaSh
    +關注

    關注

    10

    文章

    1623

    瀏覽量

    147782
  • 存儲
    +關注

    關注

    13

    文章

    4266

    瀏覽量

    85686
  • 瑞薩
    +關注

    關注

    35

    文章

    22294

    瀏覽量

    86098
  • FDL
    FDL
    +關注

    關注

    0

    文章

    4

    瀏覽量

    6280
  • rh850
    +關注

    關注

    2

    文章

    24

    瀏覽量

    4588

原文標題:瑞薩RH850 FCL、FDL和EEL庫的配置和使用

文章出處:【微信號:美男子玩編程,微信公眾號:美男子玩編程】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    從什么渠道可以找到的芯片手冊?

    在baidu,及官網查找均不能很好地獲得的芯片手冊,如RH850/F1L。向其他的一些大廠如TI,Freescale他們的官網均有豐
    發表于 02-13 15:19

    RH850/F1L用戶手冊的CAN接口部分介紹

    本文介紹RH850/F1L用戶手冊(user manual)的CAN接口部分的中文翻譯。博主會持續更新該用戶手冊,直到整個翻譯完成,有興趣的朋友可持續關注.版權聲明本博文系歐科曼汽車電子所
    發表于 12-09 07:46

    RH850F1x開發環境的搭建方法

    幫到大家。RH850F1x完整開發環境介紹買RH850F1x開發板,贈送完整開發環境,包括1、IAR for RH850編譯器2、CAN
    發表于 01-27 06:55

    如何配置***編譯器使其可以結合E1仿真器對RH850進行仿真調試?

    如何配置***編譯器使其可以結合E1仿真器對RH850進行仿真調試?
    發表于 02-16 07:00

    RH850P1M-C芯片或者RH850P系列誰用過,用什么配置軟件啊?

    最近在使用RH850/P1M-C/R7F701374單片機,開發環境使用過CS+、e2 studio、IAR都有這個芯片型號。但是配置軟件卻沒看到有這個系列信號,我在renesas
    發表于 01-18 10:00

    RH850 R7F7010693 誰能破解

    RH850 R7F7010693 誰能破解?可以的加我V:13520223020
    發表于 04-22 14:29

    推出汽車電子應用的新RH850系列微控制器

    電子株式會社(以下簡稱“電子”)宣布推出面向汽車電子應用的全新RH850系列32位微控制器(MCU)。
    發表于 03-12 08:27 ?1951次閱讀

    結合GHS MULTI使用E1仿真器實現對RH850單片機的仿真調試

    廣泛應用,而GHS編譯器由于其出色的性能,在車載行業也得到眾多認可。本文介紹如何配置GHS編譯器,使其可以結合E1仿真器對RH850進行仿真調試。1、首先將USB KEY加密狗插入
    發表于 12-20 19:01 ?20次下載
    結合GHS MULTI使用<b class='flag-5'>瑞</b><b class='flag-5'>薩</b>E1仿真器實現對<b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RH850</b>單片機的仿真調試

    RH850 智能配置器用戶指南:IAREW、MULTI

    RH850 智能配置器用戶指南:IAREW、MULTI
    發表于 01-09 19:09 ?4次下載
    <b class='flag-5'>RH850</b> 智能<b class='flag-5'>配置</b>器用戶指南:IAREW、MULTI

    RH850 智能配置器用戶指南:CS+

    RH850 智能配置器用戶指南:CS+
    發表于 03-16 19:21 ?1次下載
    <b class='flag-5'>RH850</b> 智能<b class='flag-5'>配置</b>器用戶指南:CS+

    RH850 智能配置器用戶指南:IAREW、MULTI

    RH850 智能配置器用戶指南:IAREW、MULTI
    發表于 06-30 18:55 ?1次下載
    <b class='flag-5'>RH850</b> 智能<b class='flag-5'>配置</b>器用戶指南:IAREW、MULTI

    RH850 智能配置器用戶指南:CS+

    RH850 智能配置器用戶指南:CS+
    發表于 07-06 20:06 ?2次下載
    <b class='flag-5'>RH850</b> 智能<b class='flag-5'>配置</b>器用戶指南:CS+

    rh850是什么芯片?

    rh850是什么芯片? RH850是一款高性能的32位RISC微處理器芯片。它由日本的電子公司(Renesas Electronics)開發和推出,其系列產品在電子系統和汽車領域得
    的頭像 發表于 08-15 16:22 ?3926次閱讀

    rh850是arm架構嗎?

    rh850是arm架構嗎? Rh850不是ARM架構,而是一種基于RISC架構的嵌入式微控制器。在本文中,我們將深入探討RH850微控制器的特點、應用和發展前景。 RH850的介紹
    的頭像 發表于 08-15 16:23 ?2124次閱讀

    RH850智能配置器e2studio用戶指南

    電子發燒友網站提供《RH850智能配置器e2studio用戶指南.pdf》資料免費下載
    發表于 01-30 09:34 ?1次下載
    <b class='flag-5'>RH850</b>智能<b class='flag-5'>配置</b>器e2studio用戶指南