📄 program.h
字号:
//////**************************************************************************************
//////读取存储及擦除
extern uint32 AddrFlash;
extern uint32 file_len;
extern int32 meu_len;
extern uint8 file_id[20];
#define Hzk_position 0xf800000
#define meu_position 0xfd00000
/////////////////////////////////
/////擦除
////////////////////////////////
void erase(uint32 erase_position)
{uint8 i;
for(i=0;i<0xff;i++)
Flash_Erase(erase_position>>20,i);
}
//////////////////////////////////
/////////存储1
///////////////////////////////////
void program(uint32 position)
{ while(1)
{if(RavOk==1){
if(Rbank==1)
Flash_Program((position|(AddrFlash<<8)),RBuff0,256);
else
Flash_Program((position|(AddrFlash<<8)),RBuff1,256);
AddrFlash +=1;
RavOk=0;
}
if(uart_count==file_len)
break;
}
if(Rbank==0)
Flash_Program((position|(AddrFlash<<8)),RBuff0,256);
else
Flash_Program((position|(AddrFlash<<8)),RBuff1,256);
}
/////////////////////////////////
///////////存储
////////////////////////////////////
void program_all()
{uint8 i;
uint8 u=1;
rcv_num=0;
file_len=0;
while(u)
{if(uart_count==16)
{uart_count=0;
rcv_num=0;
u=0;
}
}///////////////////////////////////////////////////////////
for(i=0;i<20;i++)
file_id[i]=RBuff0[i];
if(file_id[4]==1)
{erase(meu_position);
Flash_Program((meu_position|(0xffe<<8)),RBuff0,20);
}
if(file_id[4]==2)
{erase(Hzk_position);
Flash_Program((Hzk_position|(0xffe<<8)),RBuff0,20);
}
file_len=(file_id[12])+((file_id[11])*10)+((file_id[10])*100)+((file_id[9])*1000)+
((file_id[8])*10000)+((file_id[7])*100000)+((file_id[6])*1000000)+((file_id[5])*10000000);
UART0_SendByte('o');
UART0_SendByte('k');
uart_count=0;
rcv_num=0;
if(file_id[4]==1)
while(1)
{program(meu_position);break;}
if(file_id[4]==2)
while(1)
{program(Hzk_position);break;}
}
/////////////////////////////////////////////////////////////
///***********************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -