mirror of
https://github.com/pvvx/RTL00_WEB.git
synced 2025-01-14 07:35:17 +00:00
137 lines
No EOL
5.1 KiB
C
137 lines
No EOL
5.1 KiB
C
#include "diag.h"
|
|
#include "hal_efuse.h"
|
|
|
|
void main(void)
|
|
{
|
|
// There are three blocks, each block has 32 bytes.
|
|
u8 CodeWordNum; // 0~3, 0: 1~8 bytes, 1: 9~16 bytes, 2: 17~24 bytes, 3: 25~32 bytes
|
|
u8 WordEnable; // 0x0~0xF, 4bits, 1 bit is for 2 bytes, Max: 8 bytes.
|
|
// bit0: 1,2 byte , bit1: 3,4 byte , bit2: 5,6 byte , bit3: 7,8 byte
|
|
u8 content[32]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
|
|
u8 i;
|
|
// Block 1
|
|
u8 text1_0[8] = {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07};
|
|
u8 text1_1[8] = {0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F};
|
|
u8 text1_2[8] = {0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17};
|
|
u8 text1_3[8] = {0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F};
|
|
// Block 2
|
|
u8 text2_0[8] = {0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27};
|
|
u8 text2_1[8] = {0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F};
|
|
u8 text2_2[8] = {0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37};
|
|
u8 text2_3[8] = {0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F};
|
|
// Block 3
|
|
u8 text3_0[8] = {0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47};
|
|
u8 text3_1[8] = {0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F};
|
|
u8 text3_2[8] = {0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57};
|
|
u8 text3_3[8] = {0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F};
|
|
|
|
u8 bWriteBlock1 = 0;
|
|
u8 bWriteBlock2 = 0;
|
|
u8 bWriteBlock3 = 0;
|
|
|
|
DBG_8195A("\nefuse user block: Test Start\n");
|
|
//------------------------------------------------//
|
|
// efuse user block 1 //
|
|
//------------------------------------------------//
|
|
// write efuse user block 1
|
|
if(bWriteBlock1){
|
|
// write 1~8 bytes in block 1
|
|
CodeWordNum = 0;
|
|
WordEnable = 0xF; // max: 8 bytes
|
|
if(WriteEfuseContant1(CodeWordNum, WordEnable, text1_0) == _SUCCESS);
|
|
DBG_8195A("write 1~8 bytes of block 1 success.\n");
|
|
// write 9~16 bytes in block 1
|
|
CodeWordNum = 1;
|
|
WordEnable = 0xF; // max: 8 bytes
|
|
if(WriteEfuseContant1(CodeWordNum, WordEnable, text1_1) == _SUCCESS);
|
|
DBG_8195A("write 9~16 bytes of block 1 success.\n");
|
|
// write 17~24 bytes in block 1
|
|
CodeWordNum = 2;
|
|
WordEnable = 0xF; // max: 8 bytes
|
|
if(WriteEfuseContant1(CodeWordNum, WordEnable, text1_2) == _SUCCESS);
|
|
DBG_8195A("write 17~24 bytes of block 1 success.\n");
|
|
// write 25~32 bytes in block 1
|
|
CodeWordNum = 3;
|
|
WordEnable = 0xF; // max: 8 bytes
|
|
if(WriteEfuseContant1(CodeWordNum, WordEnable, text1_3) == _SUCCESS);
|
|
DBG_8195A("write 25~32 bytes of block 1 success.\n");
|
|
}
|
|
// read efuse user block 1, read 32 bytes once.
|
|
_memset(content, 0, 32);
|
|
ReadEfuseContant1(content);
|
|
DBG_8195A("efuse user block 1 :\n");
|
|
for(i=0; i<32; i++){
|
|
DBG_8195A("[%d]\t0x%02x\n", i+1, content[i]);
|
|
}
|
|
|
|
//------------------------------------------------//
|
|
// efuse user block 2 //
|
|
//------------------------------------------------//
|
|
// write efuse user block 2
|
|
if(bWriteBlock2){
|
|
// write 1~8 bytes in block 2
|
|
CodeWordNum = 0;
|
|
WordEnable = 0xF; // max: 8 bytes
|
|
if(WriteEfuseContant2(CodeWordNum, WordEnable, text2_0) == _SUCCESS);
|
|
DBG_8195A("write 1~8 bytes of block 2 success.\n");
|
|
// write 9~16 bytes in block 2
|
|
CodeWordNum = 1;
|
|
WordEnable = 0xF; // max: 8 bytes
|
|
if(WriteEfuseContant2(CodeWordNum, WordEnable, text2_1) == _SUCCESS);
|
|
DBG_8195A("write 9~16 bytes of block 2 success.\n");
|
|
// write 17~24 bytes in block 2
|
|
CodeWordNum = 2;
|
|
WordEnable = 0xF; // max: 8 bytes
|
|
if(WriteEfuseContant2(CodeWordNum, WordEnable, text2_2) == _SUCCESS);
|
|
DBG_8195A("write 17~24 bytes of block 2 success.\n");
|
|
// write 25~32 bytes in block 2
|
|
CodeWordNum = 3;
|
|
WordEnable = 0xF; // max: 8 bytes
|
|
if(WriteEfuseContant2(CodeWordNum, WordEnable, text2_3) == _SUCCESS);
|
|
DBG_8195A("write 25~32 bytes of block 2 success.\n");
|
|
}
|
|
// read efuse user block 2, read 32 bytes once.
|
|
_memset(content, 0, 32);
|
|
ReadEfuseContant2(content);
|
|
DBG_8195A("efuse user block 2 :\n");
|
|
for(i=0; i<32; i++){
|
|
DBG_8195A("[%d]\t0x%02x\n", i+1, content[i]);
|
|
}
|
|
|
|
//------------------------------------------------//
|
|
// efuse user block 3 //
|
|
//------------------------------------------------//
|
|
// write efuse user block 3
|
|
if(bWriteBlock3){
|
|
// write 1~8 bytes in block 3
|
|
CodeWordNum = 0;
|
|
WordEnable = 0xF; // max: 8 bytes
|
|
if(WriteEfuseContant3(CodeWordNum, WordEnable, text3_0) == _SUCCESS);
|
|
DBG_8195A("write 1~8 bytes of block 3 success.\n");
|
|
// write 9~16 bytes in block 3
|
|
CodeWordNum = 1;
|
|
WordEnable = 0xF; // max: 8 bytes
|
|
if(WriteEfuseContant3(CodeWordNum, WordEnable, text3_1) == _SUCCESS);
|
|
DBG_8195A("write 9~16 bytes of block 3 success.\n");
|
|
// write 17~24 bytes in block 3
|
|
CodeWordNum = 2;
|
|
WordEnable = 0xF; // max: 8 bytes
|
|
if(WriteEfuseContant3(CodeWordNum, WordEnable, text3_2) == _SUCCESS);
|
|
DBG_8195A("write 17~24 bytes of block 3 success.\n");
|
|
// write 25~32 bytes in block 3
|
|
CodeWordNum = 3;
|
|
WordEnable = 0xF; // max: 8 bytes
|
|
if(WriteEfuseContant3(CodeWordNum, WordEnable, text3_3) == _SUCCESS);
|
|
DBG_8195A("write 25~32 bytes of block 3 success.\n");
|
|
}
|
|
// read efuse user block 3, read 32 bytes once.
|
|
_memset(content, 0, 32);
|
|
ReadEfuseContant3(content);
|
|
DBG_8195A("efuse user block 3 :\n");
|
|
for(i=0; i<32; i++){
|
|
DBG_8195A("[%d]\t0x%02x\n", i+1, content[i]);
|
|
}
|
|
|
|
DBG_8195A("efuse user block: Test Done\n");
|
|
for(;;);
|
|
} |