⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fpga.c

📁 重要代码,FPGA CYCLONE FLASH DRIVER
💻 C
📖 第 1 页 / 共 5 页
字号:

	for(i=0;i<66;i++)
	{
		if((unsigned int)Now_Flow_Information_Add%0x10000==0 && Flash_Bit==0)
		{
			flag=nr_flash_erase_sector((unsigned short*)na_cfi_flash_0_base,(unsigned
short*)Now_Flow_Information_Add);
		}
		if(Flash_Bit==0)
		{
			temp=flow_data[i+4];
			Flash_Bit=1;
		}
		else
		{
			temp=temp+(flow_data[i+4]<<8);
			unlock_bypass_mode(fb);
			flag = nr_flash_write_bypass((unsigned short*)na_cfi_flash_0_base,(unsigned
short*)Now_Flow_Information_Add,temp);
			reset_bypass_mode(fb);
			Flash_Bit=0;
			if(++Now_Flow_Information_Add==Flow_Information_End)
			  Now_Flow_Information_Add=Flow_Information_Base;
		}
	}
//	temp=flow_data[68];
//	flag = nr_flash_write_bypass((unsigned short*)na_cfi_flash_0_base,(unsigned short*)Now_Flow_Information_Add,temp);
//	if(++Now_Flow_Information_Add==Flow_Information_End)
//	  Now_Flow_Information_Add=Flow_Information_Base;

	for(i=0;i<4;i++)
	{
		if(Flash_Bit==0)
		{
			temp=flow_data[i];
			Flash_Bit=1;
		}
		else
		{
			temp=temp+(flow_data[i]<<8);
			unlock_bypass_mode(fb);
			flag = nr_flash_write_bypass((unsigned short*)na_cfi_flash_0_base,(unsigned
short*)flow_add_temp,temp);
			reset_bypass_mode(fb);
			Flash_Bit=0;
			if(++flow_add_temp==Flow_Information_End)
			  flow_add_temp=Flow_Information_Base;
		}
	}
}




/*****************************************************************************

往FLASH写方案信息

******************************************************************************/

void Write_Flash()
{

	int i;
	int flag;
	unsigned short  base_temp1;
	unsigned short  base_temp2;
	unsigned short  temp_data;

	volatile unsigned short *fb  = (unsigned short *) na_cfi_flash_0_base;
	#ifdef nasys_main_flash
	  if (-1 == (int)fb)
	    fb = nasys_main_flash;
	#endif

	if((*(Conf_Phase1_Address_Flash+Flash_Mark_Address))==0x00 &&(*(Conf_Phase1_Address_Backup+Flash_Mark_Address))==0xffff)
	{
        flag=nr_flash_erase_sector_4kB((unsigned short*)na_cfi_flash_0_base,(unsigned short*)FLASH_BASE_ADD_bake);
        unlock_bypass_mode(fb);
        if(*(Conf_Phase1_Address_Backup+Flash_Mark_Address)!=0x00)
        nr_flash_write_bypass((unsigned short*)na_cfi_flash_0_base,Conf_Phase1_Address_Flash+Flash_Mark_Address,0x00);
		reset_bypass_mode(fb);
		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_Phase2_Address_Flash,Conf_Phase2_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_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);
        nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_YaoKong_Address_Flash,Conf_YaoKong_Address_Backup,4);
        nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_CurNumber_Address_Flash,Conf_CurNumber_Address_Backup,16);
        nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Solution_Address_Flash,Conf_Solution_Address_Backup,3360);
	}

	if(CheckData[4]==0x95)
	{
	    flag=nr_flash_erase_sector_4kB((unsigned short*)na_cfi_flash_0_base,(unsigned short*)FLASH_BASE_ADD);

		for(i=0; i<98; i++)
		{
	    	Conf_Stage_Address_Buffer[i]=CheckData[5+i];
		}
		if(CheckData[5]==1)
		{
	    	base_temp1=98;

	        unlock_bypass_mode(fb);
            for(i=0; i<49; i++)
            nr_flash_write_bypass((unsigned short*)na_cfi_flash_0_base,Conf_Stage_Address_Flash+i,((Conf_Stage_Address_Buffer[i*2])+(Conf_Stage_Address_Buffer[i*2+1]<<8)
));
            reset_bypass_mode(fb);

//     		nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Stage_Address_Flash,(void*)&Conf_Stage_Address_Buffer[0],49);
     		nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Stage_Address_Flash+base_temp1,Conf_Stage_Address_Backup+base_temp1,1219);
	    }
	    else
	      if(CheckData[5]==32)
	      {
	    	base_temp1=98*31;

	        unlock_bypass_mode(fb);
            for(i=0; i<49; i++)
            nr_flash_write_bypass((unsigned short*)na_cfi_flash_0_base,Conf_Stage_Address_Flash+base_temp1+i,((Conf_Stage_Address_Buffer[i*2])+(Conf_Stage_Address_Buffer[i*2+1]<<8)));
            reset_bypass_mode(fb);

//     		nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Stage_Address_Flash+base_temp1,(void*)&Conf_Stage_Address_Buffer[0],49);
     		nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Stage_Address_Flash,Conf_Stage_Address_Backup,1219);
		  }
		  else
		  {
			base_temp1=98*(CheckData[5]-1);
			base_temp2=98+base_temp1;

	        unlock_bypass_mode(fb);
            for(i=0; i<49; i++)
            nr_flash_write_bypass((unsigned short*)na_cfi_flash_0_base,Conf_Stage_Address_Flash+base_temp1/2+i,((Conf_Stage_Address_Buffer[i*2])+(Conf_Stage_Address_Buffer[i*2+1]<<8)));
            reset_bypass_mode(fb);

//     		nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Stage_Address_Flash+base_temp1/2,(void*)&Conf_Stage_Address_Buffer[0],49);
     		nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Stage_Address_Flash,Conf_Stage_Address_Backup,(int)base_temp1/2);
     		nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Stage_Address_Flash+base_temp2/2,Conf_Stage_Address_Backup+base_temp2/2,(3136-(int)base_temp2)/2);
		  }
        unlock_bypass_mode(fb);
        if(*(Conf_Phase1_Address_Backup+Flash_Mark_Address)!=0x00)
        nr_flash_write_bypass((unsigned short*)na_cfi_flash_0_base,Conf_Phase1_Address_Flash+4480,0x00);
		reset_bypass_mode(fb);
		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_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);
        nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_YaoKong_Address_Flash,Conf_YaoKong_Address_Backup,4);

        nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_CurNumber_Address_Flash,Conf_CurNumber_Address_Backup,16);
        nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Solution_Address_Flash,Conf_Solution_Address_Backup,3360);
	}

	if(CheckData[4]==0x96)
	{
	    flag=nr_flash_erase_sector_4kB((unsigned short*)na_cfi_flash_0_base,(unsigned short*)FLASH_BASE_ADD);

		for(i=0; i<41; i++)
		{
	    	Conf_Controlstage_Address_Buffer[i]=CheckData[5+i];
		}
		if(CheckData[5]==1)
		{
	    	base_temp1=40;
	        temp_data=(Conf_Controlstage_Address_Buffer[40])+((*(Conf_Controlstage_Address_Backup+base_temp1/2)&&
0x00ff)<<8);

	        unlock_bypass_mode(fb);
            for(i=0; i<20; i++)
            nr_flash_write_bypass((unsigned short*)na_cfi_flash_0_base,Conf_Controlstage_Address_Flash+i,((Conf_Controlstage_Address_Buffer[i*2])+(Conf_Controlstage_Address_Buffer[i*2+1]<<8)));
 //           reset_bypass_mode(fb);

//    		nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Controlstage_Address_Flash,(void*)&Conf_Controlstage_Address_Buffer[0],20);
//            unlock_bypass_mode(fb);
            nr_flash_write_bypass((unsigned short*)na_cfi_flash_0_base,Conf_Controlstage_Address_Flash+base_temp1/2,temp_data);
     		reset_bypass_mode(fb);
            nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,(Conf_Controlstage_Address_Flash+(base_temp1/2)),Conf_Controlstage_Address_Backup+base_temp1/2+1,620);
	    }
	    else
	      if(CheckData[5]==32)
	      {
	    	base_temp1=41*31-1;
 	        temp_data=((*Conf_Controlstage_Address_Backup+base_temp1/2)<<8)+(Conf_Controlstage_Address_Buffer[0]&
0x00ff);

	        unlock_bypass_mode(fb);
            for(i=0; i<20; i++)
            nr_flash_write_bypass((unsigned short*)na_cfi_flash_0_base,Conf_Controlstage_Address_Flash+base_temp1/2+i,((Conf_Controlstage_Address_Buffer[i*2])+(Conf_Controlstage_Address_Buffer[i*2+1]<<8)));
 //           reset_bypass_mode(fb);

//    		nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Controlstage_Address_Flash+base_temp1/2,(void*)&Conf_Controlstage_Address_Buffer[1],20);
//            unlock_bypass_mode(fb);
            nr_flash_write_bypass((unsigned short*)na_cfi_flash_0_base,Conf_Controlstage_Address_Flash+base_temp1/2,temp_data);
     		reset_bypass_mode(fb);
            nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Controlstage_Address_Flash,Conf_Controlstage_Address_Backup,620);
		  }
		  else
		  {
			if(CheckData[5]%2==1)
			{
				base_temp1=41*(CheckData[5]-1);
				base_temp2=40+base_temp1;
	            temp_data=(Conf_Controlstage_Address_Buffer[40])+((*(Conf_Controlstage_Address_Backup+base_temp2/2)& 0x00ff)<<8);

	        unlock_bypass_mode(fb);
            for(i=0; i<20; i++)
            nr_flash_write_bypass((unsigned short*)na_cfi_flash_0_base,Conf_Controlstage_Address_Flash+base_temp1/2+i,((Conf_Controlstage_Address_Buffer[i*2])+(Conf_Controlstage_Address_Buffer[i*2+1]<<8)));
 //           reset_bypass_mode(fb);

//     	    	nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Controlstage_Address_Flash+base_temp1/2,(void*)&Conf_Controlstage_Address_Buffer[0],20);
     	    	nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Controlstage_Address_Flash,Conf_Controlstage_Address_Backup,base_temp1/2);
//                unlock_bypass_mode(fb);
                nr_flash_write_bypass((unsigned short*)na_cfi_flash_0_base,Conf_Controlstage_Address_Flash+base_temp2/2,temp_data);
     	    	reset_bypass_mode(fb);
                nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Controlstage_Address_Flash+base_temp2/2+1,Conf_Controlstage_Address_Backup+base_temp2/2+1,(1312-(int)base_temp2)/2-1);
			}
			else
			{
				base_temp1=41*(CheckData[5]-1);
				base_temp2=41+base_temp1;
    	        temp_data=(*(Conf_Controlstage_Address_Backup+base_temp1/2)& 0x00ff)+((Conf_Controlstage_Address_Buffer[0]& 0x00ff)<<8);
                unlock_bypass_mode(fb);
                for(i=0; i<20; i++)
                 nr_flash_write_bypass((unsigned short*)na_cfi_flash_0_base,Conf_Controlstage_Address_Flash+base_temp1/2+1+i,((Conf_Controlstage_Address_Buffer[i*2])+(Conf_Controlstage_Address_Buffer[i*2+1]<<8)));
                reset_bypass_mode(fb);
     //	    	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);
                unlock_bypass_mode(fb);
                nr_flash_write_bypass((unsigned short*)na_cfi_flash_0_base,Conf_Controlstage_Address_Flash+base_temp1/2,temp_data);
     	    	reset_bypass_mode(fb);
                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);
			}
 		  }
        reset_bypass_mode(fb);
        if(*(Conf_Phase1_Address_Backup+Flash_Mark_Address)!=0x00)
        nr_flash_write_bypass((unsigned short*)na_cfi_flash_0_base,Conf_Phase1_Address_Flash+Flash_Mark_Address,0x00);
		unlock_bypass_mode(fb);
		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);
        nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_YaoKong_Address_Flash,Conf_YaoKong_Address_Backup,4);

        nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_CurNumber_Address_Flash,Conf_CurNumber_Address_Backup,16);
        nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Solution_Address_Flash,Conf_Solution_Address_Backup,3360);
	}

	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;

	        unlock_bypass_mode(fb);
            for(i=0; i<37; i++)
            nr_flash_write_bypass((unsigned short*)na_cfi_flash_0_base,Conf_Daydesign_Address_Flash+i,((Conf_Daydesign_Address_Buffer[i*2])+(Conf_Daydesign_Address_Buffer[i*2+1]<<8)));
            reset_bypass_mode(fb);

//     		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;

	        unlock_bypass_mode(fb);
            for(i=0; i<37; i++)
            nr_flash_write_bypass((unsigned short*)na_cfi_flash_0_base,Conf_Daydesign_Address_Flash+base_temp1/2+1+i,((Conf_Daydesign_Address_Buffer[i*2])+(Conf_Daydesign_Address_Buffer[i*2+1]<<8)));
            reset_bypass_mode(fb);

//     		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;

	        unlock_bypass_mode(fb);
            for(i=0; i<37; i++)
            nr_flash_write_bypass((unsigned short*)na_cfi_flash_0_base,Conf_Daydesign_Address_Flash+base_temp1/2+i,((Conf_Daydesign_Address_Buffer[i*2])+(Conf_Daydesign_Address_Buffer[i*2+1]<<8)));
            reset_bypass_mode(fb);

//     		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);
          }
        unlock_bypass_mode(fb);
        if(*(Conf_Phase1_Address_Backup+Flash_Mark_Address)!=0x00)
        nr_flash_write_bypass((unsigned short*)na_cfi_flash_0_base,Conf_Phase1_Address_Flash+Flash_Mark_Address,0x00);
        reset_bypass_mode(fb);

		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);

        nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_YaoKong_Address_Flash,Conf_YaoKong_Address_Backup,4);

        nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_CurNumber_Address_Flash,Conf_CurNumber_Address_Backup,16);
        nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Solution_Address_Flash,Conf_Solution_Address_Backup,3360);
	}

	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];
		}
		unlock_bypass_mode(fb);
        if(*(Conf_Phase1_Address_Backup+Flash_Mark_Address)!=0x00)
        nr_flash_write_bypass((unsigned short*)na_cfi_flash_0_base,Conf_Phase1_Address_Flash+Flash_Mark_Address,0x00);
//        reset_bypass_mode(fb);

//        unlock_bypass_mode(fb);
        for(i=0; i<30; i++)
        nr_flash_write_bypass((unsigned short*)na_cfi_flash_0_base,Conf_Daydesigntable_Address_Flash+i,((Conf_Daydesigntable_Address_Buffer[i*2])+(Conf_Daydesigntable_Address_Buffer[i*2+1]<<8)));
        reset_bypass_mode(fb);


//        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);
        nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_YaoKong_Address_Flash,Conf_YaoKong_Address_Backup,4);

	}

	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)
		{
	        unlock_bypass_mode(fb);
	        for(i=0; i<144; i++)
	        nr_flash_write_bypass((unsigned short*)na_cfi_flash_0_base,Conf_Phase1_Address_Flash+i,((Conf_Phase1_Address_Buffer[i*2])+(Conf_Phase1_Address_Buffer[i*2+1]<<8)));
	        reset_bypass_mode(fb);

//			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
		{
			unlock_bypass_mode(fb);
			for(i=0; i<144; i++)
			{
              nr_flash_write_bypass((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)));
 			}
            reset_bypass_mode(fb);
//			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);

        nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_YaoKong_Address_Flash,Conf_YaoKong_Address_Backup,4);

        nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_CurNumber_Address_Flash,Conf_CurNumber_Address_Backup,16);
        nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_Solution_Address_Flash,Conf_Solution_Address_Backup,3360);
	    unlock_bypass_mode(fb);
        if(*(Conf_Phase1_Address_Backup+Flash_Mark_Address)!=0x00)
        nr_flash_write_bypass((unsigned short*)na_cfi_flash_0_base,Conf_Phase1_Address_Flash+Flash_Mark_Address,0x00);
        reset_bypass_mode(fb);
    }

	if(CheckData[4]==0xCF)
	{
	    flag=nr_flash_erase_sector_4kB((unsigned short*)na_cfi_flash_0_base,(unsigned short*)FLASH_BASE_ADD);

		for(i=0; i<8; i++)
		{
	    	Conf_YaoKong_Address_Buffer[i]=CheckData[5+i];
		}
		unlock_bypass_mode(fb);
        if(*(Conf_Phase1_Address_Backup+Flash_Mark_Address)!=0x00)
        nr_flash_write_bypass((unsigned short*)na_cfi_flash_0_base,Conf_Phase1_Address_Flash+Flash_Mark_Address,0x00);
//        reset_bypass_mode(fb);
//        unlock_bypass_mode(fb);
	    for(i=0; i<4; i++)
	    nr_flash_write_bypass((unsigned short*)na_cfi_flash_0_base,Conf_YaoKong_Address_Flash+i,((Conf_YaoKong_Address_Buffer[i*2])+(Conf_YaoKong_Address_Buffer[i*2+1]<<8)));
	    reset_bypass_mode(fb);

//        nr_flash_write_buffer((unsigned short*)na_cfi_flash_0_base,Conf_YaoKong_Address_Flash,(void*)&Conf_YaoKong_Address_Buffer[0],4);

		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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -