📄 main3.objdump
字号:
nr_flash_write((unsigned short*)na_cfi_flash_0_base,Conf_Controlstage_Address_Flash+base_temp1/2+1+i,((Conf_Controlstage_Address_Buffer[1+i*2])+(Conf_Controlstage_Address_Buffer[1+i*2+1]<<8)));
// nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Controlstage_Address_Flash+base_temp1/2+1,(void*)&Conf_Controlstage_Address_Buffer[1],20);
nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Controlstage_Address_Flash,Conf_Controlstage_Address_Backup,base_temp1/2);
nr_flash_write((unsigned short*)na_cfi_flash_0_base,Conf_Controlstage_Address_Flash+base_temp1/2,temp_data);
nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Controlstage_Address_Flash+base_temp2/2,Conf_Controlstage_Address_Backup+base_temp2/2+1,(1312-(int)base_temp2)/2);
}
}
if(*(Conf_Phase1_Address_Backup+4500)!=0x00)
nr_flash_write((unsigned short*)na_cfi_flash_0_base,Conf_Phase1_Address_Flash+4500,0x00);
nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Phase1_Address_Flash,Conf_Phase1_Address_Backup,288);
nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Stage_Address_Flash,Conf_Stage_Address_Backup,1568);
nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Daydesign_Address_Flash,Conf_Daydesign_Address_Backup,1184);
nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Daydesigntable_Address_Flash,Conf_Daydesigntable_Address_Backup,30);
}
if(CheckData[4]==0x98)
{
flag=nr_flash_erase_sector_4kB((unsigned short*)na_cfi_flash_0_base,(unsigned short*)FLASH_BASE_ADD);
for(i=0; i<74; i++)
{
Conf_Daydesign_Address_Buffer[i]=CheckData[5+i];
}
if(CheckData[5]==1)
{
base_temp1=74;
nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Daydesign_Address_Flash,(void*)&Conf_Daydesign_Address_Buffer[0],37);
nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Daydesign_Address_Flash+base_temp1/2,Conf_Daydesign_Address_Backup+base_temp1/2,1147);
}
else
if(CheckData[5]==32)
{
base_temp1=74*31-1;
nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Daydesign_Address_Flash+base_temp1/2+1,(void*)&Conf_Daydesign_Address_Buffer[0],37);
nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Daydesign_Address_Flash,Conf_Daydesign_Address_Backup,1147);
}
else
{
base_temp1=74*(CheckData[5]-1);
base_temp2=74+base_temp1;
nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Daydesign_Address_Flash+base_temp1/2,(void*)&Conf_Daydesign_Address_Buffer[0],37);
nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Daydesign_Address_Flash,Conf_Daydesign_Address_Backup,(int)base_temp1/2);
nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Daydesign_Address_Flash+base_temp2/2,Conf_Daydesign_Address_Backup+base_temp2/2,(2368-(int)base_temp2)/2);
}
if(*(Conf_Phase1_Address_Backup+4500)!=0x00)
nr_flash_write((unsigned short*)na_cfi_flash_0_base,Conf_Phase1_Address_Flash+4500,0x00);
nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Phase1_Address_Flash,Conf_Phase1_Address_Backup,288);
nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Stage_Address_Flash,Conf_Stage_Address_Backup,1568);
nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Controlstage_Address_Flash,Conf_Controlstage_Address_Backup,640);
nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Daydesigntable_Address_Flash,Conf_Daydesigntable_Address_Backup,30);
}
if(CheckData[4]==0x99)
{
flag=nr_flash_erase_sector_4kB((unsigned short*)na_cfi_flash_0_base,(unsigned short*)FLASH_BASE_ADD);
for(i=0; i<60; i++)
{
Conf_Daydesigntable_Address_Buffer[i]=CheckData[5+i];
}
if(*(Conf_Phase1_Address_Backup+4500)!=0x00)
nr_flash_write((unsigned short*)na_cfi_flash_0_base,Conf_Phase1_Address_Flash+4500,0x00);
nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Daydesigntable_Address_Flash,(void*)&Conf_Daydesigntable_Address_Buffer[0],30);
nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Phase1_Address_Flash,Conf_Phase1_Address_Backup,288);
nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Stage_Address_Flash,Conf_Stage_Address_Backup,1568);
nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Controlstage_Address_Flash,Conf_Controlstage_Address_Backup,640);
nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Daydesign_Address_Flash,Conf_Daydesign_Address_Backup,1184);
}
if(CheckData[4]==0x94)
{
flag=nr_flash_erase_sector_4kB((unsigned short*)na_cfi_flash_0_base,(unsigned short*)FLASH_BASE_ADD);
for(i=0; i<288; i++)
{
if(CheckData[5]==0)
{
Conf_Phase1_Address_Buffer[i]=CheckData[6+i];
}
else
{
Conf_Phase2_Address_Buffer[i]=CheckData[6+i];
}
}
if(CheckData[5]==0)
{
nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Phase1_Address_Flash,(void*)&Conf_Phase1_Address_Buffer[0],144);
nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Phase2_Address_Flash,Conf_Phase2_Address_Backup,144);
}
else
{
for(i=0; i<144; i++)
{
nr_flash_write((unsigned short*)na_cfi_flash_0_base,Conf_Phase2_Address_Flash+i,((Conf_Phase2_Address_Buffer[i*2])+(Conf_Phase2_Address_Buffer[i*2+1]<<8)));
}
// nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Phase2_Address_Flash,(void*)&Conf_Phase2_Address_Buffer[0],144);
nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Phase1_Address_Flash,Conf_Phase1_Address_Backup,144);
}
nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Stage_Address_Flash,Conf_Stage_Address_Backup,1568);
nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Controlstage_Address_Flash,Conf_Controlstage_Address_Backup,640);
nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Daydesign_Address_Flash,Conf_Daydesign_Address_Backup,1184);
nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Daydesigntable_Address_Flash,Conf_Daydesigntable_Address_Backup,30);
if(*(Conf_Phase1_Address_Backup+4500)!=0x00)
nr_flash_write((unsigned short*)na_cfi_flash_0_base,Conf_Phase1_Address_Flash+4500,0x00);
}
nr_flash_erase_sector_4kB((unsigned short*)na_cfi_flash_0_base,(unsigned short*)FLASH_BASE_ADD_bake);
nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Daydesigntable_Address_Backup,Conf_Daydesigntable_Address_Flash,30);
nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Phase1_Address_Backup,Conf_Phase1_Address_Flash,144);
nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Phase2_Address_Backup,Conf_Phase2_Address_Flash,144);
nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Stage_Address_Backup,Conf_Stage_Address_Flash,1568);
nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Controlstage_Address_Backup,Conf_Controlstage_Address_Flash,640);
nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Daydesign_Address_Backup,Conf_Daydesign_Address_Flash,1184);
if(*(Conf_Phase1_Address_Backup+4500)!=0x00)
nr_flash_write((unsigned short*)na_cfi_flash_0_base,Conf_Phase1_Address_Backup+4500,0x00);
}
/******************************************************************************
经过串口发送cpu的数据
********************************************************************************/
void Write_Comm(np_uart* uartbase)
{
int i,j;
unsigned char Trans_Data[100];
unsigned char Trans_Data_Final[100];
unsigned char* Now_Read_Tail;
int datanumber=0;
unsigned char datanumber_final=0;
unsigned short crcresult=0;
unsigned char* p;
unsigned char Data_Final=0;
unsigned char Data_Final_Number=0;
Trans_Data[0]=Parameter[0];
Trans_Data[1]=Parameter[1];
Trans_Data[2]=0xcc;
Trans_Data[3]=0xc1;
datanumber=4;
Now_Ram_Read_Add=(unsigned char*)((unsigned int)BASE_ADD+(unsigned int)((*Tx_Head_High[Transmit_Number])<<8)+(unsigned int)(*Tx_Head_Low[Transmit_Number]));
Now_Read_Tail=(unsigned char*)((unsigned int)BASE_ADD+(unsigned int)((*Tx_Tail_High[Transmit_Number])<<8)+(unsigned int)(*Tx_Tail_Low[Transmit_Number]));
if((unsigned int)Now_Ram_Read_Add < (BASE_ADD+0x80) || (unsigned int)Now_Ram_Read_Add > (BASE_ADD+0x7f1))
nr_uart_txstring("the cpu giving address is error!");
else
{
while(Now_Ram_Read_Add<=Now_Read_Tail)
{
Trans_Data[datanumber]=*Now_Ram_Read_Add;
Check_Ram_Read();
datanumber++;
}
p=&Trans_Data[0];
crcresult=Cal_Crc(p,(unsigned int)datanumber);
Trans_Data[datanumber++]=crcresult>>8;
Trans_Data[datanumber++]=crcresult;
Trans_Data[datanumber++]=0x7e;
for(i=0;i<datanumber;i++)
{
for(j=0;j<8;j++)
{
Add_Bit=(Trans_Data[i]>>(7-j))%2;
Add_transparences();
Data_Final=Data_Final+(Add_Bit<<(7-Data_Final_Number++));
if((Add_transparence_valid==1) && (i!=(datanumber-1)))
{
Data_Final_Number++;
}
if(Data_Final_Number==8)
{
Trans_Data_Final[datanumber_final++]=Data_Final;
Data_Final_Number=0;
Data_Final=0;
}
}
}
if(Data_Final_Number!=0)
{
Trans_Data_Final[datanumber_final++]=Data_Final;
}
uartbase->np_uarttxdata=0x7e;
delay(2000);
for(i=0;i<datanumber_final;i++)
{
uartbase->np_uarttxdata=Trans_Data_Final[i];
delay(2000);
}
}
}
/****************************************************************************
发送流量包的的函数
*****************************************************************************/
void Transmit_Flow_Package(np_uart* uartbase)
{
unsigned char* Now_Read_Add;
unsigned char* Now_Read_End;
unsigned char data[90];
unsigned short result;
unsigned char Data_Final[100];
unsigned char tempdata=0;
int Data_Final_Number=0;
int datanumber=0;
int i,j;
Now_Read_Add=(unsigned char*)Now_Flow_Information_Add;
Now_Read_End=(unsigned char*)(((unsigned long)Now_Flow_Information_Add/16384+1)*16384);
data[0]=Parameter[0];
data[1]=Parameter[1];
data[2]=0xcc;
data[3]=0xc1;
data[4]=0xcd;
while(Now_Read_Add!=Now_Read_End)
{
for(i=71;i<0;i--)
{
data[i+4]=*Now_Read_Add;
if((unsigned long)--Now_Read_Add==(unsigned long)Flow_Information_Base)
Now_Read_Add=(unsigned char*)Flow_Information_End;
}
result=Cal_Crc(&data[0],76);
data[76]=(result>>8);
data[77]=result;
data[78]=0x7e;
for(i=0;i<79;i++)
{
for(j=0;j<8;j++)
{
Add_Bit=(data[i]>>(7-j))%2;
Add_transparences();
tempdata=tempdata+(Add_Bit<<(7-Data_Final_Number++));
if((Add_transparence_valid==1) && (i!=78))
{
Data_Final_Number++;
}
if(Data_Final_Number==8)
{
Data_Final[datanumber++]=tempdata;
Data_Final_Number=0;
tempdata=0;
}
}
}
if(Data_Final_Number!=0)
{
Data_Final[datanumber++]=tempdata;
}
if(Now_Read_Add-71<Now_Read_End)
Now_Read_Add=Now_Read_End;
uartbase->np_uarttxdata=0x7e;
delay(2000);
for(i=0;i<datanumber;i++)
{
uartbase->np_uarttxdata=Data_Final[i];
delay(2000);
}
}
}
/****************************************************************************
发送查询信息的函数
*****************************************************************************/
void Transmit_Query_Package(np_uart* uartbase,unsigned char query_mark)
{
unsigned short result;
unsigned char data[300];
unsigned char Data_Final[300];
unsigned char tempdata=0;
int Data_Final_Number=0;
int datanumber=0;
int cycle_number=0;
int i,j;
data[0]=Parameter[0];
data[1]=Parameter[1];
data[2]=0xcc;
data[3]=0xc1;
if(query_mark==0x84)
{
if(CheckData[5]==0)
{
data[5]=0;
memcpy(&data[6],Conf_Phase1_Address_Flash,288);
}
else
{
data[5]=1;
memcpy(&data[6],Conf_Phase2_Address_Flash,288);
}
data[4]=0xc4;
result=Cal_Crc(&data[0],294);
data[294]=(result>>8);
data[295]=result;
data[296]=0x7e;
cycle_number=297;
}
if(query_mark==0x85)
{
memcpy(&data[5],(unsigned char*)Conf_Stage_Address_Flash+(CheckData[5]-1)*98,98);
data[4]=0xc5;
result=Cal_Crc(&data[0],103);
data[103]=(result>>8);
data[104]=result;
data[105]=0x7e;
cycle_number=106;
}
if(query_mark==0x86)
{
memcpy(&data[5],(unsigned char*)Conf_Controlstage_Address_Flash+(CheckData[5]-1)*41,41);
data[4]=0xc6;
result=Cal_Crc(&data[0],46);
data[46]=(result>>8);
data[47]=result;
data[48]=0x7e;
cycle_number=49;
}
if(query_mark==0x88)
{
memcpy(&data[5],(unsigned char*)Conf_Daydesign_Address_Flash+(CheckData[5]-1)*74,74);
data[4]=0xc8;
result=Cal_Crc(&data[0],79);
data[79]=(result>>8);
data[80]=result;
data[81]=0x7e;
cycle_number=82;
}
if(query_mark==0x89)
{
memcpy(&data[5],Conf_Daydesigntable_Address_Flash,60);
data[4]=0xc9;
result=Cal_Crc(&data[0],65);
data[65]=(result>>8);
data[66]=result;
data[67]=0x7e;
cycle_number=68;
}
for(i=0;i<cycle_number;i++)
{
for(j=0;j<8;j++)
{
Add_Bit=(data[i]>>(7-j))%2;
Add_transparences();
tempdata=tempdata+(Add_Bit<<(7-Data_Final_Number++));
if((Add_transparence_valid==1) && (i!=cycle_number-1))
{
Data_Final_Number++;
}
if(Data_Final_Number==8)
{
Data_Final[datanumber++]=tempdata;
Data_Final_Number=0;
tempdata=0;
}
}
}
if(Data_Final_Number!=0)
{
Data_Final[datanumber++]=tempdata;
}
uartbase->np_uarttxdata=0x7e;
delay(2000);
for(i=0;i<datanumber;i++)
{
uartbase->np_uarttxdata=Data_Final[i];
delay(2000);
}
}
/*****************************************************************************
发送应答信息的函数
*****************************************************************************/
void Transmit_Answer_Package(np_uart* uartbase,unsigned char answer_mark)
{
unsigned short result;
unsigned char data[8]={Parameter[0],Parameter[1],0xCC,0xc1,0x0};
unsigned char Data_Final[100];
unsigned char tempdata=0;
int Data_Final_Number=0;
int datanumber=0;
int i,j;
for(i=0;i<100;i++)
{
Data_Final[i]=0;
}
if(answer_mark==0x94)
data[4]=0xd4;
if(answer_mark==0x95)
data[4]=0xd5;
if(answer_mark==0x96)
data[4]=0xd6;
if(answer_mark==0x98)
data[4]=0xd8;
if(answer_mark==0x99)
data[4]=0xd9;
result=Cal_Crc(&data[0],5);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -