第一次提交

This commit is contained in:
2025-07-05 20:11:15 +08:00
commit 89b0708dfb
56 changed files with 10876 additions and 0 deletions

130
interface_boot.c Normal file
View File

@@ -0,0 +1,130 @@
#include <udelay/udelay.h>
#include <reset_ip.h>
#include <debug.h>
#include <sdrv_gpio.h>
#include <armv7-r/cache.h>
#include "sdrv_rstgen.h"
#include "interface_config.h"
uint16_t FrameHeader = 0;//֡ͷ
bool boot_can_flag = false;//֡ͷ
bool boot_eth_flag = false;//֡ͷ
SystemDataRecord g_systemDataRecord = {0,0,0,0};
bool WDTReFresh_flag = false;//
Timer boot_timer_interface;
void bootmian(void *signal_id)
{
static uint16_t bootmianSTT = 0;
// uint32_t time_boot = getCurrentTime();//<2F><>¼<EFBFBD><C2BC>ǰʱ<C7B0><CAB1>
//------------------------------------------------------------------------------
(void)signal_id; // <20><><EFBFBD>DZ<EFBFBD><C7B1><EFBFBD>Ϊ<EFBFBD><CEAA>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if( (true == boot_can_flag) || (true == boot_eth_flag) )//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>н<EFBFBD><D0BD>պ<EFBFBD><D5BA><EFBFBD>1
{
boot_can_flag = false;
boot_eth_flag = false;
if(EXCUTE_APP == FrameHeader)//д<><D0B4>־0<D6BE><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>APP
{
printf("go to app!\r\n");
wrbyte_24c02(Update_Flg_E2adr,NORMAL_ON); //д<><D0B4>־λΪ0<CEAA><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>γ<EFBFBD><CEB3><EFBFBD>ֱ<EFBFBD>ӽ<EFBFBD><D3BD><EFBFBD>app
// udelay(3000);//<2F><>ʱ3ms
g_systemDataRecord.canBootloaderUpgrade = rdbyte_24c02(Update_Flg_E2adr); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD>ι<EFBFBD><CEB9>
// sdrv_rstgen_global_reset(&rstctl_glb);
for(;;)
{
printf("Restart!\r\n");
}
}
else if(ENTER_UPDATE_MODE == FrameHeader)//д<><D0B4>־1<D6BE><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>boot
{
ssdk_printf(SSDK_INFO, "go to boot!\r\n");
wrbyte_24c02(Update_Flg_E2adr,CAN_BOOTLOADER_UPGRADE); //д<><D0B4>־<EFBFBD><D6BE><EFBFBD><EFBFBD>
// udelay(3000);//<2F><>ʱ3ms
// sdrv_rstgen_global_reset(&rstctl_glb);
for(;;)
{
printf("Restart!\r\n");
}
}
}
//<2F>жϴ<D0B6>e2<65><32>ȡboot<6F><74>־<EFBFBD>󣬾<EFBFBD><F3A3ACBE><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>APP<50><50>ʱι<CAB1><CEB9>
if( CAN_BOOTLOADER_UPGRADE == (g_systemDataRecord.canBootloaderUpgrade) )//boot<6F><74>־
{
//boot<6F><74>־Ϊ1<CEAA><31><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>boot<6F><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ι<EFBFBD><CEB9>
if(true == WDTReFresh_flag)//<2F><><EFBFBD>յ<EFBFBD>ID<49>Ÿ<EFBFBD><C5B8><EFBFBD>WDT <20><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD>־<EFBFBD><D6BE>ι<EFBFBD><CEB9>
{
feedWatchdog();//ι<><CEB9>
WDTReFresh_flag = false;
}
}
else//APP<50>Լ<EFBFBD>ι<EFBFBD><CEB9>
{
bootmianSTT ++;
if(bootmianSTT >= 5)//5*1000*100us = 500ms
{
bootmianSTT = 0;
feedWatchdog();//ι<><CEB9>
}
}
timerStart(&boot_timer_interface, 100,0);
// printf("bootAPP spend time:%d\n",getCurrentTime() - time_boot);//<2F><><EFBFBD><EFBFBD>app<70><70><EFBFBD>˶೤ʱ<E0B3A4><CAB1>
}
static uint32_t time_wdt = 0;
// ι<><CEB9>
void feedWatchdog(void)
{
sdrv_gpio_toggle_pin_output_level(WDTGPIO); //<2F>ⲿwdtι<74><CEB9>
printf("WDT:%d \n",getCurrentTime() - time_wdt);
time_wdt = getCurrentTime();
}
// APPģ<50><C4A3><EFBFBD>ij<EFBFBD>ʼ<EFBFBD><CABC>
void bootInterfaceInit(void)
{
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
timerInit(&boot_timer_interface);
// <20><><EFBFBD>Ķ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>źţ<C5BA><C5A3><EFBFBD><EFBFBD>ڶ<EFBFBD>ʱ<EFBFBD>ɼ<EFBFBD>
subscribe(&boot_timer_interface, bootmian);
timerStart(&boot_timer_interface, 100,0); //100ms
feedWatchdog();//ι<><CEB9>,<2C><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ιһ<CEB9><D2BB>
printf("bootInterface: initial OK %d\n",getCurrentTime());
}