RX600 & RX200シリーズ アプリケーションノート RX用仮想EEPROM

Similar documents
RX600 & RX200シリーズ RX用シンプルフラッシュAPI アプリケーションノート

fx-9860G Manager PLUS_J

Introduction Purpose This training course describes the configuration and session features of the High-performance Embedded Workshop (HEW), a key tool

Introduction Purpose This training course demonstrates the use of the High-performance Embedded Workshop (HEW), a key tool for developing software for

Microsoft Word - Win-Outlook.docx

VE-GP32DL_DW_ZA

スライド 1

取扱説明書_KX-PW100CL

GP05取説.indb

AN 100: ISPを使用するためのガイドライン

PFQX2227_ZA

Introduction Purpose This course explains how to use Mapview, a utility program for the Highperformance Embedded Workshop (HEW) development environmen

取説_KX-PW101CL_PW102CW

Webサービス本格活用のための設計ポイント

VE-GD21DL_DW_ZB

【注意事項】RXファミリ 組み込み用TCP/IP M3S-T4-Tiny

RR-US470 (RQCA1588).indd

R1RW0408D シリーズ

*Ł\”ƒ‚ä(CV03)

2 3

【注意事項】RX Driver Package、 RXファミリ RTC モジュール Firmware Integration Technology

MOTIF XF 取扱説明書

取説_KX-PW38CL_PW48CL

untitled

Microsoft Word - PCM TL-Ed.4.4(特定電気用品適合性検査申込のご案内)

はじめに

MIDI_IO.book

by CASIO W61CA For Those Requiring an English/Chinese Instruction

1 2 3

Web Web Web Web Web, i

HA8000シリーズ ユーザーズガイド ~BIOS編~ HA8000/RS110/TS10 2013年6月~モデル


I N S T R U M E N T A T I O N & E L E C T R I C A L E Q U I P M E N T Pressure-resistant gasket type retreat method effective bulk compressibility Fro

25 II :30 16:00 (1),. Do not open this problem booklet until the start of the examination is announced. (2) 3.. Answer the following 3 proble

RX62N グループ SCI を使ったクロック同期式シングルマスタ制御ソフトウェア

L1 What Can You Blood Type Tell Us? Part 1 Can you guess/ my blood type? Well,/ you re very serious person/ so/ I think/ your blood type is A. Wow!/ G


Express5800/R110a-1Hユーザーズガイド

- 1 -

2 3

入学検定料支払方法の案内 1. 入学検定料支払い用ページにアクセス ポータルの入学検定料支払いフォームから 入学検定料支払い用 URL の ここをクリック / Click here をクリックしてください クリックを行うと 入学検定料支払い用のページが新たに開かれます ( 検定料支払い用ページは ポ

西川町広報誌NETWORKにしかわ2011年1月号

Microsoft PowerPoint - #07 Quiz Are you still with me .pptx

H8000操作編

HA8000-bdシリーズ RAID設定ガイド HA8000-bd/BD10X2

C H H H C H H H C C CUTION:These telephones are for use in Japan only. They cannot be used in other countries because of differences in voltages, tele

untitled

Tab 5, 11 Tab 4, 10, Tab 3, 9, 15Tab 2, 8, 14 Tab 1, 7, 13 2

取説_VE-PV11L(応用編)

4.1 % 7.5 %

Z7000操作編_本文.indb

h23w1.dvi

国際恋愛で避けるべき7つの失敗と解決策

soturon.dvi

2

2

2

D-Link DWL-3500AP/DWL-8500AP 設定ガイド

untitled

*Ł\”ƒ‚ä(DCH800)

WARNING To reduce the risk of fire or electric shock,do not expose this apparatus to rain or moisture. To avoid electrical shock, do not open the cabi

AtCoder Regular Contest 073 Editorial Kohei Morita(yosupo) A: Shiritori if python3 a, b, c = input().split() if a[len(a)-1] == b[0] and b[len(

LC304_manual.ai

joho09.ppt

R1RP0416D シリーズ


Complex Lab – Operating Systems - Graphical Console

R1RW0416DI シリーズ

Microsoft Word - KUINS-Air_W10_ docx

elemmay09.pub


ECJ-PX50

untitled

L3 Japanese (90570) 2008

1 # include < stdio.h> 2 # include < string.h> 3 4 int main (){ 5 char str [222]; 6 scanf ("%s", str ); 7 int n= strlen ( str ); 8 for ( int i=n -2; i


総合的な経済・エネルギー・環境分析に資する技術情報の整備のための研究

1

Table 1. Assumed performance of a water electrol ysis plant. Fig. 1. Structure of a proposed power generation system utilizing waste heat from factori

Microsoft, Windows Microsoft Corporation

Ver.1 1/17/2003 2

BS・110度CSデジタルハイビジョンチューナー P-TU1000JS取扱説明書

自分の天職をつかめ

Microsoft PowerPoint - Ritsu-Mate出願操作マニュアル(学部英語版) _STEP4.pptx

2

1 138

Microsoft Word - D JP.docx

ACS電子ジャーナル利用マニュアル

SH7216 グループ USB ファンクションモジュール USB コミュニケーションクラス アプリケーションノート

Nios II 簡易チュートリアル


;y ;y ;; yy ;y;; yy y;y;y;y ;y; ;; yy ; y Portable CD player Operating Instructions RQT5364-S

How to read the marks and remarks used in this parts book. Section 1 : Explanation of Code Use In MRK Column OO : Interchangeable between the new part

C. S2 X D. E.. (1) X S1 10 S2 X+S1 3 X+S S1S2 X+S1+S2 X S1 X+S S X+S2 X A. S1 2 a. b. c. d. e. 2

How to read the marks and remarks used in this parts book. Section 1 : Explanation of Code Use In MRK Column OO : Interchangeable between the new part


23 Study on Generation of Sudoku Problems with Fewer Clues

評論・社会科学 84号(よこ)(P)/3.金子

untitled

How to read the marks and remarks used in this parts book. Section 1 : Explanation of Code Use In MRK Column OO : Interchangeable between the new part

Transcription:

R01AN0724JU0170 Rev.1.70 MCU EEPROM RX MCU 1 RX MCU EEPROM VEE VEE API MCU MCU API RX621 RX62N RX62T RX62G RX630 RX631 RX63N RX63T RX210 R01AN0724JU0170 Rev.1.70 Page 1 of 33

1.... 3 1.1... 3 1.2... 3 1.3... 3 1.4 VEE... 4 2. API... 7 2.1... 7 2.2... 7 2.2.1... 7 2.3... 7 2.4... 7 2.5... 7 2.6... 7 2.7... 7 2.8... 8 2.8.1 r_bsp... 9 2.9 VEE... 9 2.9.1 VEE... 9 2.9.2 VEE VEE... 9 2.9.3 VEE... 10 2.9.4 VEE... 10 2.10 API... 12 2.10.1 VEE... 12 2.11 API Typedef... 12 2.11.1 API... 12 2.11.2 VEE... 12 2.11.3 R_VEE_Control() VEE... 13 2.12 MCU Typedef... 13 2.13 VEE... 13 2.14 VEE... 14 2.15... 15 2.16... 15 2.17... 16 3. API... 17 3.1... 17 3.2 R_VEE_Read... 18 3.3 R_VEE_Write... 19 3.4 R_VEE_Defrag... 21 3.5 R_VEE_Erase... 22 3.6 R_VEE_GetState... 24 3.7 R_VEE_ReleaseState... 25 3.8 R_VEE_GenerateCheck... 26 3.9 R_VEE_Open... 27 3.10 R_VEE_Control... 28 3.11 R_VEE_GetVersion... 29 4.... 30 4.1 HEW... 30 4.2 E2Studio... 31 R01AN0724JU0170 Rev.1.70 Page 2 of 33

1. 1.1 EEPROM (VEE) API 1.1 1.1 EEPROM MCU BGO API MCU BGO BGO VEE MPU BGO 1.2 VEE VEE VEE ID ID VEE 1.4 1.3 VEE MCU VEE MCU VEE VEE VEE 2 VEE VEE 1 MCU 1 VEE VEE VEE VEE VEE VEE VEE VEE 1 VEE R01AN0724JU0170 Rev.1.70 Page 3 of 33

1.2 VEE EEPROM ID ID API 1.4 VEE VEE 1 2 VEE VEE VEE 2 VEE ID 1 1 ID 1.2 VEE VEE 0 2 VEE 0 VEE0 VEE1 VEE0 VEE1 VEE1 VEE0 VEE2 VEE2 1.2 0 R01AN0724JU0170 Rev.1.70 Page 4 of 33

VEE VEE VEE VEE 1 VEE 0 1.3 VEE 1 1.3 1 VEE 0 VEE0 VEE0 VEE1 VEE1 VEE1 VEE1 VEE0 VEE2 VEE0 VEE2 VEE2 1.4 R01AN0724JU0170 Rev.1.70 Page 5 of 33

VEE 1.5 VEE VEE 1 VEE 0 VEE 0 VEE 1 VEE 0 VEE0 VEE1 VEE1 VEE0 VEE2 1.5 0 R01AN0724JU0170 Rev.1.70 Page 6 of 33

2. API VEE API API 2.1 MCU BGO 2.2 2.2.1 MCU VEE VEE 2.3 RX600 API (R01AN0544JU) v2.40 FIT (r_bsp) v2.00 2.4 API EEPROM VEE API VEE 2.5 RX v1.02 2.6 API VEE 1 r_vee_if.h VEE r_vee_user_config.h 2.7 ANSI C99 "Exact width integer types" stdint.h R01AN0724JU0170 Rev.1.70 Page 7 of 33

2.8 r_vee_config.h VEE 2.1 VEE_NUM_SECTORS VEE_MAX_RECORD_ID VEE_IGNORE_DUPLICATE_WRITES VEE_CACHE_FILL_ALL VEE_USE_DEFAULT_CHECK_FUNCTIONS r_vee_config.h VEE r_vee_config_<target>_<df_size>.h 32 KB RX62N 2 VEE 2 VEE r_vee_config_rx62x_32kb.h ID ID ID VEE API ID 1 8 8 ID 0 ID 7 VEE VEE 1 R_VEE_GenerateCheck() vee_check_record() R01AN0724JU0170 Rev.1.70 Page 8 of 33

VEE_CALLBACK_FUNCTION r_vee_config.h 2 VEE_CALLBACK_FUNCTION VEE VEE_CALLBACK_FUNCTION MyCallback MyCallback() VEE 2.8.1 r_bsp VEE v1.50 FIT (r_bsp) r_bsp RX MCU VEE r_bsp MCU r_bsp RX 2.9 VEE r_vee_config_<target>_<df_size>.h 32 KB RX62N r_vee_config_rx62x_32kb.h VEE VEE VEE VEE VEE r_vee_config_<target>_<df_size>.h r_vee.c 2.9.1 VEE VEE r_vee_config.h VEE_NUM_SECTORS #define 2.8 2.9.2 VEE VEE VEE VEE g_vee_recordlocaion[] VEE ID 1 VEE ID 2.8 VEE_MAX_RECORD_ID VEE 2 4 VEE 0 4 VEE 1 const uint8_t g_vee_recordlocations[vee_max_record_id] = 0, /* Record 0 will be in sector 0 */ 0, /* Record 1 will be in sector 0 */ 0, /* Record 2 will be in sector 0 */ 0, /* Record 3 will be in sector 0 */ 1, /* Record 4 will be in sector 1 */ 1, /* Record 5 will be in sector 1 */ 1, /* Record 6 will be in sector 1 */ 1, /* Record 7 will be in sector 1 */ }; R01AN0724JU0170 Rev.1.70 Page 9 of 33

2.9.3 VEE VEE VEE 2 g_vee_sect#_block_addresses[] # VEE VEE 1 2 g_vee_sect#_df_blocks[][2] # 2 VEE MCU VEE 1 2 VEE VEE 2 VEE VEE 4 MCU VEE 0 1 /* Sector 0 */ const uint32_t g_vee_sect0_block_addresses[] = 0x100000, /* Start address of VEE Block 0 */ 0x102000 /* Start address of VEE Block 1 */ }; const uint16_t g_vee_sect0_df_blocks[][2] = BLOCK_DB0, BLOCK_DB3}, /* Start & end DF blocks making up VEE Block 0 */ BLOCK_DB4, BLOCK_DB7} /* Start & end DF blocks making up VEE Block 1 */ }; /* Sector 1 */ const uint32_t g_vee_sect1_block_addresses[] = 0x104000, /* Start address of VEE Block 0 */ 0x106000 /* Start address of VEE Block 1 */ }; const uint16_t g_vee_sect1_df_blocks[][2] = BLOCK_DB8, BLOCK_DB11}, /* Start & end DF blocks making up VEE Block 0 */ BLOCK_DB12, BLOCK_DB15} /* Start & end DF blocks making up VEE Block 1 */ }; #define BLOCK_DB0 RX API 2.9.4 VEE g_vee_sectors VEE VEE VEE ID VEE VEE MCU 2.9.3 VEE MCU VEE MCU 2.9.3 R01AN0724JU0170 Rev.1.70 Page 10 of 33

3 VEE VEE const vee_sector_t g_vee_sectors[ VEE_NUM_SECTORS ] = /* Sector 0 */ /* ID is 0 */ 0, /* There are 2 VEE Blocks in this sector */ 2, /* Size of each VEE Block */ 8192, /* Starting addresses for each VEE Block */ (const uint32_t *)g_vee_sect0_block_addresses, /* Number of data flash blocks per VEE Block (End Block # - Start Block # + 1) */ 4, /* Start & end DF blocks making up VEE Blocks */ g_vee_sect0_df_blocks }, /* Sector 1 */ /* ID is 1 */ 1, /* There are 2 VEE Blocks in this sector */ 2, /* Size of each VEE Block */ 6144, /* Starting addresses for each VEE Block */ (const uint32_t *)g_vee_sect1_block_addresses, /* Number of data flash blocks per VEE Block (End Block # - Start Block # + 1) */ 3, /* Start & end DF blocks making up VEE Blocks */ g_vee_sect1_df_blocks }, /* Sector 2 */ /* ID is 2 */ 2, /* There are 2 VEE Blocks in this sector */ 2, /* Size of each VEE Block */ 2048, /* Starting addresses for each VEE Block */ (const uint32_t *)g_vee_sect2_block_addresses, /* Number of data flash blocks per VEE Block (End Block # - Start Block # + 1) */ 1, /* Start & end DF blocks making up VEE Blocks */ g_vee_sect2_df_blocks } }; /* To add more sectors copy the one above and change the values */ R01AN0724JU0170 Rev.1.70 Page 11 of 33

2.10 API 2.10.1 VEE API VEE VEE r_vee_if.h /* VEE Record Structure */ typedef struct /* Unique record identifier, cannot be 0xFF! */ vee_var_data_t ID; /* Number of bytes of data for this record */ vee_var_data_t size; /* Valid or error checking field */ vee_var_data_t check; /* Which VEE Block this record is located in, user does not set this */ vee_var_data_t block; /* Pointer to record data */ uint8_t far * pdata; } vee_record_t; 2.11 API Typedef 2.11.1 API VEE API r_vee_if.h typedef /* Return values for functions */ typedef enum VEE_SUCCESS, VEE_FAILURE, VEE_BUSY, VEE_NO_ROOM, VEE_NOT_FOUND, VEE_ERROR_FOUND } vee_return_values_t; 2.11.2 VEE VEE r_vee_if.h R_VEE_GetState() /* Defines the possible states of the VEE */ typedef enum VEE_READY, VEE_READING, VEE_WRITING, VEE_ERASING, VEE_DEFRAG, VEE_ERASE_AND_DEFRAG, VEE_WRITE_AND_DEFRAG, VEE_ERASE_AND_WRITE } vee_states_t; R01AN0724JU0170 Rev.1.70 Page 12 of 33

2.11.3 R_VEE_Control() VEE R_VEE_Control() typedef /* VEE Record Structure */ typedef enum /* This command will reset the VEE even if it is in the middle of an operation. This should only be used when a flash error (e.g. data flash access during VEE operation) has occurred and you need to return the VEE to a working state. */ VEE_CMD_RESET } vee_command_t; 2.12 MCU Typedef VEE MCU 2 typedef vee_var_min_t vee_var_data_t r_vee.h vee_var_min_t RX62N 8 uint64_t 8 RX63N 2 vee_var_min_t uint16_t 2 vee_var_data_t typedef 2.10 VEE vee_var_data_t vee_var_min_t vee_var_data_t VEE 2.13 vee_var_data_t vee_var_data_t R8/38C vee_var_data_t typedef uint8_t 1 VEE 255 (0xFF) R8C/3x /* Set size of vee_var_data_t to the minimum write size of MCU's data flash or larger. This is the size of the variables in a record structure. */ typedef uint16_t vee_var_data_t; /* Set size of vee_var_min_t to the minimum write size of MCU's data flash */ typedef uint8_t vee_var_min_t; 2.13 VEE VEE2.10 vee_record_t 4 vee_var_data_t VEE 4 * sizeof(vee_var_data_t) 2.12 R8C/3x vee_var_data_t 2 8 RX62N vee_var_data_t 8 32 R01AN0724JU0170 Rev.1.70 Page 13 of 33

2.14 VEE VEE API R_VEE_Read (vee_record_t * vee_temp) VEE pdata API R_VEE_ReleaseState() BGO 1. VEE 0 R_VEE_Read() 2. VEE 0 3. VEE VEE 1 R_VEE_Write() 4. R_VEE_Write() BGO 5. VEE 0 6. VEE 1 VEE VEE VEE R_VEE_Read() R_VEE_Write() R_VEE_Erase() R_VEE_Defrag() VEE 0 R_VEE_Write(ID=2) R_VEE_Read(ID=0) VEE API R_VEE_Read(ID=1) R_VEE_Write(ID=2) R_VEE_Read(ID=2) R_VEE_Read(ID=1) R_VEE_Read(ID=2) VEE 1 2 R_VEE_Erase( ) R_VEE_ReleaseState() R_VEE_Erase( ) R_VEE_Write(ID=3) R_VEE_Read(ID=2) R_VEE_Read(ID=2) VEE 2 VEE_BUSY VEE_BUSY R01AN0724JU0170 Rev.1.70 Page 14 of 33

2.15 R_VEE_Write() R_VEE_Defrag() API API VEE VEE VEE VEE VEE check check VEE VEE 1. VEE 0 R_VEE_Write() 2. VEE 0 3. VEE VEE 0 4. VEE 0 5. R_VEE_Read() VEE 0 VEE VEE 0 VEE VEE RAM VEE RAM RAM R_VEE_Read() VEE VEE VEE 2.16 VEE API 1. r_vee 2. r_vee.c 3. MPU C src/targets/ a. RX62x r_vee_rx62x.c r_vee/src/targets/rx62x 4. r_vee 5. r_vee/src 6. r_vec_config_reference.h ref r_vee_config.h 7. r_vee_config.h 8. VEE API r_vec_if.h #include R01AN0724JU0170 Rev.1.70 Page 15 of 33

2.17 FlashError() API API MCU void FlashError(void); R01AN0724JU0170 Rev.1.70 Page 16 of 33

3. API 3.1 API R_VEE_Read() R_VEE_Write() R_VEE_Defrag() R_VEE_Erase() R_VEE_GetState() R_VEE_ReleaseState() R_VEE_GenerateCheck() R_VEE_Open() R_VEE_Control() R_VEE_GetVersion() VEE VEE VEE VEE VEE VEE VEE check VEE VEE VEE R01AN0724JU0170 Rev.1.70 Page 17 of 33

3.2 R_VEE_Read VEE uint8_t R_VEE_Read(vee_record_t * vee_temp); vee_temp. VEE_SUCCESS: VEE_NOT_FOUND: VEE_BUSY: VEE_INVALID_INPUT: VEE r_vee_if.h r_vee.c VEE ID VEE VEE VEE VEE VEE_BUSY vee_record_t example_record; /* We want to find VEE Record 1 */ example_record.id = 1; /* Search VEE for record */ if (VEE_SUCCESS == R_VEE_Read(&example_record)) /* Send data */ for (loop = 0; loop < example_record.size; loop++) TransmitByte(example_record.pData[loop]);... } } : VEE VEE VEE MCU VEE ID VEE VEE R01AN0724JU0170 Rev.1.70 Page 18 of 33

3.3 R_VEE_Write VEE uint8_t R_VEE_Write(vee_record_t * vee_temp); vee_temp VEE_SUCCESS: VEE_BUSY: VEE_NO_ROOM: VEE_FAILURE: VEE_INVALID_INPUT: VEE R_VEE_Erase() r_vee_if.h r_vee.c VEE VEE ID size check pdata VEE_SUCCESS VEE VEE R_VEE_GetState() VEE vee_record_t example_record; /* Fill in data for VEE Record 1 */ example_record.id = 1; example_record.size = sizeof(record_data); example_record.pdata = &record_data[0]; /* Generate check field */ R_VEE_GenerateCheck(&example_record); /* Write record */ if (VEE_SUCCESS == R_VEE_Write(&example_record))... } R01AN0724JU0170 Rev.1.70 Page 19 of 33

: VEE API VEE_BUSY R01AN0724JU0170 Rev.1.70 Page 20 of 33

3.4 R_VEE_Defrag VEE uint8_t R_VEE_Defrag(uint8_t sector); sector VEE ID VEE_SUCCESS: VEE_BUSY: VEE_NOT_FOUND: VEE_INVALID_INPUT: VEE ACTIVE ID r_vee_if.h r_vee.c R_VEE_Write() VEE VEE_SUCCESS VEE VEE R_VEE_GetState() uint8_t sector; for (sector = 0; sector < VEE_NUM_SECTORS; sector++) /* Defrag sector */ ret = R_VEE_Defrag(sector); /* Check result */ if (VEE_SUCCESS == ret)... } } /* Wait for defrag to finish */... : VEE API VEE_BUSY R01AN0724JU0170 Rev.1.70 Page 21 of 33

3.5 R_VEE_Erase VEE uint8_t R_VEE_Erase(uint8_t sector); sector VEE ID VEE_SUCCESS: VEE_BUSY: VEE_FAILURE: VEE_INVALID_INPUT: VEE ID r_vee_if.h r_vee.c VEE VEE VEE VEE_SUCCESS VEE VEE VEE VEE VEE_SUCCESS VEE VEE R_VEE_GetState() uint8_t sector; /* Erase all data from VEE */ for (sector = 0; sector < VEE_NUM_SECTORS; sector++) /* Erase sector */ ret = R_VEE_Erase(sector); /* Check result */ if (VEE_SUCCESS == ret)... } } /* Wait for erase to finish */... /* VEE is empty */ : VEE VEE VEE VEE R01AN0724JU0170 Rev.1.70 Page 22 of 33

R_VEE_Read() R01AN0724JU0170 Rev.1.70 Page 23 of 33

3.6 R_VEE_GetState VEE vee_states_t R_VEE_GetState(void); VEE VEE 2.11.2 r_vee_if.h r_vee.c VEE VEE uint8_t sector; /* Erase all data from VEE */ for (sector = 0; sector < VEE_NUM_SECTORS; sector++) /* Erase sector */ ret = R_VEE_Erase(sector); /* Check result */ if (VEE_SUCCESS == ret)... } } while (VEE_READY!= R_VEE_GetState()) /* Wait for erase to finish */ } /* VEE is empty */ : R01AN0724JU0170 Rev.1.70 Page 24 of 33

3.7 R_VEE_ReleaseState VEE VEE_READY VEE uint8_t R_VEE_ReleaseState(void); VEE_SUCCESS: VEE_FAILURE: VEE VEE_READING VEE_READY VEE_READING r_vee_if.h r_vee.c VEE VEE R_VEE_Read() VEE 2.14 VEE VEE_FAILURE. vee_record_t example_record; uint8_t ret; /* We want to find VEE Record 1 */ example_record.id = 1; /* Search VEE for record */ if (VEE_SUCCESS == R_VEE_Read(&example_record)) /* Read data and use it */... } /* Release state so other VEE operations can occur */ ret = R_VEE_ReleaseState(); : R01AN0724JU0170 Rev.1.70 Page 25 of 33

3.8 R_VEE_GenerateCheck check uint8_t R_VEE_GenerageCheck(vee_record_t * record); record check VEE_SUCCESS: VEE_FAILURE: check r_vee_if.h MCU r_vee_rx62x.c check VEE VEE CRC vee_record_t example_record; /* Fill in data for VEE Record 1 */ example_record.id = 1; example_record.size = sizeof(record_data); example_record.pdata = &record_data[0]; /* Generate check field */ R_VEE_GenerateCheck(&example_record); /* Write record */ if (VEE_SUCCESS == R_VEE_Write(&example_record))... } : CRC vee_check_record() R_VEE_GenerateCheck() check vee_check_record() VEE vee_check_record() R01AN0724JU0170 Rev.1.70 Page 26 of 33

3.9 R_VEE_Open VEE uint8_t R_VEE_Open(void); VEE_SUCCESS: r_vee_if.h r_vee.c VEE VEE /* Initialize the Virtual EEPROM */ R_VEE_Open(); : R01AN0724JU0170 Rev.1.70 Page 27 of 33

3.10 R_VEE_Control VEE uint8_t R_VEE_Control(vee_command_t command, void * pdata); command pdata VEE_SUCCESS: VEE_BUSY: VEE VEE_INVALID_INPUT: r_vee_if.h r_vee.c VEE r_vee_if.h vee_command_t typedef 2.11.3 /* A data flash access violation occurred and the VEE is in a locked state. Reset the VEE to start recovery. */ if (VEE_SUCCESS == R_VEE_Control(VEE_CMD_RESET, (void *)FIT_NO_PTR)) /* VEE has been reset. The next write or defrag of the VEE will start any needed recovery operations. */... } : FIT r_bsp pdata FIT_NO_PTR R01AN0724JU0170 Rev.1.70 Page 28 of 33

3.11 R_VEE_GetVersion VEE uint32_t R_VEE_GetVersion(void); VEE r_vee_if.h r_vee.c API 2 2 4.25 0x00040019 uint32_t cur_version; /* Get version of installed VEE. */ cur_version = R_VEE_GetVersion(); /* Check to make sure version is new enough for this application s use. */ if (MIN_VERSION > cur_version) /* This Virtual EEPROM version is not new enough and does not have XXX feature that is needed by this application. Alert user. */... } : r_vee.c R01AN0724JU0170 Rev.1.70 Page 29 of 33

4. HEW E2Studio HEW HEW E2Studio E2Studio VEE RSKRX62N RSKRX63N RDKRX63N RSKRX62G RSKRX63T_144PIN 4.1 HEW RSKRX62T RSKRX630 RDKRX62N RSKRX63T_64PIN RSKRX210 HEW VEE 1. HEW 2. Set as Current Project 3. VEE API MCU r_bsp r_bsp r_bsp plotform.h r_bsp platform.h RSK+RX63N./board/rskrx63n/r_bsp.h #include #include 4. R01AN0724JU0170 Rev.1.70 Page 30 of 33

4.2 E2Studio E2Studio HEW E2Studio 1. E2Studio Workspace e2studio *.exe 2. Extract 3. E2Studio 4. File >> Import File Import 5. General >> Existing Projects into Workspace Next 6. Select archive file browse 7. E2Studio zip R01AN0724JU0170 Rev.1.70 Page 31 of 33

8. Finish RDKRX63N 9. VEE API MCU r_bsp r_bsp r_bsp plotform.h r_bsp platform.h RSK+RX63N./board/rskrx63n/r_bsp.h #include #include 10. R01AN0724JU0170 Rev.1.70 Page 32 of 33

http://japan.renesas.com http://japan.renesas.com/contact/ R01AN0724JU0170 Rev.1.70 Page 33 of 33

Rev. 1.00 2011.07.15 1.50 2012.01.03 RX63x VEE 1.60 2012.09.14 R_VEE_GenerateCheck() API FIT v0.7 1.70 FIT v1.0 API R_VEE_Open() R_VEE_Control()API R_VEE_GetVersion() HEW E2Studio A-1

1. CMOS LSILSI 2. LSI 3. 4. 5.

1. 2. 3. 4. 5. OA AV 6. 7. 8. RoHS 9. 10. 11. 1. 2. http://www.renesas.com 100-00042-6-2 (03)5201-5307 http://japan.renesas.com/contact/ 2013 Renesas Electronics Corporation. All rights reserved. Colophon 2.0