EEPROM
TWELITE 無線マイコン内蔵の EEPROM を利用する手続きです。
最大 64x56=3584 バイト利用可能です。

定義

1
#include "eeprom_6x.h"
Copied!
EEPROM_6X_USER_SIZE
利用可能な最大バイト数 (64x60 バイト, 残領域はシステム予約です)
EEPROM_6X_SEGMENT_SIZE
EEPROM のセグメントサイズ (64バイト)
EEPROM_6X_USER_SEGMENTS
EEPROM のセグメント数

関数

EEP_6x_bRead()

EEPROM の読み出しを行います。
1
bool_t EEP_6x_bRead(uint16 u16StartAddr, uint16 u16Bytes, uint8 *pu8Buffer);
Copied!

引数

名前
詳細
uint16
u16StartAddr
読み出し開始アドレス(バイト)。
uint16
u16Bytes
読み出しバイト数。
uint8 *
pu8Buffer
読み出しデータを格納するバッファ。

戻り値

詳細
boot_t
TRUE なら読み出しは成功、FALSE なら失敗。

EEP_6x_bWrite()

EEPROM に書き込みます。
1
bool_t EEP_6x_bWrite(uint16 u16StartAddr, uint16 u16Bytes, uint8 *pu8Buffer);
Copied!

引数

名前
詳細
uint16
u16StartAddr
書き込み開始アドレス(バイト)。
uint16
u16Bytes
書き込みバイト数。
uint8 *
pu8Buffer
書き込みデータを格納するバッファ。

戻り値

詳細
boot_t
TRUE なら読み出しは成功、FALSE なら失敗。

サンプル

1
#include "eeprom_6x.h"
2
3
// read
4
if (EEP_6x_bRead(0, sizeof(tsSaveDat), (uint8 *)psSaveDat)) {
5
bRet = TRUE;
6
}
7
8
// write
9
psSaveDat->u32Magic = FLASH_MAGIC_NUMBER;
10
psSaveDat->u8CRC = u8CCITT8((uint8*)&(psSaveDat->sData), sizeof(tsSaveDat));
11
if (EEP_6x_bWrite(0, sizeof(tsSaveDat), (uint8 *)psSaveDat)) {
12
bRet = TRUE;
13
}
14
15
// clean up
16
uint8 au8buff[EEPROM_6X_SEGMENT_SIZE];
17
memset (au8buff, 0xFF, EEPROM_6X_SEGMENT_SIZE);
18
bRet = TRUE;
19
for (i = 0; i < EEPROM_6X_USER_SEGMENTS; i++) {
20
bRet &= EEP_6x_bWrite(i * EEPROM_6X_SEGMENT_SIZE,
21
EEPROM_6X_SEGMENT_SIZE,
22
au8buff);
23
}
Copied!
最終更新 7mo ago