123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227 |
- #include "Mcal.h"
- #include "CAN.h"
- #include "SchM_Can.h"
- #include "Mcu.h"
- #include "Mcl.h"
- #include "Port.h"
- #include "Dio.h"
- #include "Uart.h"
- #include "Eep.h"
- #include "Fls.h"
- #include "SchM_Fls.h"
- #include "Platform.h"
- #include "Lpuart_Uart_Ip_Irq.h"
- #include "Flexio_Uart_Ip_Irq.h"
- #include "Dma_Ip.h"
- #include "Dma_Ip_Irq.h"
- #include "Lpuart_Uart_Ip.h"
- #include "Gpt.h"
- #include "Wdg_43_Instance0.h"
- #include "Icu.h"
- #include <string.h>
- #include "hal_adapter.h"
- #include "Lpuart_Uart_Ip.h"
- #include "AppTaskMain.h"
- #include "AppTaskUart0.h"
- #include "AppTaskUart1.h"
- #include "AppTaskCan.h"
- #include "AppTaskGps.h"
- #include "Hal_Fls.h"
- #include "cm_backtrace.h"
- #define APPNAME "S32K146_4G"
- #define HARDWARE_VERSION "V1.0.0"
- #define SOFTWARE_VERSION "V0.0.1"
- int main(void)
- {
- volatile int exit_code = 0;
- coreInit();
- #if (PORT_PRECOMPILE_SUPPORT == STD_ON)
- Port_Init(NULL_PTR);
- #elif (PORT_PRECOMPILE_SUPPORT == STD_OFF)
- Port_Init(&Port_Config_VS_0);
- #endif
- SystemModulesInit();
-
- Dio_WriteChannel(DioConf_DioChannel_PTA6_GPIO_OUT_MCU_4G_POW_EN, STD_ON);
- Dio_WriteChannel(DioConf_DioChannel_PTA7_GPIO_OUT_MCU_4G_PWRKEY, STD_ON);
-
- Dio_WriteChannel(DioConf_DioChannel_PTD1_GPIO_OUT_MCU_GPS_POW_EN, STD_ON);
- Mcu_ResetType bootreason;
- bootreason = Mcu_GetResetReason();
- if(bootreason == MCU_STOP_ACKNOWLEDGE_ERROR_RESET)
- Dio_WriteChannel(DioConf_DioChannel_PTE0_GPIO_OUT_MCU_LED1, STD_OFF);
- else if(bootreason == MCU_MDM_AP_SYSTEM_RESET)
- Dio_WriteChannel(DioConf_DioChannel_PTE1_GPIO_OUT_MCU_LED2, STD_OFF);
- else if(bootreason == MCU_SW_RESET)
- {
- Dio_WriteChannel(DioConf_DioChannel_PTE0_GPIO_OUT_MCU_LED1, STD_OFF);
- Dio_WriteChannel(DioConf_DioChannel_PTE1_GPIO_OUT_MCU_LED2, STD_OFF);
- }
- else if(bootreason == MCU_CORE_LOCKUP_RESET)
- Dio_WriteChannel(DioConf_DioChannel_PTE7_GPIO_OUT_MCU_LED3, STD_OFF);
- else if(bootreason == MCU_JTAG_RESET)
- {
- Dio_WriteChannel(DioConf_DioChannel_PTE0_GPIO_OUT_MCU_LED1, STD_OFF);
- Dio_WriteChannel(DioConf_DioChannel_PTE7_GPIO_OUT_MCU_LED3, STD_OFF);
- }
- else if(bootreason == MCU_POWER_ON_RESET)
- {
- Dio_WriteChannel(DioConf_DioChannel_PTE1_GPIO_OUT_MCU_LED2, STD_OFF);
- Dio_WriteChannel(DioConf_DioChannel_PTE7_GPIO_OUT_MCU_LED3, STD_OFF);
- }
- else if(bootreason == MCU_EXTERNAL_PIN_RESET)
- {
- Dio_WriteChannel(DioConf_DioChannel_PTE0_GPIO_OUT_MCU_LED1, STD_OFF);
- Dio_WriteChannel(DioConf_DioChannel_PTE1_GPIO_OUT_MCU_LED2, STD_OFF);
- Dio_WriteChannel(DioConf_DioChannel_PTE7_GPIO_OUT_MCU_LED3, STD_OFF);
- }
- else if(bootreason == MCU_WATCHDOG_RESET)
- {
- Dio_WriteChannel(DioConf_DioChannel_PTE8_GPIO_OUT_MCU_LED4, STD_OFF);
- }
- else if(bootreason == MCU_CMU_LOSS_OF_CLOCK_RESET)
- {
- Dio_WriteChannel(DioConf_DioChannel_PTE0_GPIO_OUT_MCU_LED1, STD_OFF);
- Dio_WriteChannel(DioConf_DioChannel_PTE8_GPIO_OUT_MCU_LED4, STD_OFF);
- }
- else if(bootreason == MCU_LOSS_OF_LOCK_RESET)
- {
- Dio_WriteChannel(DioConf_DioChannel_PTE1_GPIO_OUT_MCU_LED2, STD_OFF);
- Dio_WriteChannel(DioConf_DioChannel_PTE8_GPIO_OUT_MCU_LED4, STD_OFF);
- }
- else if(bootreason == MCU_LOSS_OF_CLOCK_RESET)
- {
- Dio_WriteChannel(DioConf_DioChannel_PTE0_GPIO_OUT_MCU_LED1, STD_OFF);
- Dio_WriteChannel(DioConf_DioChannel_PTE1_GPIO_OUT_MCU_LED2, STD_OFF);
- Dio_WriteChannel(DioConf_DioChannel_PTE8_GPIO_OUT_MCU_LED4, STD_OFF);
- }
- else if(bootreason == MCU_LOW_OR_HIGH_VOLTAGE_DETECT_RESET)
- {
- Dio_WriteChannel(DioConf_DioChannel_PTE7_GPIO_OUT_MCU_LED3, STD_OFF);
- Dio_WriteChannel(DioConf_DioChannel_PTE8_GPIO_OUT_MCU_LED4, STD_OFF);
- }
- else if(bootreason == MCU_NO_RESET_REASON)
- {
- Dio_WriteChannel(DioConf_DioChannel_PTE0_GPIO_OUT_MCU_LED1, STD_OFF);
- Dio_WriteChannel(DioConf_DioChannel_PTE7_GPIO_OUT_MCU_LED3, STD_OFF);
- Dio_WriteChannel(DioConf_DioChannel_PTE8_GPIO_OUT_MCU_LED4, STD_OFF);
- }
- else if(bootreason == MCU_MULTIPLE_RESET_REASON)
- {
- Dio_WriteChannel(DioConf_DioChannel_PTE1_GPIO_OUT_MCU_LED2, STD_OFF);
- Dio_WriteChannel(DioConf_DioChannel_PTE7_GPIO_OUT_MCU_LED3, STD_OFF);
- Dio_WriteChannel(DioConf_DioChannel_PTE8_GPIO_OUT_MCU_LED4, STD_OFF);
- }
- else if(bootreason == MCU_RESET_UNDEFINED)
- {
- Dio_WriteChannel(DioConf_DioChannel_PTE0_GPIO_OUT_MCU_LED1, STD_OFF);
- Dio_WriteChannel(DioConf_DioChannel_PTE1_GPIO_OUT_MCU_LED2, STD_OFF);
- Dio_WriteChannel(DioConf_DioChannel_PTE7_GPIO_OUT_MCU_LED3, STD_OFF);
- Dio_WriteChannel(DioConf_DioChannel_PTE8_GPIO_OUT_MCU_LED4, STD_OFF);
- }
- #ifdef SEGGER_RTT_PRINTF
- SEGGER_RTT_Init();
- cm_backtrace_init(APPNAME,HARDWARE_VERSION,SOFTWARE_VERSION);
- SEGGER_RTT_printf("[%d] boot\r\n",__LINE__);
- #endif
- UartInit();
- xTaskCreate(MainTask, (const char *const)"MainTask", 512, (void *)0, main_TASK_PRIORITY + 6, NULL);
- xTaskCreate(CanTask, (const char *const)"CanTask", 512, (void *)0, main_TASK_PRIORITY + 2, &CanTask_Handle);
- xTaskCreate(GpsTask, (const char *const)"GpsTask", 512, (void *)0, main_TASK_PRIORITY + 1, &GpsTask_Handle);
- xTaskCreate(Uart_4G_Task, (const char *const)"Uart_4G_Task", 2048, (void *)0, main_TASK_PRIORITY + 0, &Uart_4G_Task_Handle);
- vTaskStartScheduler();
- for (;;)
- {
- if (exit_code != 0)
- {
- break;
- }
- }
- return exit_code;
- }
|