📄 boot_5402.c
字号:
#include "C5402.h"
#include "port_5402.h"
#include "flash.c"
#include "boot_dat.h"
typedef unsigned int U16;
typedef volatile ioport unsigned IOPORT;
U16 val;
//-----------5402 Registers VAL------------
#define PMST_VAL 0x00A0
#define SWWSR_VAL 0x7FFF
#define SWCR_VAL 0x0000
#define BSCR_VAL 0x0006
#define CLKMD_VAL 0x4007
//9007 pll*10 4007 pll*5 1007 pll*2 片上初始硬件clk*5 晶振20m 设置成40m 时钟周期25ns
//---------------Init 5402 -----------------
void Init_board(void)
{
CLKMD=0x0000;
while(CLKMD&0x0001);
CLKMD=CLKMD_VAL;
PMST=PMST_VAL;
SWWSR=SWWSR_VAL;
SWCR=SWCR_VAL;
BSCR=BSCR_VAL;
}
//---------------main --------------------
void main()
{
U16 i,temp;
Init_board();
Flash_Ready();
Flash_Erase_ALL;
// Flash_Write_OneWord(0x8000,0x3FF6);
for(i=0;i<=0x01A9;i++) // 0x01A9为boot表的长度
{
Flash_Write_OneWord((0x8000+i,Flash_data[i]));
}
Flash_Write_OneWord(0xFFFF,0x8000);
val = Flash_Read_OneWord(0x00);
temp = Flash_Read_OneWord(0x00);
temp = Flash_Read_OneWord(0x01);
temp = Flash_Read_OneWord(0x02);
while(1);
exit(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -