[Mod] 支持发送ping命令控制跳转

This commit is contained in:
gaoyang3513
2024-08-02 16:19:58 +08:00
parent 6337bafb99
commit 711f15677d
4 changed files with 35 additions and 30 deletions

View File

@ -32,10 +32,10 @@ extern uint8_t BufferPong[5];
extern uint8_t Callback_isPingCheckReady; extern uint8_t Callback_isPingCheckReady;
extern uint8_t PC_isConnected; extern uint8_t PC_isConnected;
extern uint8_t PcEchoBuffer[20]; extern uint8_t PcEchoBuffer[20];
extern uint8_t is_jump_main;
/*==================================================================*/ /*==================================================================*/
/* ! /* !
* @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɻص<C9BB><D8B5>ӿ<EFBFBD> <20>ɿͻ<C9BF>ʵ<EFBFBD><CAB5><EFBFBD>Լ<EFBFBD><D4BC>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߼<EFBFBD> * @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɻص<C9BB><D8B5>ӿ<EFBFBD> <20>ɿͻ<C9BF>ʵ<EFBFBD><CAB5><EFBFBD>Լ<EFBFBD><D4BC>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߼<EFBFBD>
* *
@ -113,6 +113,7 @@ void Ebyte_Port_ReceiveCallback( uint16_t state, uint8_t *buffer, uint8_t lengt
Ebyte_BSP_LedControl( BSP_LED_1, ON ); Ebyte_BSP_LedControl( BSP_LED_1, ON );
if( ! PC_isConnected ) { if( ! PC_isConnected ) {
is_jump_main = 1;
snprintf(rx_data, sizeof(rx_data), "%s", buffer); snprintf(rx_data, sizeof(rx_data), "%s", buffer);
EBYTE_LOG("\r\n Receive Data: %s", rx_data); EBYTE_LOG("\r\n Receive Data: %s", rx_data);
} }

View File

@ -49,6 +49,8 @@ uint8_t Callback_isPingCheckReady = 0;
/* <20>Լ<EFBFBD>ģʽ <20><>ʶ */ /* <20>Լ<EFBFBD>ģʽ <20><>ʶ */
uint8_t PC_isConnected = 0; uint8_t PC_isConnected = 0;
uint8_t is_jump_main = 0;
static BSP_BTN_EVENT_t BTN_Event; static BSP_BTN_EVENT_t BTN_Event;
/* ! /* !
@ -56,32 +58,34 @@ static BSP_BTN_EVENT_t BTN_Event;
*/ */
int ebyte_main( void ) int ebyte_main( void )
{ {
/* <20><><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD>Դ <20><>ʼ<EFBFBD><CABC> */ /* <20><><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD>Դ <20><>ʼ<EFBFBD><CABC> */
Ebyte_BSP_Init(); Ebyte_BSP_Init();
/* (<28><>ѡ) <20><><EFBFBD><EFBFBD><EFBFBD>жϽ<D0B6><CFBD><EFBFBD>FIFO <20>ɸ<EFBFBD><C9B8><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>д<EFBFBD><D0B4><EFBFBD> */ /* (<28><>ѡ) <20><><EFBFBD><EFBFBD><EFBFBD>жϽ<D0B6><CFBD><EFBFBD>FIFO <20>ɸ<EFBFBD><C9B8><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>д<EFBFBD><D0B4><EFBFBD> */
Ebyte_FIFO_Init( &hfifo, EBYTE_FIFO_SIZE ); Ebyte_FIFO_Init( &hfifo, EBYTE_FIFO_SIZE );
/* EBYTE <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC> */ /* EBYTE <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC> */
Ebyte_RF.Init(); Ebyte_RF.Init();
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */ /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
Ebyte_RF.EnterReceiveMode( 0 ); Ebyte_RF.EnterReceiveMode( 0 );
/* MCU <20><>ȫ<EFBFBD><C8AB><EFBFBD>ж<EFBFBD> */ /* MCU <20><>ȫ<EFBFBD><C8AB><EFBFBD>ж<EFBFBD> */
Ebyte_BSP_GlobalIntEnable(); Ebyte_BSP_GlobalIntEnable();
EBYTE_LOG( "Start PingPong.....\r\n" ); EBYTE_LOG( "Start PingPong.....\r\n" );
EBYTE_LOG( "Please push button1 or button2.....\r\n" ); EBYTE_LOG( "Please push button1 or button2.....\r\n" );
while( 1 ) { while( !is_jump_main ) {
/* <20><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>Ӧ */ /* <20><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>Ӧ */
Task_Button(); Task_Button();
/* <20><><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD><E2B4AE><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD><EFBFBD>߷<EFBFBD><DFB7><EFBFBD> <20>ͻ<EFBFBD><CDBB><EFBFBD><EBB0B4><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD> */ /* <20><><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD><E2B4AE><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD><EFBFBD>߷<EFBFBD><DFB7><EFBFBD> <20>ͻ<EFBFBD><CDBB><EFBFBD><EBB0B4><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD> */
Task_Transmit(); Task_Transmit();
/* <20><><EFBFBD><EFBFBD>:EBYTE<54><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD> */ /* <20><><EFBFBD><EFBFBD>:EBYTE<54><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD> */
Ebyte_RF.StartPollTask(); Ebyte_RF.StartPollTask();
delay_1ms(100); delay_1ms(100);
} }
Ebyte_BSP_GlobalIntDisable();
} }
/* ! /* !

View File

@ -69,15 +69,14 @@ void Ebyte_E48x_SetSleep( uint8_t cmd )
return; return;
} }
void Ebyte_E48x_IntOrPollTask( void ) void Ebyte_E48x_IntOrPollTask( void )
{ {
radio_rece_data_flag = gpio_input_bit_get( BSP_GPIO_PORT_E48_GP4 , BSP_GPIO_PIN_E48_GP4); radio_rece_data_flag = gpio_input_bit_get( BSP_GPIO_PORT_E48_GP4 , BSP_GPIO_PIN_E48_GP4);
/* <20>н<EFBFBD><D0BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */ /* <20>н<EFBFBD><D0BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
if( radio_rece_data_flag != RESET ) { if( radio_rece_data_flag != RESET ) {
vRadioGetPacket(rf_rxbuffer, &rf_rxsize); vRadioGetPacket(rf_rxbuffer, &rf_rxsize);
Ebyte_Port_ReceiveCallback(0x0002,rf_rxbuffer,rf_rxsize); Ebyte_Port_ReceiveCallback(0x0002,rf_rxbuffer,rf_rxsize);
} }
} }

View File

@ -75,6 +75,7 @@ static void jump_to_main_image(uint32_t msp, uint32_t reset)
img_reset = (img_fptr_t)reset; img_reset = (img_fptr_t)reset;
__disable_irq();
#if defined(__ARM_ARCH_8M_MAIN__) || defined(__ARM_ARCH_8M_BASE__) #if defined(__ARM_ARCH_8M_MAIN__) || defined(__ARM_ARCH_8M_BASE__)
/* Restore the Main Stack Pointer Limit register's reset value /* Restore the Main Stack Pointer Limit register's reset value
* before passing execution to runtime firmware to make the * before passing execution to runtime firmware to make the