diff --git a/board/ALIENTEK_STM32F429/BSP/Inc/usart.h b/board/ALIENTEK_STM32F429/BSP/Inc/usart.h
index bfa02703..8d0ba21d 100644
--- a/board/ALIENTEK_STM32F429/BSP/Inc/usart.h
+++ b/board/ALIENTEK_STM32F429/BSP/Inc/usart.h
@@ -31,13 +31,15 @@
/* USER CODE END Includes */
extern UART_HandleTypeDef huart1;
-
+extern UART_HandleTypeDef huart2;
+extern UART_HandleTypeDef huart3;
/* USER CODE BEGIN Private defines */
/* USER CODE END Private defines */
void MX_USART1_UART_Init(void);
-
+void MX_USART2_UART_Init(void);
+void MX_USART3_UART_Init(void);
/* USER CODE BEGIN Prototypes */
/* USER CODE END Prototypes */
diff --git a/board/ALIENTEK_STM32F429/BSP/Src/mcu_init.c b/board/ALIENTEK_STM32F429/BSP/Src/mcu_init.c
index 1ca3008b..cf547704 100644
--- a/board/ALIENTEK_STM32F429/BSP/Src/mcu_init.c
+++ b/board/ALIENTEK_STM32F429/BSP/Src/mcu_init.c
@@ -2,11 +2,17 @@
int fputc(int ch, FILE *f)
{
- if (ch == '\n') {
- HAL_UART_Transmit(&huart1, (void *)"\r", 1,30000);
- }
- HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);
- return ch;
+#if 0
+ if (ch == '\n') {
+ HAL_UART_Transmit(&huart1, (void *)"\r", 1,30000);
+ }
+ HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);
+ return ch;
+#else
+ while ((USART1->SR & 0X40) == 0);//循环发送,直到发送完毕
+ USART1->DR = (uint8_t)ch;
+ return ch;
+#endif
}
int _write(int fd, char *ptr, int len)
@@ -47,11 +53,11 @@ void SystemClock_Config(void)
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
- /** Configure the main internal regulator output voltage
+ /** Configure the main internal regulator output voltage
*/
__HAL_RCC_PWR_CLK_ENABLE();
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
- /** Initializes the CPU, AHB and APB busses clocks
+ /** Initializes the CPU, AHB and APB busses clocks
*/
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
@@ -66,13 +72,13 @@ void SystemClock_Config(void)
{
Error_Handler();
}
- /** Activate the Over-Drive mode
+ /** Activate the Over-Drive mode
*/
if (HAL_PWREx_EnableOverDrive() != HAL_OK)
{
Error_Handler();
}
- /** Initializes the CPU, AHB and APB busses clocks
+ /** Initializes the CPU, AHB and APB busses clocks
*/
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
@@ -112,7 +118,7 @@ void Error_Handler(void)
* @retval None
*/
void assert_failed(uint8_t *file, uint32_t line)
-{
+{
/* USER CODE BEGIN 6 */
/* User can add his own implementation to report the file name and line number,
tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
diff --git a/board/ALIENTEK_STM32F429/BSP/Src/stm32f4xx_it_shell.c b/board/ALIENTEK_STM32F429/BSP/Src/stm32f4xx_it_shell.c
new file mode 100644
index 00000000..a8775447
--- /dev/null
+++ b/board/ALIENTEK_STM32F429/BSP/Src/stm32f4xx_it_shell.c
@@ -0,0 +1,306 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file stm32f4xx_it.c
+ * @brief Interrupt Service Routines.
+ ******************************************************************************
+ * @attention
+ *
+ *
© Copyright (c) 2019 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software component is licensed by ST under Ultimate Liberty license
+ * SLA0044, the "License"; You may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at:
+ * www.st.com/SLA0044
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+
+/* Includes ------------------------------------------------------------------*/
+#include "main.h"
+#include "stm32f4xx_it.h"
+#include "tos_k.h"
+#include "tos_shell.h"
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+/* USER CODE END Includes */
+
+/* Private typedef -----------------------------------------------------------*/
+/* USER CODE BEGIN TD */
+
+/* USER CODE END TD */
+
+/* Private define ------------------------------------------------------------*/
+/* USER CODE BEGIN PD */
+
+/* USER CODE END PD */
+
+/* Private macro -------------------------------------------------------------*/
+/* USER CODE BEGIN PM */
+
+/* USER CODE END PM */
+
+/* Private variables ---------------------------------------------------------*/
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+/* USER CODE BEGIN PFP */
+
+/* USER CODE END PFP */
+
+/* Private user code ---------------------------------------------------------*/
+/* USER CODE BEGIN 0 */
+
+/* USER CODE END 0 */
+
+/* External variables --------------------------------------------------------*/
+extern UART_HandleTypeDef huart1;
+/* USER CODE BEGIN EV */
+
+/* USER CODE END EV */
+
+/******************************************************************************/
+/* Cortex-M4 Processor Interruption and Exception Handlers */
+/******************************************************************************/
+/**
+ * @brief This function handles Non maskable interrupt.
+ */
+void NMI_Handler(void)
+{
+ /* USER CODE BEGIN NonMaskableInt_IRQn 0 */
+
+ /* USER CODE END NonMaskableInt_IRQn 0 */
+ /* USER CODE BEGIN NonMaskableInt_IRQn 1 */
+
+ /* USER CODE END NonMaskableInt_IRQn 1 */
+}
+
+/**
+ * @brief This function handles Hard fault interrupt.
+ */
+void HardFault_Handler(void)
+{
+ /* USER CODE BEGIN HardFault_IRQn 0 */
+
+ /* USER CODE END HardFault_IRQn 0 */
+ while (1)
+ {
+ /* USER CODE BEGIN W1_HardFault_IRQn 0 */
+ /* USER CODE END W1_HardFault_IRQn 0 */
+ }
+}
+
+/**
+ * @brief This function handles Memory management fault.
+ */
+void MemManage_Handler(void)
+{
+ /* USER CODE BEGIN MemoryManagement_IRQn 0 */
+
+ /* USER CODE END MemoryManagement_IRQn 0 */
+ while (1)
+ {
+ /* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */
+ /* USER CODE END W1_MemoryManagement_IRQn 0 */
+ }
+}
+
+/**
+ * @brief This function handles Pre-fetch fault, memory access fault.
+ */
+void BusFault_Handler(void)
+{
+ /* USER CODE BEGIN BusFault_IRQn 0 */
+
+ /* USER CODE END BusFault_IRQn 0 */
+ while (1)
+ {
+ /* USER CODE BEGIN W1_BusFault_IRQn 0 */
+ /* USER CODE END W1_BusFault_IRQn 0 */
+ }
+}
+
+/**
+ * @brief This function handles Undefined instruction or illegal state.
+ */
+void UsageFault_Handler(void)
+{
+ /* USER CODE BEGIN UsageFault_IRQn 0 */
+
+ /* USER CODE END UsageFault_IRQn 0 */
+ while (1)
+ {
+ /* USER CODE BEGIN W1_UsageFault_IRQn 0 */
+ /* USER CODE END W1_UsageFault_IRQn 0 */
+ }
+}
+
+/**
+ * @brief This function handles Debug monitor.
+ */
+void DebugMon_Handler(void)
+{
+ /* USER CODE BEGIN DebugMonitor_IRQn 0 */
+
+ /* USER CODE END DebugMonitor_IRQn 0 */
+ /* USER CODE BEGIN DebugMonitor_IRQn 1 */
+
+ /* USER CODE END DebugMonitor_IRQn 1 */
+}
+/**
+* @brief This function handles Pendable request for system service.
+*/
+__weak void PendSV_Handler(void)
+{
+ /* USER CODE BEGIN PendSV_IRQn 0 */
+
+ /* USER CODE END PendSV_IRQn 0 */
+ /* USER CODE BEGIN PendSV_IRQn 1 */
+
+ /* USER CODE END PendSV_IRQn 1 */
+}
+
+/**
+* @brief This function handles System tick timer.
+*/
+void SysTick_Handler(void)
+{
+ /* USER CODE BEGIN SysTick_IRQn 0 */
+
+ /* USER CODE END SysTick_IRQn 0 */
+ HAL_IncTick();
+ if(tos_knl_is_running())
+ {
+ tos_knl_irq_enter();
+ tos_tick_handler();
+ tos_knl_irq_leave();
+ }
+ //HAL_SYSTICK_IRQHandler();
+ /* USER CODE BEGIN SysTick_IRQn 1 */
+
+ /* USER CODE END SysTick_IRQn 1 */
+}
+
+/******************************************************************************/
+/* STM32F4xx Peripheral Interrupt Handlers */
+/* Add here the Interrupt Handlers for the used peripherals. */
+/* For the available peripheral interrupt handler names, */
+/* please refer to the startup file (startup_stm32f4xx.s). */
+/******************************************************************************/
+
+/**
+ * @brief This function handles EXTI line0 interrupt.
+ */
+void EXTI0_IRQHandler(void)
+{
+ /* USER CODE BEGIN EXTI0_IRQn 0 */
+
+ /* USER CODE END EXTI0_IRQn 0 */
+ HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0);
+ /* USER CODE BEGIN EXTI0_IRQn 1 */
+
+ /* USER CODE END EXTI0_IRQn 1 */
+}
+
+/**
+ * @brief This function handles EXTI line2 interrupt.
+ */
+void EXTI2_IRQHandler(void)
+{
+ /* USER CODE BEGIN EXTI2_IRQn 0 */
+
+ /* USER CODE END EXTI2_IRQn 0 */
+ HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_2);
+ /* USER CODE BEGIN EXTI2_IRQn 1 */
+
+ /* USER CODE END EXTI2_IRQn 1 */
+}
+
+/**
+ * @brief This function handles EXTI line3 interrupt.
+ */
+void EXTI3_IRQHandler(void)
+{
+ /* USER CODE BEGIN EXTI3_IRQn 0 */
+
+ /* USER CODE END EXTI3_IRQn 0 */
+ HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_3);
+ /* USER CODE BEGIN EXTI3_IRQn 1 */
+
+ /* USER CODE END EXTI3_IRQn 1 */
+}
+
+extern uint8_t data;
+
+/**
+ * @brief This function handles USART1 global interrupt.
+ */
+void USART1_IRQHandler(void)
+{
+#if 0
+ /* USER CODE BEGIN USART1_IRQn 0 */
+
+ /* USER CODE END USART1_IRQn 0 */
+ tos_knl_irq_enter();
+ HAL_UART_IRQHandler(&huart1);
+ tos_knl_irq_leave();
+ /* USER CODE BEGIN USART1_IRQn 1 */
+
+ /* USER CODE END USART1_IRQn 1 */
+#else
+
+ uint32_t timeout = 0, max_delay = 0x1FFFF;
+
+ tos_knl_irq_enter();
+
+ HAL_UART_IRQHandler(&huart1);
+
+ timeout = 0;
+ while (HAL_UART_GetState(&huart1) != HAL_UART_STATE_READY) {
+ ++timeout;
+ if (timeout > max_delay) {
+ break;
+ }
+ }
+
+ timeout = 0;
+ while (HAL_UART_Receive_IT(&huart1, &data, 1) != HAL_OK) {
+ ++timeout;
+ if (timeout > max_delay) {
+ break;
+ }
+ }
+
+ tos_knl_irq_leave();
+
+#endif
+}
+
+/**
+ * @brief This function handles EXTI line[15:10] interrupts.
+ */
+void EXTI15_10_IRQHandler(void)
+{
+ /* USER CODE BEGIN EXTI15_10_IRQn 0 */
+
+ /* USER CODE END EXTI15_10_IRQn 0 */
+ HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_13);
+ /* USER CODE BEGIN EXTI15_10_IRQn 1 */
+
+ /* USER CODE END EXTI15_10_IRQn 1 */
+}
+
+
+/* USER CODE BEGIN 1 */
+void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
+{
+ if (huart->Instance == USART1) {
+ tos_shell_input_byte(data);
+ }
+}
+/* USER CODE END 1 */
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/board/ALIENTEK_STM32F429/BSP/Src/usart.c b/board/ALIENTEK_STM32F429/BSP/Src/usart.c
index af988ac3..781041be 100644
--- a/board/ALIENTEK_STM32F429/BSP/Src/usart.c
+++ b/board/ALIENTEK_STM32F429/BSP/Src/usart.c
@@ -24,8 +24,11 @@
/* USER CODE END 0 */
-UART_HandleTypeDef huart1;
+uint8_t data;
+UART_HandleTypeDef huart1;
+UART_HandleTypeDef huart2;
+UART_HandleTypeDef huart3;
/* USART1 init function */
void MX_USART1_UART_Init(void)
@@ -44,6 +47,17 @@ void MX_USART1_UART_Init(void)
Error_Handler();
}
+ HAL_UART_Receive_IT(&huart1, &data, 1);
+}
+
+void MX_USART2_UART_Init(void)
+{
+
+}
+
+void MX_USART3_UART_Init(void)
+{
+
}
void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
@@ -57,11 +71,11 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
/* USER CODE END USART1_MspInit 0 */
/* USART1 clock enable */
__HAL_RCC_USART1_CLK_ENABLE();
-
+
__HAL_RCC_GPIOA_CLK_ENABLE();
- /**USART1 GPIO Configuration
+ /**USART1 GPIO Configuration
PA9 ------> USART1_TX
- PA10 ------> USART1_RX
+ PA10 ------> USART1_RX
*/
GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
@@ -89,10 +103,10 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
/* USER CODE END USART1_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_USART1_CLK_DISABLE();
-
- /**USART1 GPIO Configuration
+
+ /**USART1 GPIO Configuration
PA9 ------> USART1_TX
- PA10 ------> USART1_RX
+ PA10 ------> USART1_RX
*/
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
@@ -102,7 +116,7 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
/* USER CODE END USART1_MspDeInit 1 */
}
-}
+}
/* USER CODE BEGIN 1 */
diff --git a/board/ALIENTEK_STM32F429/KEIL/shell/DebugConfig/TencentOS_tiny_STM32F429IGTx.dbgconf b/board/ALIENTEK_STM32F429/KEIL/shell/DebugConfig/TencentOS_tiny_STM32F429IGTx.dbgconf
new file mode 100644
index 00000000..1df0a1bc
--- /dev/null
+++ b/board/ALIENTEK_STM32F429/KEIL/shell/DebugConfig/TencentOS_tiny_STM32F429IGTx.dbgconf
@@ -0,0 +1,48 @@
+// File: STM32F405_415_407_417_427_437_429_439.dbgconf
+// Version: 1.0.0
+// Note: refer to STM32F405/415 STM32F407/417 STM32F427/437 STM32F429/439 reference manual (RM0090)
+// refer to STM32F40x STM32F41x datasheets
+// refer to STM32F42x STM32F43x datasheets
+
+// <<< Use Configuration Wizard in Context Menu >>>
+
+// Debug MCU configuration register (DBGMCU_CR)
+// DBG_STANDBY Debug Standby Mode
+// DBG_STOP Debug Stop Mode
+// DBG_SLEEP Debug Sleep Mode
+//
+DbgMCU_CR = 0x00000007;
+
+// Debug MCU APB1 freeze register (DBGMCU_APB1_FZ)
+// Reserved bits must be kept at reset value
+// DBG_CAN2_STOP CAN2 stopped when core is halted
+// DBG_CAN1_STOP CAN2 stopped when core is halted
+// DBG_I2C3_SMBUS_TIMEOUT I2C3 SMBUS timeout mode stopped when core is halted
+// DBG_I2C2_SMBUS_TIMEOUT I2C2 SMBUS timeout mode stopped when core is halted
+// DBG_I2C1_SMBUS_TIMEOUT I2C1 SMBUS timeout mode stopped when core is halted
+// DBG_IWDG_STOP Independent watchdog stopped when core is halted
+// DBG_WWDG_STOP Window watchdog stopped when core is halted
+// DBG_RTC_STOP RTC stopped when core is halted
+// DBG_TIM14_STOP TIM14 counter stopped when core is halted
+// DBG_TIM13_STOP TIM13 counter stopped when core is halted
+// DBG_TIM12_STOP TIM12 counter stopped when core is halted
+// DBG_TIM7_STOP TIM7 counter stopped when core is halted
+// DBG_TIM6_STOP TIM6 counter stopped when core is halted
+// DBG_TIM5_STOP TIM5 counter stopped when core is halted
+// DBG_TIM4_STOP TIM4 counter stopped when core is halted
+// DBG_TIM3_STOP TIM3 counter stopped when core is halted
+// DBG_TIM2_STOP TIM2 counter stopped when core is halted
+//
+DbgMCU_APB1_Fz = 0x00000000;
+
+// Debug MCU APB2 freeze register (DBGMCU_APB2_FZ)
+// Reserved bits must be kept at reset value
+// DBG_TIM11_STOP TIM11 counter stopped when core is halted
+// DBG_TIM10_STOP TIM10 counter stopped when core is halted
+// DBG_TIM9_STOP TIM9 counter stopped when core is halted
+// DBG_TIM8_STOP TIM8 counter stopped when core is halted
+// DBG_TIM1_STOP TIM1 counter stopped when core is halted
+//
+DbgMCU_APB2_Fz = 0x00000000;
+
+// <<< end of configuration section >>>
\ No newline at end of file
diff --git a/board/ALIENTEK_STM32F429/KEIL/shell/EventRecorderStub.scvd b/board/ALIENTEK_STM32F429/KEIL/shell/EventRecorderStub.scvd
new file mode 100644
index 00000000..2956b296
--- /dev/null
+++ b/board/ALIENTEK_STM32F429/KEIL/shell/EventRecorderStub.scvd
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/board/ALIENTEK_STM32F429/KEIL/shell/Obj/TencentOS_tiny.build_log.htm b/board/ALIENTEK_STM32F429/KEIL/shell/Obj/TencentOS_tiny.build_log.htm
new file mode 100644
index 00000000..616c08b5
--- /dev/null
+++ b/board/ALIENTEK_STM32F429/KEIL/shell/Obj/TencentOS_tiny.build_log.htm
@@ -0,0 +1,60 @@
+
+
+
+礦ision Build Log
+Tool Versions:
+IDE-Version: μVision V5.26.2.0
+Copyright (C) 2018 ARM Ltd and ARM Germany GmbH. All rights reserved.
+License Information: sheldon dai, tencent, LIC=AK1CX-H5HPV-SGF7K-ZGDWF-QC6LB-GRJE8
+
+Tool Versions:
+Toolchain: MDK-ARM Professional Version: 5.26.2.0
+Toolchain Path: C:\Keil_v5\ARM\ARMCC\Bin
+C Compiler: Armcc.exe V5.06 update 6 (build 750)
+Assembler: Armasm.exe V5.06 update 6 (build 750)
+Linker/Locator: ArmLink.exe V5.06 update 6 (build 750)
+Library Manager: ArmAr.exe V5.06 update 6 (build 750)
+Hex Converter: FromElf.exe V5.06 update 6 (build 750)
+CPU DLL: SARMCM3.DLL V5.26.2.0
+Dialog DLL: DCM.DLL V1.17.2.0
+Target DLL: STLink\ST-LINKIII-KEIL_SWO.dll V3.0.5.0
+Dialog DLL: TCM.DLL V1.36.1.0
+
+Project:
+D:\github\lorawan\TencentOS-tiny\board\ALIENTEK_STM32F429\KEIL\shell\TencentOS_tiny.uvprojx
+Project File Date: 01/07/2020
+
+Output:
+*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
+Build target 'TencentOS_tiny'
+compiling shell_sample.c...
+linking...
+Program Size: Code=20668 RO-data=788 RW-data=140 ZI-data=35156
+FromELF: creating hex file...
+".\Obj\TencentOS_tiny.axf" - 0 Error(s), 0 Warning(s).
+
+Software Packages used:
+
+Package Vendor: ARM
+ http://www.keil.com/pack/ARM.CMSIS.5.6.0.pack
+ ARM.CMSIS.5.6.0
+ CMSIS (Cortex Microcontroller Software Interface Standard)
+ * Component: CORE Version: 5.3.0
+
+Package Vendor: Keil
+ http://www.keil.com/pack/Keil.STM32F4xx_DFP.2.13.0.pack
+ Keil.STM32F4xx_DFP.2.13.0
+ STMicroelectronics STM32F4 Series Device Support, Drivers and Examples
+
+Collection of Component include folders:
+ .\RTE\_TencentOS_tiny
+ C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\Core\Include
+ C:\Keil_v5\ARM\PACK\Keil\STM32F4xx_DFP\2.13.0\Drivers\CMSIS\Device\ST\STM32F4xx\Include
+
+Collection of Component Files used:
+
+ * Component: ARM::CMSIS:CORE:5.3.0
+Build Time Elapsed: 00:00:01
+
+
+
diff --git a/board/ALIENTEK_STM32F429/KEIL/shell/Obj/TencentOS_tiny.htm b/board/ALIENTEK_STM32F429/KEIL/shell/Obj/TencentOS_tiny.htm
new file mode 100644
index 00000000..38f0bea9
--- /dev/null
+++ b/board/ALIENTEK_STM32F429/KEIL/shell/Obj/TencentOS_tiny.htm
@@ -0,0 +1,2851 @@
+
+
+Static Call Graph - [.\Obj\TencentOS_tiny.axf]
+
+Static Call Graph for image .\Obj\TencentOS_tiny.axf
+
#<CALLGRAPH># ARM Linker, 5060750: Last Updated: Wed Jan 08 13:48:47 2020
+
+
Maximum Stack Usage = 200 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)
+Call chain for Maximum Stack Depth:
+USART1_IRQHandler ⇒ HAL_UART_IRQHandler ⇒ UART_Receive_IT ⇒ HAL_UART_RxCpltCallback ⇒ tos_shell_input_byte ⇒ tos_sem_post ⇒ sem_do_post ⇒ pend_wakeup ⇒ pend_wakeup_all ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
+Functions with no stack information
+
+
+
+
+Mutually Recursive functions
+
SVC_Handler ⇒ SVC_Handler
+ ADC_IRQHandler ⇒ ADC_IRQHandler
+
+
+
+Function Pointers
+
+ - ADC_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- BusFault_Handler from stm32f4xx_it_shell.o(i.BusFault_Handler) referenced from startup_stm32f429xx.o(RESET)
+
- CAN1_RX0_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- CAN1_RX1_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- CAN1_SCE_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- CAN1_TX_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- CAN2_RX0_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- CAN2_RX1_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- CAN2_SCE_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- CAN2_TX_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- DCMI_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- DMA1_Stream0_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- DMA1_Stream1_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- DMA1_Stream2_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- DMA1_Stream3_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- DMA1_Stream4_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- DMA1_Stream5_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- DMA1_Stream6_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- DMA1_Stream7_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- DMA2D_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- DMA2_Stream0_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- DMA2_Stream1_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- DMA2_Stream2_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- DMA2_Stream3_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- DMA2_Stream4_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- DMA2_Stream5_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- DMA2_Stream6_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- DMA2_Stream7_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- DebugMon_Handler from stm32f4xx_it_shell.o(i.DebugMon_Handler) referenced from startup_stm32f429xx.o(RESET)
+
- ETH_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- ETH_WKUP_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- EXTI0_IRQHandler from stm32f4xx_it_shell.o(i.EXTI0_IRQHandler) referenced from startup_stm32f429xx.o(RESET)
+
- EXTI15_10_IRQHandler from stm32f4xx_it_shell.o(i.EXTI15_10_IRQHandler) referenced from startup_stm32f429xx.o(RESET)
+
- EXTI1_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- EXTI2_IRQHandler from stm32f4xx_it_shell.o(i.EXTI2_IRQHandler) referenced from startup_stm32f429xx.o(RESET)
+
- EXTI3_IRQHandler from stm32f4xx_it_shell.o(i.EXTI3_IRQHandler) referenced from startup_stm32f429xx.o(RESET)
+
- EXTI4_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- EXTI9_5_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- FLASH_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- FMC_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- FPU_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- HASH_RNG_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- HardFault_Handler from stm32f4xx_it_shell.o(i.HardFault_Handler) referenced from startup_stm32f429xx.o(RESET)
+
- I2C1_ER_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- I2C1_EV_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- I2C2_ER_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- I2C2_EV_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- I2C3_ER_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- I2C3_EV_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- LTDC_ER_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- LTDC_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- MemManage_Handler from stm32f4xx_it_shell.o(i.MemManage_Handler) referenced from startup_stm32f429xx.o(RESET)
+
- NMI_Handler from stm32f4xx_it_shell.o(i.NMI_Handler) referenced from startup_stm32f429xx.o(RESET)
+
- OTG_FS_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- OTG_FS_WKUP_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- OTG_HS_EP1_IN_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- OTG_HS_EP1_OUT_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- OTG_HS_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- OTG_HS_WKUP_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- PVD_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- PendSV_Handler from port_s.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- RCC_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- RTC_Alarm_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- RTC_WKUP_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- Reset_Handler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- SAI1_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- SDIO_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- SPI1_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- SPI2_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- SPI3_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- SPI4_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- SPI5_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- SPI6_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- SVC_Handler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- SysTick_Handler from stm32f4xx_it_shell.o(i.SysTick_Handler) referenced from startup_stm32f429xx.o(RESET)
+
- SystemInit from system_stm32f4xx.o(i.SystemInit) referenced from startup_stm32f429xx.o(.text)
+
- TAMP_STAMP_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- TIM1_BRK_TIM9_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- TIM1_CC_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- TIM1_TRG_COM_TIM11_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- TIM1_UP_TIM10_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- TIM2_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- TIM3_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- TIM4_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- TIM5_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- TIM6_DAC_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- TIM7_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- TIM8_BRK_TIM12_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- TIM8_CC_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- TIM8_TRG_COM_TIM14_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- TIM8_UP_TIM13_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- UART4_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- UART5_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- UART7_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- UART8_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- UART_DMAAbortOnError from stm32f4xx_hal_uart.o(i.UART_DMAAbortOnError) referenced from stm32f4xx_hal_uart.o(i.HAL_UART_IRQHandler)
+
- USART1_IRQHandler from stm32f4xx_it_shell.o(i.USART1_IRQHandler) referenced from startup_stm32f429xx.o(RESET)
+
- USART2_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- USART3_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- USART6_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- UsageFault_Handler from stm32f4xx_it_shell.o(i.UsageFault_Handler) referenced from startup_stm32f429xx.o(RESET)
+
- WWDG_IRQHandler from startup_stm32f429xx.o(.text) referenced from startup_stm32f429xx.o(RESET)
+
- __main from entry.o(.ARM.Collect$$$$00000000) referenced from startup_stm32f429xx.o(.text)
+
- _snputc from printfa.o(i._snputc) referenced from printfa.o(i.__0vsnprintf)
+
- application_entry from shell_sample.o(i.application_entry) referenced from main.o(.constdata)
+
- cmd_help from tos_shell_commands.o(i.cmd_help) referenced from tos_shell_commands.o(.constdata)
+
- cmd_ps from tos_shell_commands.o(i.cmd_ps) referenced from tos_shell_commands.o(.constdata)
+
- cmd_test00 from shell_sample.o(i.cmd_test00) referenced from shell_sample.o(.constdata)
+
- cmd_test01 from shell_sample.o(i.cmd_test01) referenced from shell_sample.o(.constdata)
+
- cmd_test10 from shell_sample.o(i.cmd_test10) referenced from shell_sample.o(.constdata)
+
- cmd_test11 from shell_sample.o(i.cmd_test11) referenced from shell_sample.o(.constdata)
+
- fputc from mcu_init.o(i.fputc) referenced from printfa.o(i.__0printf)
+
- knl_idle_entry from tos_sys.o(i.knl_idle_entry) referenced from tos_sys.o(i.knl_idle_init)
+
- main from main.o(i.main) referenced from entry9a.o(.ARM.Collect$$$$0000000B)
+
- shell_parser from tos_shell.o(i.shell_parser) referenced from tos_shell.o(i.tos_shell_init)
+
- task_default_walker from tos_task.o(i.task_default_walker) referenced from tos_task.o(i.tos_task_info_display)
+
- task_exit from tos_task.o(i.task_exit) referenced from tos_task.o(i.tos_task_create)
+
- uart_output from shell_sample.o(i.uart_output) referenced from shell_sample.o(i.application_entry)
+
+
+
+Global Symbols
+
+__main (Thumb, 0 bytes, Stack size unknown bytes, entry.o(.ARM.Collect$$$$00000000))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(.text)
+
+_main_stk (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001))
+
+
_main_scatterload (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))
+
[Calls]
+
+__main_after_scatterload (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))
+
[Called By]
+
+_main_clock (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))
+
+
_main_cpp_init (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))
+
+
_main_init (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))
+
+
__rt_final_cpp (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D))
+
+
__rt_final_exit (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$0000000F))
+
+
Reset_Handler (Thumb, 8 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+SVC_Handler (Thumb, 2 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Calls]
+
[Called By]
+
[Address Reference Count : 1]- startup_stm32f429xx.o(RESET)
+
+ADC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Calls]
+
[Called By]
+
[Address Reference Count : 1]- startup_stm32f429xx.o(RESET)
+
+CAN1_RX0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+CAN1_RX1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+CAN1_SCE_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+CAN1_TX_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+CAN2_RX0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+CAN2_RX1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+CAN2_SCE_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+CAN2_TX_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+DCMI_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+DMA1_Stream0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+DMA1_Stream1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+DMA1_Stream2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+DMA1_Stream3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+DMA1_Stream4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+DMA1_Stream5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+DMA1_Stream6_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+DMA1_Stream7_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+DMA2D_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+DMA2_Stream0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+DMA2_Stream1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+DMA2_Stream2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+DMA2_Stream3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+DMA2_Stream4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+DMA2_Stream5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+DMA2_Stream6_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+DMA2_Stream7_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+ETH_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+ETH_WKUP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+EXTI1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+EXTI4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+EXTI9_5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+FLASH_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+FMC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+FPU_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+HASH_RNG_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+I2C1_ER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+I2C1_EV_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+I2C2_ER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+I2C2_EV_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+I2C3_ER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+I2C3_EV_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+LTDC_ER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+LTDC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+OTG_FS_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+OTG_FS_WKUP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+OTG_HS_EP1_IN_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+OTG_HS_EP1_OUT_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+OTG_HS_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+OTG_HS_WKUP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+PVD_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+RCC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+RTC_Alarm_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+RTC_WKUP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+SAI1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+SDIO_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+SPI1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+SPI2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+SPI3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+SPI4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+SPI5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+SPI6_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+TAMP_STAMP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+TIM1_BRK_TIM9_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+TIM1_CC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+TIM1_TRG_COM_TIM11_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+TIM1_UP_TIM10_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+TIM2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+TIM3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+TIM4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+TIM5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+TIM6_DAC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+TIM7_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+TIM8_BRK_TIM12_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+TIM8_CC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+TIM8_TRG_COM_TIM14_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+TIM8_UP_TIM13_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+UART4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+UART5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+UART7_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+UART8_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+USART2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+USART3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+USART6_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+WWDG_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f429xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+port_int_disable (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text), UNUSED)
+
+
port_int_enable (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text), UNUSED)
+
+
port_cpsr_save (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text))
+
[Called By]
+
+port_cpsr_restore (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text))
+
[Called By]
- >> tos_cpu_cpsr_restore
+
+
+port_clz (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text))
+
[Called By]
+
+port_sched_start (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text))
+
[Called By]
+
+port_context_switch (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text))
+
[Called By]
+
+port_irq_context_switch (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text))
+
[Called By]
- >> cpu_irq_context_switch
+
+
+PendSV_Handler (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+__aeabi_uldivmod (Thumb, 98 bytes, Stack size 40 bytes, uldiv.o(.text))
+
[Stack]
- Max Depth = 40
- Call Chain = __aeabi_uldivmod
+
+
[Calls]- >> __aeabi_llsr
+
- >> __aeabi_llsl
+
+
[Called By]- >> _printf_core
+
- >> _fp_digits
+
- >> HAL_RCC_GetSysClockFreq
+
- >> cpu_init
+
+
+__aeabi_memcpy (Thumb, 36 bytes, Stack size 0 bytes, memcpya.o(.text))
+
[Called By]
- >> tos_ring_q_enqueue
+
- >> tos_ring_q_dequeue
+
+
+__aeabi_memcpy4 (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED)
+
+
__aeabi_memcpy8 (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED)
+
+
__aeabi_memset (Thumb, 14 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
+
[Called By]
- >> _memset$wrapper
+
- >> __aeabi_memclr
+
+
+__aeabi_memset4 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
+
+
__aeabi_memset8 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
+
+
__aeabi_memclr (Thumb, 4 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
+
[Calls]
+
+__aeabi_memclr4 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text))
+
[Called By]
- >> MX_GPIO_Init
+
- >> tos_shell_init
+
- >> SystemClock_Config
+
- >> HAL_UART_MspInit
+
+
+__aeabi_memclr8 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
+
+
_memset$wrapper (Thumb, 18 bytes, Stack size 8 bytes, memseta.o(.text), UNUSED)
+
[Calls]
+
+strlen (Thumb, 14 bytes, Stack size 0 bytes, strlen.o(.text))
+
[Called By]
+
+strcmp (Thumb, 28 bytes, Stack size 8 bytes, strcmp.o(.text))
+
[Stack]
- Max Depth = 8
- Call Chain = strcmp
+
+
[Called By]
+
+__aeabi_uidiv (Thumb, 0 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
+
+
__aeabi_uidivmod (Thumb, 44 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
+
[Called By]
+
+__aeabi_llsl (Thumb, 30 bytes, Stack size 0 bytes, llshl.o(.text))
+
[Called By]
- >> _double_epilogue
+
- >> __aeabi_dadd
+
- >> __aeabi_d2ulz
+
- >> __aeabi_uldivmod
+
+
+_ll_shift_l (Thumb, 0 bytes, Stack size 0 bytes, llshl.o(.text), UNUSED)
+
+
__aeabi_llsr (Thumb, 32 bytes, Stack size 0 bytes, llushr.o(.text))
+
[Called By]
- >> _double_epilogue
+
- >> __aeabi_d2ulz
+
- >> __aeabi_uldivmod
+
+
+_ll_ushift_r (Thumb, 0 bytes, Stack size 0 bytes, llushr.o(.text), UNUSED)
+
+
__I$use$fp (Thumb, 0 bytes, Stack size 48 bytes, iusefp.o(.text), UNUSED)
+
+
__aeabi_dadd (Thumb, 322 bytes, Stack size 48 bytes, dadd.o(.text), UNUSED)
+
[Calls]
- >> __aeabi_lasr
+
- >> _double_round
+
- >> _double_epilogue
+
- >> __aeabi_llsl
+
+
[Called By]- >> __aeabi_drsub
+
- >> __aeabi_dsub
+
- >> _fp_digits
+
+
+__aeabi_dsub (Thumb, 6 bytes, Stack size 0 bytes, dadd.o(.text), UNUSED)
+
[Calls]
+
+__aeabi_drsub (Thumb, 6 bytes, Stack size 0 bytes, dadd.o(.text), UNUSED)
+
[Calls]
+
+__aeabi_dmul (Thumb, 228 bytes, Stack size 48 bytes, dmul.o(.text), UNUSED)
+
[Calls]
+
[Called By]
+
+__aeabi_ddiv (Thumb, 222 bytes, Stack size 32 bytes, ddiv.o(.text), UNUSED)
+
[Calls]
+
[Called By]
+
+__aeabi_d2ulz (Thumb, 48 bytes, Stack size 0 bytes, dfixul.o(.text), UNUSED)
+
[Calls]
- >> __aeabi_llsr
+
- >> __aeabi_llsl
+
+
[Called By]
+
+__aeabi_cdrcmple (Thumb, 48 bytes, Stack size 0 bytes, cdrcmple.o(.text), UNUSED)
+
[Called By]
+
+__scatterload (Thumb, 28 bytes, Stack size 0 bytes, init.o(.text))
+
[Calls]
- >> __main_after_scatterload
+
+
[Called By]
+
+__scatterload_rt2 (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)
+
+
__aeabi_lasr (Thumb, 36 bytes, Stack size 0 bytes, llsshr.o(.text), UNUSED)
+
[Called By]
+
+_ll_sshift_r (Thumb, 0 bytes, Stack size 0 bytes, llsshr.o(.text), UNUSED)
+
+
_double_round (Thumb, 30 bytes, Stack size 8 bytes, depilogue.o(.text), UNUSED)
+
[Called By]
- >> _double_epilogue
+
- >> __aeabi_ddiv
+
- >> __aeabi_dadd
+
+
+_double_epilogue (Thumb, 156 bytes, Stack size 32 bytes, depilogue.o(.text), UNUSED)
+
[Calls]
- >> _double_round
+
- >> __aeabi_llsr
+
- >> __aeabi_llsl
+
+
[Called By]- >> __aeabi_dmul
+
- >> __aeabi_dadd
+
+
+BusFault_Handler (Thumb, 4 bytes, Stack size 0 bytes, stm32f4xx_it_shell.o(i.BusFault_Handler))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+DebugMon_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f4xx_it_shell.o(i.DebugMon_Handler))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+EXTI0_IRQHandler (Thumb, 10 bytes, Stack size 8 bytes, stm32f4xx_it_shell.o(i.EXTI0_IRQHandler))
+
[Stack]
- Max Depth = 16
- Call Chain = EXTI0_IRQHandler ⇒ HAL_GPIO_EXTI_IRQHandler
+
+
[Calls]- >> HAL_GPIO_EXTI_IRQHandler
+
+
[Address Reference Count : 1]- startup_stm32f429xx.o(RESET)
+
+EXTI15_10_IRQHandler (Thumb, 12 bytes, Stack size 8 bytes, stm32f4xx_it_shell.o(i.EXTI15_10_IRQHandler))
+
[Stack]
- Max Depth = 16
- Call Chain = EXTI15_10_IRQHandler ⇒ HAL_GPIO_EXTI_IRQHandler
+
+
[Calls]- >> HAL_GPIO_EXTI_IRQHandler
+
+
[Address Reference Count : 1]- startup_stm32f429xx.o(RESET)
+
+EXTI2_IRQHandler (Thumb, 10 bytes, Stack size 8 bytes, stm32f4xx_it_shell.o(i.EXTI2_IRQHandler))
+
[Stack]
- Max Depth = 16
- Call Chain = EXTI2_IRQHandler ⇒ HAL_GPIO_EXTI_IRQHandler
+
+
[Calls]- >> HAL_GPIO_EXTI_IRQHandler
+
+
[Address Reference Count : 1]- startup_stm32f429xx.o(RESET)
+
+EXTI3_IRQHandler (Thumb, 10 bytes, Stack size 8 bytes, stm32f4xx_it_shell.o(i.EXTI3_IRQHandler))
+
[Stack]
- Max Depth = 16
- Call Chain = EXTI3_IRQHandler ⇒ HAL_GPIO_EXTI_IRQHandler
+
+
[Calls]- >> HAL_GPIO_EXTI_IRQHandler
+
+
[Address Reference Count : 1]- startup_stm32f429xx.o(RESET)
+
+Error_Handler (Thumb, 2 bytes, Stack size 0 bytes, mcu_init.o(i.Error_Handler))
+
[Called By]
- >> MX_RNG_Init
+
- >> SystemClock_Config
+
- >> MX_USART1_UART_Init
+
+
+HAL_DMA_Abort_IT (Thumb, 40 bytes, Stack size 0 bytes, stm32f4xx_hal_dma.o(i.HAL_DMA_Abort_IT))
+
[Called By]
+
+HAL_GPIO_EXTI_Callback (Thumb, 2 bytes, Stack size 0 bytes, stm32f4xx_hal_gpio.o(i.HAL_GPIO_EXTI_Callback))
+
[Called By]
- >> HAL_GPIO_EXTI_IRQHandler
+
+
+HAL_GPIO_EXTI_IRQHandler (Thumb, 24 bytes, Stack size 8 bytes, stm32f4xx_hal_gpio.o(i.HAL_GPIO_EXTI_IRQHandler))
+
[Stack]
- Max Depth = 8
- Call Chain = HAL_GPIO_EXTI_IRQHandler
+
+
[Calls]- >> HAL_GPIO_EXTI_Callback
+
+
[Called By]- >> EXTI3_IRQHandler
+
- >> EXTI2_IRQHandler
+
- >> EXTI15_10_IRQHandler
+
- >> EXTI0_IRQHandler
+
+
+HAL_GPIO_Init (Thumb, 486 bytes, Stack size 24 bytes, stm32f4xx_hal_gpio.o(i.HAL_GPIO_Init))
+
[Stack]
- Max Depth = 24
- Call Chain = HAL_GPIO_Init
+
+
[Called By]- >> MX_GPIO_Init
+
- >> HAL_UART_MspInit
+
+
+HAL_GPIO_WritePin (Thumb, 12 bytes, Stack size 0 bytes, stm32f4xx_hal_gpio.o(i.HAL_GPIO_WritePin))
+
[Called By]
+
+HAL_GetTick (Thumb, 6 bytes, Stack size 0 bytes, stm32f4xx_hal.o(i.HAL_GetTick))
+
[Called By]
- >> HAL_UART_Transmit
+
- >> HAL_RCC_OscConfig
+
- >> HAL_RCC_ClockConfig
+
- >> HAL_PWREx_EnableOverDrive
+
- >> UART_WaitOnFlagUntilTimeout
+
+
+HAL_IncTick (Thumb, 16 bytes, Stack size 0 bytes, stm32f4xx_hal.o(i.HAL_IncTick))
+
[Called By]
+
+HAL_Init (Thumb, 54 bytes, Stack size 8 bytes, stm32f4xx_hal.o(i.HAL_Init))
+
[Stack]
- Max Depth = 72
- Call Chain = HAL_Init ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
+
+
[Calls]- >> HAL_MspInit
+
- >> HAL_InitTick
+
- >> HAL_NVIC_SetPriorityGrouping
+
+
[Called By]
+
+HAL_InitTick (Thumb, 64 bytes, Stack size 16 bytes, stm32f4xx_hal.o(i.HAL_InitTick))
+
[Stack]
- Max Depth = 64
- Call Chain = HAL_InitTick ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
+
+
[Calls]- >> HAL_NVIC_SetPriority
+
- >> HAL_SYSTICK_Config
+
+
[Called By]- >> HAL_RCC_ClockConfig
+
- >> HAL_Init
+
+
+HAL_MspInit (Thumb, 78 bytes, Stack size 8 bytes, stm32f4xx_hal_msp.o(i.HAL_MspInit))
+
[Stack]
- Max Depth = 56
- Call Chain = HAL_MspInit ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
+
+
[Calls]- >> HAL_NVIC_SetPriority
+
+
[Called By]
+
+HAL_NVIC_EnableIRQ (Thumb, 32 bytes, Stack size 0 bytes, stm32f4xx_hal_cortex.o(i.HAL_NVIC_EnableIRQ))
+
[Called By]
- >> MX_GPIO_Init
+
- >> HAL_UART_MspInit
+
+
+HAL_NVIC_SetPriority (Thumb, 124 bytes, Stack size 40 bytes, stm32f4xx_hal_cortex.o(i.HAL_NVIC_SetPriority))
+
[Stack]
- Max Depth = 48
- Call Chain = HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
+
+
[Calls]- >> __NVIC_SetPriority
+
- >> __NVIC_GetPriorityGrouping
+
+
[Called By]- >> HAL_MspInit
+
- >> MX_GPIO_Init
+
- >> HAL_InitTick
+
- >> HAL_UART_MspInit
+
+
+HAL_NVIC_SetPriorityGrouping (Thumb, 32 bytes, Stack size 0 bytes, stm32f4xx_hal_cortex.o(i.HAL_NVIC_SetPriorityGrouping))
+
[Called By]
+
+HAL_PWREx_EnableOverDrive (Thumb, 128 bytes, Stack size 16 bytes, stm32f4xx_hal_pwr_ex.o(i.HAL_PWREx_EnableOverDrive))
+
[Stack]
- Max Depth = 16
- Call Chain = HAL_PWREx_EnableOverDrive
+
+
[Calls]
+
[Called By]
+
+HAL_RCC_ClockConfig (Thumb, 366 bytes, Stack size 16 bytes, stm32f4xx_hal_rcc.o(i.HAL_RCC_ClockConfig))
+
[Stack]
- Max Depth = 88
- Call Chain = HAL_RCC_ClockConfig ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uldivmod
+
+
[Calls]- >> HAL_InitTick
+
- >> HAL_GetTick
+
- >> HAL_RCC_GetSysClockFreq
+
+
[Called By]
+
+HAL_RCC_GetHCLKFreq (Thumb, 6 bytes, Stack size 0 bytes, stm32f4xx_hal_rcc.o(i.HAL_RCC_GetHCLKFreq))
+
[Called By]
- >> HAL_RCC_GetPCLK2Freq
+
- >> HAL_RCC_GetPCLK1Freq
+
+
+HAL_RCC_GetPCLK1Freq (Thumb, 22 bytes, Stack size 4 bytes, stm32f4xx_hal_rcc.o(i.HAL_RCC_GetPCLK1Freq))
+
[Stack]
- Max Depth = 4
- Call Chain = HAL_RCC_GetPCLK1Freq
+
+
[Calls]
+
[Called By]
+
+HAL_RCC_GetPCLK2Freq (Thumb, 22 bytes, Stack size 4 bytes, stm32f4xx_hal_rcc.o(i.HAL_RCC_GetPCLK2Freq))
+
[Stack]
- Max Depth = 4
- Call Chain = HAL_RCC_GetPCLK2Freq
+
+
[Calls]
+
[Called By]
+
+HAL_RCC_GetSysClockFreq (Thumb, 162 bytes, Stack size 32 bytes, stm32f4xx_hal_rcc.o(i.HAL_RCC_GetSysClockFreq))
+
[Stack]
- Max Depth = 72
- Call Chain = HAL_RCC_GetSysClockFreq ⇒ __aeabi_uldivmod
+
+
[Calls]
+
[Called By]
+
+HAL_RCC_OscConfig (Thumb, 1086 bytes, Stack size 24 bytes, stm32f4xx_hal_rcc.o(i.HAL_RCC_OscConfig))
+
[Stack]
- Max Depth = 24
- Call Chain = HAL_RCC_OscConfig
+
+
[Calls]
+
[Called By]
+
+HAL_RNG_Init (Thumb, 52 bytes, Stack size 8 bytes, stm32f4xx_hal_rng.o(i.HAL_RNG_Init))
+
[Stack]
- Max Depth = 16
- Call Chain = HAL_RNG_Init ⇒ HAL_RNG_MspInit
+
+
[Calls]
+
[Called By]
+
+HAL_RNG_MspInit (Thumb, 44 bytes, Stack size 8 bytes, rng.o(i.HAL_RNG_MspInit))
+
[Stack]
- Max Depth = 8
- Call Chain = HAL_RNG_MspInit
+
+
[Called By]
+
+HAL_SYSTICK_Config (Thumb, 52 bytes, Stack size 16 bytes, stm32f4xx_hal_cortex.o(i.HAL_SYSTICK_Config))
+
[Stack]
- Max Depth = 24
- Call Chain = HAL_SYSTICK_Config ⇒ __NVIC_SetPriority
+
+
[Calls]
+
[Called By]
+
+HAL_UART_ErrorCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32f4xx_hal_uart.o(i.HAL_UART_ErrorCallback))
+
[Called By]
- >> HAL_UART_IRQHandler
+
- >> UART_DMAAbortOnError
+
+
+HAL_UART_GetState (Thumb, 20 bytes, Stack size 0 bytes, stm32f4xx_hal_uart.o(i.HAL_UART_GetState))
+
[Called By]
+
+HAL_UART_IRQHandler (Thumb, 328 bytes, Stack size 32 bytes, stm32f4xx_hal_uart.o(i.HAL_UART_IRQHandler))
+
[Stack]
- Max Depth = 184 + Unknown Stack Size
+
- Call Chain = HAL_UART_IRQHandler ⇒ UART_Receive_IT ⇒ HAL_UART_RxCpltCallback ⇒ tos_shell_input_byte ⇒ tos_sem_post ⇒ sem_do_post ⇒ pend_wakeup ⇒ pend_wakeup_all ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> HAL_DMA_Abort_IT
+
- >> UART_Transmit_IT
+
- >> UART_Receive_IT
+
- >> UART_EndTransmit_IT
+
- >> UART_EndRxTransfer
+
- >> HAL_UART_ErrorCallback
+
+
[Called By]
+
+HAL_UART_Init (Thumb, 114 bytes, Stack size 8 bytes, stm32f4xx_hal_uart.o(i.HAL_UART_Init))
+
[Stack]
- Max Depth = 88
- Call Chain = HAL_UART_Init ⇒ HAL_UART_MspInit ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
+
+
[Calls]- >> HAL_UART_MspInit
+
- >> UART_SetConfig
+
+
[Called By]
+
+HAL_UART_MspInit (Thumb, 140 bytes, Stack size 32 bytes, usart.o(i.HAL_UART_MspInit))
+
[Stack]
- Max Depth = 80
- Call Chain = HAL_UART_MspInit ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
+
+
[Calls]- >> HAL_NVIC_SetPriority
+
- >> HAL_NVIC_EnableIRQ
+
- >> HAL_GPIO_Init
+
- >> __aeabi_memclr4
+
+
[Called By]
+
+HAL_UART_Receive_IT (Thumb, 112 bytes, Stack size 8 bytes, stm32f4xx_hal_uart.o(i.HAL_UART_Receive_IT))
+
[Stack]
- Max Depth = 8
- Call Chain = HAL_UART_Receive_IT
+
+
[Called By]- >> USART1_IRQHandler
+
- >> MX_USART1_UART_Init
+
+
+HAL_UART_RxCpltCallback (Thumb, 22 bytes, Stack size 8 bytes, stm32f4xx_it_shell.o(i.HAL_UART_RxCpltCallback))
+
[Stack]
- Max Depth = 136 + Unknown Stack Size
+
- Call Chain = HAL_UART_RxCpltCallback ⇒ tos_shell_input_byte ⇒ tos_sem_post ⇒ sem_do_post ⇒ pend_wakeup ⇒ pend_wakeup_all ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> tos_shell_input_byte
+
+
[Called By]
+
+HAL_UART_Transmit (Thumb, 214 bytes, Stack size 32 bytes, stm32f4xx_hal_uart.o(i.HAL_UART_Transmit))
+
[Stack]
- Max Depth = 56
- Call Chain = HAL_UART_Transmit ⇒ UART_WaitOnFlagUntilTimeout
+
+
[Calls]- >> HAL_GetTick
+
- >> UART_WaitOnFlagUntilTimeout
+
+
[Called By]
+
+HAL_UART_TxCpltCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32f4xx_hal_uart.o(i.HAL_UART_TxCpltCallback))
+
[Called By]
+
+HardFault_Handler (Thumb, 4 bytes, Stack size 0 bytes, stm32f4xx_it_shell.o(i.HardFault_Handler))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+MX_GPIO_Init (Thumb, 386 bytes, Stack size 32 bytes, gpio.o(i.MX_GPIO_Init))
+
[Stack]
- Max Depth = 80
- Call Chain = MX_GPIO_Init ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
+
+
[Calls]- >> HAL_NVIC_SetPriority
+
- >> HAL_NVIC_EnableIRQ
+
- >> HAL_GPIO_WritePin
+
- >> HAL_GPIO_Init
+
- >> __aeabi_memclr4
+
+
[Called By]
+
+MX_RNG_Init (Thumb, 22 bytes, Stack size 8 bytes, rng.o(i.MX_RNG_Init))
+
[Stack]
- Max Depth = 24
- Call Chain = MX_RNG_Init ⇒ HAL_RNG_Init ⇒ HAL_RNG_MspInit
+
+
[Calls]- >> HAL_RNG_Init
+
- >> Error_Handler
+
+
[Called By]
+
+MX_USART1_UART_Init (Thumb, 56 bytes, Stack size 8 bytes, usart.o(i.MX_USART1_UART_Init))
+
[Stack]
- Max Depth = 96
- Call Chain = MX_USART1_UART_Init ⇒ HAL_UART_Init ⇒ HAL_UART_MspInit ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
+
+
[Calls]- >> HAL_UART_Receive_IT
+
- >> Error_Handler
+
- >> HAL_UART_Init
+
+
[Called By]- >> board_init
+
- >> tos_hal_uart_init
+
+
+MX_USART2_UART_Init (Thumb, 2 bytes, Stack size 0 bytes, usart.o(i.MX_USART2_UART_Init))
+
[Called By]
+
+MX_USART3_UART_Init (Thumb, 2 bytes, Stack size 0 bytes, usart.o(i.MX_USART3_UART_Init))
+
[Called By]
+
+MemManage_Handler (Thumb, 4 bytes, Stack size 0 bytes, stm32f4xx_it_shell.o(i.MemManage_Handler))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+NMI_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f4xx_it_shell.o(i.NMI_Handler))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+SysTick_Handler (Thumb, 26 bytes, Stack size 8 bytes, stm32f4xx_it_shell.o(i.SysTick_Handler))
+
[Stack]
- Max Depth = 104 + Unknown Stack Size
+
- Call Chain = SysTick_Handler ⇒ tos_tick_handler ⇒ tick_update ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> tos_tick_handler
+
- >> tos_knl_is_running
+
- >> tos_knl_irq_leave
+
- >> tos_knl_irq_enter
+
- >> HAL_IncTick
+
+
[Address Reference Count : 1]- startup_stm32f429xx.o(RESET)
+
+SystemClock_Config (Thumb, 184 bytes, Stack size 80 bytes, mcu_init.o(i.SystemClock_Config))
+
[Stack]
- Max Depth = 168
- Call Chain = SystemClock_Config ⇒ HAL_RCC_ClockConfig ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uldivmod
+
+
[Calls]- >> Error_Handler
+
- >> HAL_RCC_OscConfig
+
- >> HAL_RCC_ClockConfig
+
- >> HAL_PWREx_EnableOverDrive
+
- >> __aeabi_memclr4
+
+
[Called By]
+
+SystemInit (Thumb, 82 bytes, Stack size 0 bytes, system_stm32f4xx.o(i.SystemInit))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(.text)
+
+USART1_IRQHandler (Thumb, 74 bytes, Stack size 16 bytes, stm32f4xx_it_shell.o(i.USART1_IRQHandler))
+
[Stack]
- Max Depth = 200 + Unknown Stack Size
+
- Call Chain = USART1_IRQHandler ⇒ HAL_UART_IRQHandler ⇒ UART_Receive_IT ⇒ HAL_UART_RxCpltCallback ⇒ tos_shell_input_byte ⇒ tos_sem_post ⇒ sem_do_post ⇒ pend_wakeup ⇒ pend_wakeup_all ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> tos_knl_irq_leave
+
- >> tos_knl_irq_enter
+
- >> HAL_UART_Receive_IT
+
- >> HAL_UART_IRQHandler
+
- >> HAL_UART_GetState
+
+
[Address Reference Count : 1]- startup_stm32f429xx.o(RESET)
+
+UsageFault_Handler (Thumb, 4 bytes, Stack size 0 bytes, stm32f4xx_it_shell.o(i.UsageFault_Handler))
+
[Address Reference Count : 1]
- startup_stm32f429xx.o(RESET)
+
+__0printf (Thumb, 22 bytes, Stack size 24 bytes, printfa.o(i.__0printf), UNUSED)
+
[Calls]
+
+__1printf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0printf), UNUSED)
+
+
__2printf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0printf))
+
[Stack]
- Max Depth = 24
- Call Chain = __2printf
+
+
[Called By]- >> board_init
+
- >> main
+
- >> task_default_walker
+
- >> shell_cmd_process
+
+
+__c89printf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0printf), UNUSED)
+
+
printf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0printf), UNUSED)
+
+
__0vsnprintf (Thumb, 40 bytes, Stack size 24 bytes, printfa.o(i.__0vsnprintf), UNUSED)
+
[Calls]
+
+__1vsnprintf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0vsnprintf), UNUSED)
+
+
__2vsnprintf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0vsnprintf), UNUSED)
+
+
__c89vsnprintf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0vsnprintf), UNUSED)
+
+
vsnprintf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0vsnprintf))
+
[Stack]
- Max Depth = 24
- Call Chain = vsnprintf
+
+
[Called By]
+
+__scatterload_copy (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)
+
+
__scatterload_null (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)
+
+
__scatterload_zeroinit (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)
+
+
application_entry (Thumb, 40 bytes, Stack size 0 bytes, shell_sample.o(i.application_entry))
+
[Stack]
- Max Depth = 168 + Unknown Stack Size
+
- Call Chain = application_entry ⇒ tos_shell_init ⇒ tos_mmheap_alloc ⇒ blk_prepare_used ⇒ blk_trim_free ⇒ blk_split ⇒ blk_mark_as_free ⇒ blk_link_next ⇒ blk_next
+
+
[Calls]- >> tos_task_delay
+
- >> tos_shell_init
+
- >> tos_shell_cmd_set_regiser
+
- >> tos_hal_uart_init
+
+
[Address Reference Count : 1]
+board_init (Thumb, 38 bytes, Stack size 8 bytes, mcu_init.o(i.board_init))
+
[Stack]
- Max Depth = 176
- Call Chain = board_init ⇒ SystemClock_Config ⇒ HAL_RCC_ClockConfig ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uldivmod
+
+
[Calls]- >> MX_RNG_Init
+
- >> MX_GPIO_Init
+
- >> __2printf
+
- >> dwt_delay_init
+
- >> HAL_Init
+
- >> SystemClock_Config
+
- >> MX_USART1_UART_Init
+
+
[Called By]
+
+cpu_context_switch (Thumb, 8 bytes, Stack size 8 bytes, tos_cpu.o(i.cpu_context_switch))
+
[Stack]
- Max Depth = 8 + Unknown Stack Size
+
- Call Chain = cpu_context_switch
+
+
[Calls]
+
[Called By]
+
+cpu_init (Thumb, 30 bytes, Stack size 8 bytes, tos_cpu.o(i.cpu_init))
+
[Stack]
- Max Depth = 48
- Call Chain = cpu_init ⇒ __aeabi_uldivmod
+
+
[Calls]- >> cpu_systick_init
+
- >> __aeabi_uldivmod
+
+
[Called By]
+
+cpu_irq_context_switch (Thumb, 8 bytes, Stack size 8 bytes, tos_cpu.o(i.cpu_irq_context_switch))
+
[Stack]
- Max Depth = 8 + Unknown Stack Size
+
- Call Chain = cpu_irq_context_switch
+
+
[Calls]- >> port_irq_context_switch
+
+
[Called By]
+
+cpu_sched_start (Thumb, 4 bytes, Stack size 0 bytes, tos_cpu.o(i.cpu_sched_start))
+
[Calls]
+
[Called By]
+
+cpu_systick_init (Thumb, 18 bytes, Stack size 8 bytes, tos_cpu.o(i.cpu_systick_init))
+
[Stack]
- Max Depth = 32
- Call Chain = cpu_systick_init ⇒ port_systick_config ⇒ __NVIC_SetPriority
+
+
[Calls]- >> port_systick_priority_set
+
- >> port_systick_config
+
+
[Called By]
+
+cpu_task_stk_init (Thumb, 216 bytes, Stack size 20 bytes, tos_cpu.o(i.cpu_task_stk_init))
+
[Stack]
- Max Depth = 20
- Call Chain = cpu_task_stk_init
+
+
[Called By]
+
+dwt_delay_init (Thumb, 34 bytes, Stack size 0 bytes, dwt.o(i.dwt_delay_init))
+
[Called By]
+
+fputc (Thumb, 22 bytes, Stack size 0 bytes, mcu_init.o(i.fputc))
+
[Address Reference Count : 1]
+knl_idle_init (Thumb, 38 bytes, Stack size 24 bytes, tos_sys.o(i.knl_idle_init))
+
[Stack]
- Max Depth = 104 + Unknown Stack Size
+
- Call Chain = knl_idle_init ⇒ tos_task_create ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]
+
[Called By]
+
+knl_is_idle (Thumb, 16 bytes, Stack size 0 bytes, tos_sys.o(i.knl_is_idle))
+
[Called By]
- >> robin_sched
+
- >> task_do_destroy
+
- >> tos_task_create
+
+
+knl_is_inirq (Thumb, 14 bytes, Stack size 0 bytes, tos_sys.o(i.knl_is_inirq))
+
[Called By]
- >> tos_knl_irq_leave
+
- >> tos_task_delay
+
- >> knl_sched
+
- >> tos_task_prio_change
+
- >> tos_task_yield
+
- >> tos_task_destroy
+
- >> tos_task_create
+
- >> tos_knl_sched_unlock
+
- >> tos_knl_sched_lock
+
- >> tos_sem_pend
+
+
+knl_is_sched_locked (Thumb, 14 bytes, Stack size 0 bytes, tos_sys.o(i.knl_is_sched_locked))
+
[Called By]
- >> tos_knl_irq_leave
+
- >> tos_task_delay
+
- >> knl_sched
+
- >> robin_sched
+
- >> tos_task_destroy
+
- >> tos_knl_sched_unlock
+
- >> tos_sem_pend
+
+
+knl_is_self (Thumb, 18 bytes, Stack size 0 bytes, tos_sys.o(i.knl_is_self))
+
[Called By]
- >> tos_knl_irq_leave
+
- >> knl_sched
+
- >> tos_task_prio_change
+
- >> tos_task_destroy
+
+
+knl_sched (Thumb, 94 bytes, Stack size 8 bytes, tos_sys.o(i.knl_sched))
+
[Stack]
- Max Depth = 16 + Unknown Stack Size
+
- Call Chain = knl_sched ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tos_knl_is_running
+
- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> knl_is_sched_locked
+
- >> knl_is_inirq
+
- >> readyqueue_highest_ready_task_get
+
- >> knl_is_self
+
- >> cpu_context_switch
+
+
[Called By]- >> tos_task_delay
+
- >> sem_do_post
+
- >> robin_sched
+
- >> tos_task_prio_change
+
- >> tos_task_yield
+
- >> task_do_destroy
+
- >> tos_task_create
+
- >> tos_knl_sched_unlock
+
- >> tos_sem_pend
+
- >> tos_sem_destroy
+
+
+main (Thumb, 32 bytes, Stack size 8 bytes, main.o(i.main))
+
[Stack]
- Max Depth = 184 + Unknown Stack Size
+
- Call Chain = main ⇒ board_init ⇒ SystemClock_Config ⇒ HAL_RCC_ClockConfig ⇒ HAL_RCC_GetSysClockFreq ⇒ __aeabi_uldivmod
+
+
[Calls]- >> osThreadCreate
+
- >> osKernelStart
+
- >> osKernelInitialize
+
- >> board_init
+
- >> __2printf
+
+
[Address Reference Count : 1]- entry9a.o(.ARM.Collect$$$$0000000B)
+
+mmheap_init_with_pool (Thumb, 20 bytes, Stack size 16 bytes, tos_mmheap.o(i.mmheap_init_with_pool))
+
[Stack]
- Max Depth = 112 + Unknown Stack Size
+
- Call Chain = mmheap_init_with_pool ⇒ tos_mmheap_pool_add ⇒ blk_insert ⇒ mapping_insert ⇒ __fls ⇒ generic_fls ⇒ tos_cpu_clz
+
+
[Calls]- >> tos_mmheap_pool_add
+
- >> mmheap_ctl_init
+
+
[Called By]
+
+mutex_release (Thumb, 20 bytes, Stack size 8 bytes, tos_mutex.o(i.mutex_release))
+
[Stack]
- Max Depth = 88 + Unknown Stack Size
+
- Call Chain = mutex_release ⇒ pend_wakeup_all ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> pend_wakeup_all
+
- >> mutex_old_owner_release
+
+
[Called By]
+
+osKernelInitialize (Thumb, 14 bytes, Stack size 8 bytes, cmsis_os.o(i.osKernelInitialize))
+
[Stack]
- Max Depth = 128 + Unknown Stack Size
+
- Call Chain = osKernelInitialize ⇒ tos_knl_init ⇒ mmheap_init_with_pool ⇒ tos_mmheap_pool_add ⇒ blk_insert ⇒ mapping_insert ⇒ __fls ⇒ generic_fls ⇒ tos_cpu_clz
+
+
[Calls]- >> tos_knl_init
+
- >> errno_knl2cmsis
+
+
[Called By]
+
+osKernelStart (Thumb, 14 bytes, Stack size 8 bytes, cmsis_os.o(i.osKernelStart))
+
[Stack]
- Max Depth = 16 + Unknown Stack Size
+
- Call Chain = osKernelStart ⇒ tos_knl_start
+
+
[Calls]- >> tos_knl_start
+
- >> errno_knl2cmsis
+
+
[Called By]
+
+osThreadCreate (Thumb, 66 bytes, Stack size 40 bytes, cmsis_os.o(i.osThreadCreate))
+
[Stack]
- Max Depth = 120 + Unknown Stack Size
+
- Call Chain = osThreadCreate ⇒ tos_task_create ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> tos_task_create
+
- >> priority_cmsis2knl
+
+
[Called By]
+
+pend_highest_pending_prio_get (Thumb, 32 bytes, Stack size 16 bytes, tos_pend.o(i.pend_highest_pending_prio_get))
+
[Stack]
- Max Depth = 16
- Call Chain = pend_highest_pending_prio_get
+
+
[Calls]
+
[Called By]- >> task_highest_pending_prio_get
+
+
+pend_is_nopending (Thumb, 12 bytes, Stack size 8 bytes, tos_pend.o(i.pend_is_nopending))
+
[Stack]
- Max Depth = 8
- Call Chain = pend_is_nopending
+
+
[Calls]
+
[Called By]- >> sem_do_post
+
- >> tos_sem_destroy
+
+
+pend_list_adjust (Thumb, 22 bytes, Stack size 8 bytes, tos_pend.o(i.pend_list_adjust))
+
[Stack]
- Max Depth = 20
- Call Chain = pend_list_adjust ⇒ pend_list_add
+
+
[Calls]- >> tos_list_del
+
- >> pend_list_add
+
+
[Called By]- >> tos_task_prio_change
+
+
+pend_list_remove (Thumb, 30 bytes, Stack size 8 bytes, tos_pend.o(i.pend_list_remove))
+
[Stack]
- Max Depth = 8
- Call Chain = pend_list_remove
+
+
[Calls]
+
[Called By]- >> pend_task_wakeup
+
- >> task_do_destroy
+
+
+pend_object_deinit (Thumb, 12 bytes, Stack size 8 bytes, tos_pend.o(i.pend_object_deinit))
+
[Stack]
- Max Depth = 8
- Call Chain = pend_object_deinit
+
+
[Calls]
+
[Called By]
+
+pend_object_init (Thumb, 12 bytes, Stack size 8 bytes, tos_pend.o(i.pend_object_init))
+
[Stack]
- Max Depth = 8
- Call Chain = pend_object_init
+
+
[Calls]
+
[Called By]
+
+pend_state2errno (Thumb, 46 bytes, Stack size 0 bytes, tos_pend.o(i.pend_state2errno))
+
[Called By]
+
+pend_task_block (Thumb, 60 bytes, Stack size 24 bytes, tos_pend.o(i.pend_task_block))
+
[Stack]
- Max Depth = 88 + Unknown Stack Size
+
- Call Chain = pend_task_block ⇒ tick_list_add ⇒ tick_task_place ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tick_list_add
+
- >> readyqueue_remove
+
- >> pend_list_add
+
+
[Called By]
+
+pend_task_wakeup (Thumb, 64 bytes, Stack size 16 bytes, tos_pend.o(i.pend_task_wakeup))
+
[Stack]
- Max Depth = 56 + Unknown Stack Size
+
- Call Chain = pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> tick_list_remove
+
- >> readyqueue_add
+
- >> pend_list_remove
+
+
[Called By]- >> pend_wakeup_all
+
- >> pend_wakeup_one
+
- >> tick_update
+
+
+pend_wakeup (Thumb, 30 bytes, Stack size 16 bytes, tos_pend.o(i.pend_wakeup))
+
[Stack]
- Max Depth = 96 + Unknown Stack Size
+
- Call Chain = pend_wakeup ⇒ pend_wakeup_all ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> pend_wakeup_all
+
- >> pend_wakeup_one
+
+
[Called By]
+
+pend_wakeup_all (Thumb, 50 bytes, Stack size 24 bytes, tos_pend.o(i.pend_wakeup_all))
+
[Stack]
- Max Depth = 80 + Unknown Stack Size
+
- Call Chain = pend_wakeup_all ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]
+
[Called By]- >> pend_wakeup
+
- >> mutex_release
+
- >> tos_sem_destroy
+
+
+pend_wakeup_one (Thumb, 20 bytes, Stack size 16 bytes, tos_pend.o(i.pend_wakeup_one))
+
[Stack]
- Max Depth = 72 + Unknown Stack Size
+
- Call Chain = pend_wakeup_one ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]
+
[Called By]
+
+port_systick_config (Thumb, 50 bytes, Stack size 16 bytes, port_c.o(i.port_systick_config))
+
[Stack]
- Max Depth = 24
- Call Chain = port_systick_config ⇒ __NVIC_SetPriority
+
+
[Calls]
+
[Called By]
+
+port_systick_priority_set (Thumb, 16 bytes, Stack size 8 bytes, port_c.o(i.port_systick_priority_set))
+
[Stack]
- Max Depth = 16
- Call Chain = port_systick_priority_set ⇒ __NVIC_SetPriority
+
+
[Calls]
+
[Called By]
+
+readyqueue_add (Thumb, 32 bytes, Stack size 8 bytes, tos_sched.o(i.readyqueue_add))
+
[Stack]
- Max Depth = 40
- Call Chain = readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> readyqueue_add_tail
+
- >> readyqueue_add_head
+
+
[Called By]
+
+readyqueue_add_head (Thumb, 48 bytes, Stack size 24 bytes, tos_sched.o(i.readyqueue_add_head))
+
[Stack]
- Max Depth = 24
- Call Chain = readyqueue_add_head
+
+
[Calls]- >> tos_list_empty
+
- >> readyqueue_prio_mark
+
- >> _list_add
+
+
[Called By]- >> readyqueue_add
+
- >> tos_task_prio_change
+
+
+readyqueue_add_tail (Thumb, 38 bytes, Stack size 16 bytes, tos_sched.o(i.readyqueue_add_tail))
+
[Stack]
- Max Depth = 32
- Call Chain = readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> tos_list_empty
+
- >> tos_list_add_tail
+
- >> readyqueue_prio_mark
+
+
[Called By]- >> readyqueue_add
+
- >> tos_task_prio_change
+
- >> tos_task_yield
+
- >> tos_task_create
+
+
+readyqueue_first_task_get (Thumb, 28 bytes, Stack size 16 bytes, tos_sched.o(i.readyqueue_first_task_get))
+
[Stack]
- Max Depth = 16
- Call Chain = readyqueue_first_task_get
+
+
[Calls]
+
[Called By]
+
+readyqueue_highest_ready_task_get (Thumb, 18 bytes, Stack size 0 bytes, tos_sched.o(i.readyqueue_highest_ready_task_get))
+
[Called By]
- >> tos_knl_irq_leave
+
- >> knl_sched
+
- >> tos_knl_start
+
+
+readyqueue_init (Thumb, 60 bytes, Stack size 0 bytes, tos_sched.o(i.readyqueue_init))
+
[Called By]
+
+readyqueue_is_prio_onlyone (Thumb, 28 bytes, Stack size 0 bytes, tos_sched.o(i.readyqueue_is_prio_onlyone))
+
[Called By]
+
+readyqueue_move_head_to_tail (Thumb, 46 bytes, Stack size 16 bytes, tos_sched.o(i.readyqueue_move_head_to_tail))
+
[Stack]
- Max Depth = 32
- Call Chain = readyqueue_move_head_to_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> tos_list_empty
+
- >> tos_list_add_tail
+
- >> _list_del
+
+
[Called By]
+
+readyqueue_remove (Thumb, 94 bytes, Stack size 16 bytes, tos_sched.o(i.readyqueue_remove))
+
[Stack]
- Max Depth = 40 + Unknown Stack Size
+
- Call Chain = readyqueue_remove ⇒ readyqueue_prio_highest_get ⇒ tos_cpu_clz
+
+
[Calls]- >> tos_list_empty
+
- >> readyqueue_prio_highest_get
+
- >> _list_del
+
+
[Called By]- >> tos_task_delay
+
- >> pend_task_block
+
- >> tos_task_prio_change
+
- >> tos_task_yield
+
- >> task_do_destroy
+
+
+robin_sched (Thumb, 162 bytes, Stack size 16 bytes, tos_robin.o(i.robin_sched))
+
[Stack]
- Max Depth = 48 + Unknown Stack Size
+
- Call Chain = robin_sched ⇒ readyqueue_move_head_to_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> knl_sched
+
- >> knl_is_sched_locked
+
- >> readyqueue_move_head_to_tail
+
- >> readyqueue_is_prio_onlyone
+
- >> readyqueue_first_task_get
+
- >> knl_is_idle
+
+
[Called By]
+
+shell_cmd_find (Thumb, 50 bytes, Stack size 16 bytes, tos_shell_commands.o(i.shell_cmd_find))
+
[Stack]
- Max Depth = 24
- Call Chain = shell_cmd_find ⇒ strcmp
+
+
[Calls]
+
[Called By]- >> shell_cmd_do_process
+
+
+shell_cmd_init (Thumb, 32 bytes, Stack size 8 bytes, tos_shell_commands.o(i.shell_cmd_init))
+
[Stack]
- Max Depth = 8
- Call Chain = shell_cmd_init
+
+
[Calls]
+
[Called By]
+
+shell_cmd_set_regiser (Thumb, 32 bytes, Stack size 8 bytes, tos_shell_commands.o(i.shell_cmd_set_regiser))
+
[Stack]
- Max Depth = 8
- Call Chain = shell_cmd_set_regiser
+
+
[Calls]- >> tos_slist_contains
+
- >> tos_slist_add_head
+
+
[Called By]- >> tos_shell_cmd_set_regiser
+
+
+tick_list_add (Thumb, 32 bytes, Stack size 16 bytes, tos_tick.o(i.tick_list_add))
+
[Stack]
- Max Depth = 64 + Unknown Stack Size
+
- Call Chain = tick_list_add ⇒ tick_task_place ⇒ tos_cpu_cpsr_save
+
+
[Calls]
+
[Called By]- >> tos_task_delay
+
- >> pend_task_block
+
+
+tick_list_remove (Thumb, 24 bytes, Stack size 8 bytes, tos_tick.o(i.tick_list_remove))
+
[Stack]
- Max Depth = 32 + Unknown Stack Size
+
- Call Chain = tick_list_remove ⇒ tick_task_takeoff ⇒ tos_cpu_cpsr_save
+
+
[Calls]
+
[Called By]- >> pend_task_wakeup
+
- >> task_do_destroy
+
+
+tick_update (Thumb, 188 bytes, Stack size 32 bytes, tos_tick.o(i.tick_update))
+
[Stack]
- Max Depth = 88 + Unknown Stack Size
+
- Call Chain = tick_update ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> pend_task_wakeup
+
- >> tos_list_empty
+
+
[Called By]
+
+timer_init (Thumb, 4 bytes, Stack size 0 bytes, tos_timer.o(i.timer_init))
+
[Called By]
+
+timer_update (Thumb, 128 bytes, Stack size 16 bytes, tos_timer.o(i.timer_update))
+
[Stack]
- Max Depth = 48 + Unknown Stack Size
+
- Call Chain = timer_update ⇒ timer_takeoff ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> timer_takeoff
+
- >> timer_place
+
- >> tos_knl_sched_unlock
+
- >> tos_knl_sched_lock
+
+
[Called By]
+
+tos_chr_fifo_create (Thumb, 94 bytes, Stack size 24 bytes, tos_char_fifo.o(i.tos_chr_fifo_create))
+
[Stack]
- Max Depth = 48
- Call Chain = tos_chr_fifo_create ⇒ tos_ring_q_create
+
+
[Calls]- >> knl_object_init
+
- >> tos_ring_q_create
+
+
[Called By]
+
+tos_chr_fifo_destroy (Thumb, 98 bytes, Stack size 16 bytes, tos_char_fifo.o(i.tos_chr_fifo_destroy))
+
[Stack]
- Max Depth = 24
- Call Chain = tos_chr_fifo_destroy ⇒ tos_ring_q_destroy
+
+
[Calls]- >> knl_object_verify
+
- >> tos_ring_q_destroy
+
+
[Called By]
+
+tos_chr_fifo_pop (Thumb, 60 bytes, Stack size 16 bytes, tos_char_fifo.o(i.tos_chr_fifo_pop))
+
[Stack]
- Max Depth = 72 + Unknown Stack Size
+
- Call Chain = tos_chr_fifo_pop ⇒ tos_ring_q_dequeue ⇒ tos_ring_q_is_empty ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> knl_object_verify
+
- >> tos_ring_q_dequeue
+
+
[Called By]
+
+tos_chr_fifo_push (Thumb, 58 bytes, Stack size 16 bytes, tos_char_fifo.o(i.tos_chr_fifo_push))
+
[Stack]
- Max Depth = 64 + Unknown Stack Size
+
- Call Chain = tos_chr_fifo_push ⇒ tos_ring_q_enqueue ⇒ tos_ring_q_is_full ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> knl_object_verify
+
- >> tos_ring_q_enqueue
+
+
[Called By]- >> tos_shell_input_byte
+
+
+tos_cpu_clz (Thumb, 12 bytes, Stack size 8 bytes, tos_cpu.o(i.tos_cpu_clz))
+
[Stack]
- Max Depth = 8 + Unknown Stack Size
+
- Call Chain = tos_cpu_clz
+
+
[Calls]
+
[Called By]- >> readyqueue_prio_highest_get
+
- >> generic_fls
+
+
+tos_cpu_cpsr_restore (Thumb, 12 bytes, Stack size 8 bytes, tos_cpu.o(i.tos_cpu_cpsr_restore))
+
[Stack]
- Max Depth = 8 + Unknown Stack Size
+
- Call Chain = tos_cpu_cpsr_restore
+
+
[Calls]
+
[Called By]- >> tos_knl_irq_leave
+
- >> tos_task_delay
+
- >> knl_sched
+
- >> sem_do_post
+
- >> robin_sched
+
- >> tos_task_prio_change
+
- >> timer_takeoff
+
- >> timer_place
+
- >> tick_update
+
- >> tick_task_takeoff
+
- >> tick_task_place
+
- >> tos_task_yield
+
- >> tos_task_walkthru
+
- >> task_do_destroy
+
- >> tos_task_create
+
- >> tos_knl_sched_unlock
+
- >> tos_knl_sched_lock
+
- >> tos_sem_pend
+
- >> tos_sem_destroy
+
- >> tos_ring_q_is_full
+
- >> tos_ring_q_is_empty
+
- >> tos_ring_q_enqueue
+
- >> tos_ring_q_dequeue
+
+
+tos_cpu_cpsr_save (Thumb, 8 bytes, Stack size 8 bytes, tos_cpu.o(i.tos_cpu_cpsr_save))
+
[Stack]
- Max Depth = 8 + Unknown Stack Size
+
- Call Chain = tos_cpu_cpsr_save
+
+
[Calls]
+
[Called By]- >> tos_knl_irq_leave
+
- >> tos_task_delay
+
- >> knl_sched
+
- >> sem_do_post
+
- >> robin_sched
+
- >> tos_task_prio_change
+
- >> timer_takeoff
+
- >> timer_place
+
- >> tick_update
+
- >> tick_task_takeoff
+
- >> tick_task_place
+
- >> tos_task_yield
+
- >> tos_task_walkthru
+
- >> task_do_destroy
+
- >> tos_task_create
+
- >> tos_knl_sched_unlock
+
- >> tos_knl_sched_lock
+
- >> tos_sem_pend
+
- >> tos_sem_destroy
+
- >> tos_ring_q_is_full
+
- >> tos_ring_q_is_empty
+
- >> tos_ring_q_enqueue
+
- >> tos_ring_q_dequeue
+
+
+tos_hal_uart_init (Thumb, 58 bytes, Stack size 16 bytes, tos_hal_uart.o(i.tos_hal_uart_init))
+
[Stack]
- Max Depth = 112
- Call Chain = tos_hal_uart_init ⇒ MX_USART1_UART_Init ⇒ HAL_UART_Init ⇒ HAL_UART_MspInit ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
+
+
[Calls]- >> MX_USART3_UART_Init
+
- >> MX_USART2_UART_Init
+
- >> MX_USART1_UART_Init
+
+
[Called By]
+
+tos_hal_uart_write (Thumb, 52 bytes, Stack size 24 bytes, tos_hal_uart.o(i.tos_hal_uart_write))
+
[Stack]
- Max Depth = 80
- Call Chain = tos_hal_uart_write ⇒ HAL_UART_Transmit ⇒ UART_WaitOnFlagUntilTimeout
+
+
[Calls]
+
[Called By]
+
+tos_knl_init (Thumb, 56 bytes, Stack size 8 bytes, tos_sys.o(i.tos_knl_init))
+
[Stack]
- Max Depth = 120 + Unknown Stack Size
+
- Call Chain = tos_knl_init ⇒ mmheap_init_with_pool ⇒ tos_mmheap_pool_add ⇒ blk_insert ⇒ mapping_insert ⇒ __fls ⇒ generic_fls ⇒ tos_cpu_clz
+
+
[Calls]- >> readyqueue_init
+
- >> mmheap_init_with_pool
+
- >> timer_init
+
- >> cpu_init
+
- >> knl_idle_init
+
+
[Called By]
+
+tos_knl_irq_enter (Thumb, 42 bytes, Stack size 4 bytes, tos_sys.o(i.tos_knl_irq_enter))
+
[Stack]
- Max Depth = 4
- Call Chain = tos_knl_irq_enter
+
+
[Calls]
+
[Called By]- >> USART1_IRQHandler
+
- >> SysTick_Handler
+
+
+tos_knl_irq_leave (Thumb, 134 bytes, Stack size 8 bytes, tos_sys.o(i.tos_knl_irq_leave))
+
[Stack]
- Max Depth = 16 + Unknown Stack Size
+
- Call Chain = tos_knl_irq_leave ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tos_knl_is_running
+
- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> knl_is_sched_locked
+
- >> knl_is_inirq
+
- >> readyqueue_highest_ready_task_get
+
- >> knl_is_self
+
- >> cpu_irq_context_switch
+
+
[Called By]- >> USART1_IRQHandler
+
- >> SysTick_Handler
+
+
+tos_knl_is_running (Thumb, 14 bytes, Stack size 0 bytes, tos_sys.o(i.tos_knl_is_running))
+
[Called By]
- >> tos_tick_handler
+
- >> tos_knl_irq_leave
+
- >> tos_knl_irq_enter
+
- >> SysTick_Handler
+
- >> knl_sched
+
- >> tos_task_create
+
- >> tos_knl_start
+
- >> tos_knl_sched_unlock
+
- >> tos_knl_sched_lock
+
+
+tos_knl_sched_lock (Thumb, 88 bytes, Stack size 8 bytes, tos_sys.o(i.tos_knl_sched_lock))
+
[Stack]
- Max Depth = 16 + Unknown Stack Size
+
- Call Chain = tos_knl_sched_lock ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tos_knl_is_running
+
- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> knl_is_inirq
+
+
[Called By]
+
+tos_knl_sched_unlock (Thumb, 90 bytes, Stack size 8 bytes, tos_sys.o(i.tos_knl_sched_unlock))
+
[Stack]
- Max Depth = 24 + Unknown Stack Size
+
- Call Chain = tos_knl_sched_unlock ⇒ knl_sched ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tos_knl_is_running
+
- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> knl_sched
+
- >> knl_is_sched_locked
+
- >> knl_is_inirq
+
+
[Called By]
+
+tos_knl_start (Thumb, 52 bytes, Stack size 8 bytes, tos_sys.o(i.tos_knl_start))
+
[Stack]
- Max Depth = 8 + Unknown Stack Size
+
- Call Chain = tos_knl_start
+
+
[Calls]- >> tos_knl_is_running
+
- >> readyqueue_highest_ready_task_get
+
- >> cpu_sched_start
+
+
[Called By]
+
+tos_mmheap_alloc (Thumb, 38 bytes, Stack size 16 bytes, tos_mmheap.o(i.tos_mmheap_alloc))
+
[Stack]
- Max Depth = 128 + Unknown Stack Size
+
- Call Chain = tos_mmheap_alloc ⇒ blk_prepare_used ⇒ blk_trim_free ⇒ blk_split ⇒ blk_mark_as_free ⇒ blk_link_next ⇒ blk_next
+
+
[Calls]- >> blk_prepare_used
+
- >> blk_locate_free
+
- >> adjust_request_size
+
+
[Called By]
+
+tos_mmheap_free (Thumb, 48 bytes, Stack size 16 bytes, tos_mmheap.o(i.tos_mmheap_free))
+
[Stack]
- Max Depth = 104 + Unknown Stack Size
+
- Call Chain = tos_mmheap_free ⇒ blk_merge_prev ⇒ blk_remove ⇒ mapping_insert ⇒ __fls ⇒ generic_fls ⇒ tos_cpu_clz
+
+
[Calls]- >> blk_merge_prev
+
- >> blk_merge_next
+
- >> blk_mark_as_free
+
- >> blk_insert
+
+
[Called By]
+
+tos_mmheap_pool_add (Thumb, 182 bytes, Stack size 24 bytes, tos_mmheap.o(i.tos_mmheap_pool_add))
+
[Stack]
- Max Depth = 96 + Unknown Stack Size
+
- Call Chain = tos_mmheap_pool_add ⇒ blk_insert ⇒ mapping_insert ⇒ __fls ⇒ generic_fls ⇒ tos_cpu_clz
+
+
[Calls]- >> offset_to_blk
+
- >> mmheap_pool_is_exist
+
- >> blk_set_used
+
- >> blk_set_size
+
- >> blk_set_prev_used
+
- >> blk_set_prev_free
+
- >> blk_set_free
+
- >> blk_link_next
+
- >> blk_insert
+
+
[Called By]- >> mmheap_init_with_pool
+
+
+tos_ring_q_create (Thumb, 90 bytes, Stack size 24 bytes, tos_ring_queue.o(i.tos_ring_q_create))
+
[Stack]
- Max Depth = 24
- Call Chain = tos_ring_q_create
+
+
[Calls]
+
[Called By]
+
+tos_ring_q_dequeue (Thumb, 182 bytes, Stack size 32 bytes, tos_ring_queue.o(i.tos_ring_q_dequeue))
+
[Stack]
- Max Depth = 56 + Unknown Stack Size
+
- Call Chain = tos_ring_q_dequeue ⇒ tos_ring_q_is_empty ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> knl_object_verify
+
- >> tos_ring_q_is_empty
+
- >> __aeabi_memcpy
+
+
[Called By]
+
+tos_ring_q_destroy (Thumb, 96 bytes, Stack size 8 bytes, tos_ring_queue.o(i.tos_ring_q_destroy))
+
[Stack]
- Max Depth = 8
- Call Chain = tos_ring_q_destroy
+
+
[Calls]
+
[Called By]- >> tos_chr_fifo_destroy
+
+
+tos_ring_q_enqueue (Thumb, 184 bytes, Stack size 24 bytes, tos_ring_queue.o(i.tos_ring_q_enqueue))
+
[Stack]
- Max Depth = 48 + Unknown Stack Size
+
- Call Chain = tos_ring_q_enqueue ⇒ tos_ring_q_is_full ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> knl_object_verify
+
- >> tos_ring_q_is_full
+
- >> __aeabi_memcpy
+
+
[Called By]
+
+tos_ring_q_is_empty (Thumb, 82 bytes, Stack size 16 bytes, tos_ring_queue.o(i.tos_ring_q_is_empty))
+
[Stack]
- Max Depth = 24 + Unknown Stack Size
+
- Call Chain = tos_ring_q_is_empty ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> knl_object_verify
+
+
[Called By]
+
+tos_ring_q_is_full (Thumb, 86 bytes, Stack size 16 bytes, tos_ring_queue.o(i.tos_ring_q_is_full))
+
[Stack]
- Max Depth = 24 + Unknown Stack Size
+
- Call Chain = tos_ring_q_is_full ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> knl_object_verify
+
+
[Called By]
+
+tos_sem_create (Thumb, 20 bytes, Stack size 16 bytes, tos_sem.o(i.tos_sem_create))
+
[Stack]
- Max Depth = 40
- Call Chain = tos_sem_create ⇒ tos_sem_create_max ⇒ pend_object_init
+
+
[Calls]
+
[Called By]
+
+tos_sem_create_max (Thumb, 50 bytes, Stack size 16 bytes, tos_sem.o(i.tos_sem_create_max))
+
[Stack]
- Max Depth = 24
- Call Chain = tos_sem_create_max ⇒ pend_object_init
+
+
[Calls]
+
[Called By]
+
+tos_sem_destroy (Thumb, 106 bytes, Stack size 16 bytes, tos_sem.o(i.tos_sem_destroy))
+
[Stack]
- Max Depth = 96 + Unknown Stack Size
+
- Call Chain = tos_sem_destroy ⇒ pend_wakeup_all ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> pend_wakeup_all
+
- >> pend_object_deinit
+
- >> pend_is_nopending
+
- >> knl_sched
+
- >> knl_object_verify
+
+
[Called By]
+
+tos_sem_pend (Thumb, 206 bytes, Stack size 24 bytes, tos_sem.o(i.tos_sem_pend))
+
[Stack]
- Max Depth = 112 + Unknown Stack Size
+
- Call Chain = tos_sem_pend ⇒ pend_task_block ⇒ tick_list_add ⇒ tick_task_place ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> pend_task_block
+
- >> pend_state2errno
+
- >> knl_sched
+
- >> knl_is_sched_locked
+
- >> knl_is_inirq
+
- >> knl_object_verify
+
+
[Called By]
+
+tos_sem_post (Thumb, 14 bytes, Stack size 8 bytes, tos_sem.o(i.tos_sem_post))
+
[Stack]
- Max Depth = 120 + Unknown Stack Size
+
- Call Chain = tos_sem_post ⇒ sem_do_post ⇒ pend_wakeup ⇒ pend_wakeup_all ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]
+
[Called By]- >> tos_shell_input_byte
+
+
+tos_shell_cmd_set_regiser (Thumb, 12 bytes, Stack size 8 bytes, tos_shell.o(i.tos_shell_cmd_set_regiser))
+
[Stack]
- Max Depth = 16
- Call Chain = tos_shell_cmd_set_regiser ⇒ shell_cmd_set_regiser
+
+
[Calls]- >> shell_cmd_set_regiser
+
+
[Called By]
+
+tos_shell_init (Thumb, 206 bytes, Stack size 40 bytes, tos_shell.o(i.tos_shell_init))
+
[Stack]
- Max Depth = 168 + Unknown Stack Size
+
- Call Chain = tos_shell_init ⇒ tos_mmheap_alloc ⇒ blk_prepare_used ⇒ blk_trim_free ⇒ blk_split ⇒ blk_mark_as_free ⇒ blk_link_next ⇒ blk_next
+
+
[Calls]- >> tos_mmheap_free
+
- >> tos_mmheap_alloc
+
- >> tos_task_create
+
- >> tos_sem_destroy
+
- >> tos_sem_create
+
- >> shell_cmd_init
+
- >> tos_chr_fifo_destroy
+
- >> tos_chr_fifo_create
+
- >> __aeabi_memclr4
+
+
[Called By]
+
+tos_shell_input_byte (Thumb, 24 bytes, Stack size 8 bytes, tos_shell.o(i.tos_shell_input_byte))
+
[Stack]
- Max Depth = 128 + Unknown Stack Size
+
- Call Chain = tos_shell_input_byte ⇒ tos_sem_post ⇒ sem_do_post ⇒ pend_wakeup ⇒ pend_wakeup_all ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> tos_sem_post
+
- >> tos_chr_fifo_push
+
+
[Called By]- >> HAL_UART_RxCpltCallback
+
+
+tos_shell_printf (Thumb, 40 bytes, Stack size 24 bytes, tos_shell.o(i.tos_shell_printf))
+
[Stack]
- Max Depth = 48
- Call Chain = tos_shell_printf ⇒ vsnprintf
+
+
[Calls]
+
[Called By]- >> cmd_test11
+
- >> cmd_test10
+
- >> cmd_test01
+
- >> cmd_test00
+
- >> shell_prompt
+
- >> shell_cmd_do_process
+
- >> cmd_help
+
+
+tos_task_create (Thumb, 318 bytes, Stack size 48 bytes, tos_task.o(i.tos_task_create))
+
[Stack]
- Max Depth = 80 + Unknown Stack Size
+
- Call Chain = tos_task_create ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> tos_knl_is_running
+
- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> knl_sched
+
- >> knl_is_inirq
+
- >> readyqueue_add_tail
+
- >> knl_is_idle
+
- >> cpu_task_stk_init
+
- >> task_reset
+
+
[Called By]- >> osThreadCreate
+
- >> tos_shell_init
+
- >> knl_idle_init
+
+
+tos_task_delay (Thumb, 146 bytes, Stack size 16 bytes, tos_task.o(i.tos_task_delay))
+
[Stack]
- Max Depth = 80 + Unknown Stack Size
+
- Call Chain = tos_task_delay ⇒ tick_list_add ⇒ tick_task_place ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> knl_sched
+
- >> knl_is_sched_locked
+
- >> knl_is_inirq
+
- >> tick_list_add
+
- >> readyqueue_remove
+
- >> tos_task_yield
+
+
[Called By]
+
+tos_task_destroy (Thumb, 92 bytes, Stack size 8 bytes, tos_task.o(i.tos_task_destroy))
+
[Stack]
- Max Depth = 128 + Unknown Stack Size
+
- Call Chain = tos_task_destroy ⇒ task_do_destroy ⇒ task_mutex_release ⇒ mutex_release ⇒ pend_wakeup_all ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> knl_is_sched_locked
+
- >> knl_is_inirq
+
- >> knl_is_self
+
- >> task_do_destroy
+
- >> knl_object_verify
+
+
[Called By]
+
+tos_task_info_display (Thumb, 10 bytes, Stack size 8 bytes, tos_task.o(i.tos_task_info_display))
+
[Stack]
- Max Depth = 32 + Unknown Stack Size
+
- Call Chain = tos_task_info_display ⇒ tos_task_walkthru ⇒ tos_cpu_cpsr_save
+
+
[Calls]
+
[Called By]
+
+tos_task_prio_change (Thumb, 248 bytes, Stack size 24 bytes, tos_task.o(i.tos_task_prio_change))
+
[Stack]
- Max Depth = 64 + Unknown Stack Size
+
- Call Chain = tos_task_prio_change ⇒ readyqueue_remove ⇒ readyqueue_prio_highest_get ⇒ tos_cpu_clz
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> knl_sched
+
- >> knl_is_inirq
+
- >> readyqueue_add_tail
+
- >> readyqueue_add_head
+
- >> readyqueue_remove
+
- >> pend_list_adjust
+
- >> knl_is_self
+
- >> tos_list_empty
+
- >> task_state_is_ready
+
- >> task_highest_pending_prio_get
+
- >> knl_object_verify
+
+
[Called By]- >> mutex_old_owner_release
+
+
+tos_task_walkthru (Thumb, 64 bytes, Stack size 16 bytes, tos_task.o(i.tos_task_walkthru))
+
[Stack]
- Max Depth = 24 + Unknown Stack Size
+
- Call Chain = tos_task_walkthru ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
+
[Called By]- >> tos_task_info_display
+
+
+tos_task_yield (Thumb, 56 bytes, Stack size 8 bytes, tos_task.o(i.tos_task_yield))
+
[Stack]
- Max Depth = 48 + Unknown Stack Size
+
- Call Chain = tos_task_yield ⇒ readyqueue_remove ⇒ readyqueue_prio_highest_get ⇒ tos_cpu_clz
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> knl_sched
+
- >> knl_is_inirq
+
- >> readyqueue_add_tail
+
- >> readyqueue_remove
+
+
[Called By]
+
+tos_tick_handler (Thumb, 44 bytes, Stack size 8 bytes, tos_tick.o(i.tos_tick_handler))
+
[Stack]
- Max Depth = 96 + Unknown Stack Size
+
- Call Chain = tos_tick_handler ⇒ tick_update ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> tos_knl_is_running
+
- >> robin_sched
+
- >> timer_update
+
- >> tick_update
+
+
[Called By]
+
+uart_output (Thumb, 26 bytes, Stack size 16 bytes, shell_sample.o(i.uart_output))
+
[Stack]
- Max Depth = 96
- Call Chain = uart_output ⇒ tos_hal_uart_write ⇒ HAL_UART_Transmit ⇒ UART_WaitOnFlagUntilTimeout
+
+
[Calls]- >> tos_hal_uart_write
+
- >> strlen
+
+
[Address Reference Count : 1]- shell_sample.o(i.application_entry)
+
+
+Local Symbols
+
+cmd_test00 (Thumb, 40 bytes, Stack size 16 bytes, shell_sample.o(i.cmd_test00))
+
[Stack]
- Max Depth = 64
- Call Chain = cmd_test00 ⇒ tos_shell_printf ⇒ vsnprintf
+
+
[Calls]
+
[Address Reference Count : 1]- shell_sample.o(.constdata)
+
+cmd_test01 (Thumb, 16 bytes, Stack size 16 bytes, shell_sample.o(i.cmd_test01))
+
[Stack]
- Max Depth = 64
- Call Chain = cmd_test01 ⇒ tos_shell_printf ⇒ vsnprintf
+
+
[Calls]
+
[Address Reference Count : 1]- shell_sample.o(.constdata)
+
+cmd_test10 (Thumb, 40 bytes, Stack size 16 bytes, shell_sample.o(i.cmd_test10))
+
[Stack]
- Max Depth = 64
- Call Chain = cmd_test10 ⇒ tos_shell_printf ⇒ vsnprintf
+
+
[Calls]
+
[Address Reference Count : 1]- shell_sample.o(.constdata)
+
+cmd_test11 (Thumb, 16 bytes, Stack size 16 bytes, shell_sample.o(i.cmd_test11))
+
[Stack]
- Max Depth = 64
- Call Chain = cmd_test11 ⇒ tos_shell_printf ⇒ vsnprintf
+
+
[Calls]
+
[Address Reference Count : 1]- shell_sample.o(.constdata)
+
+__NVIC_GetPriorityGrouping (Thumb, 10 bytes, Stack size 0 bytes, stm32f4xx_hal_cortex.o(i.__NVIC_GetPriorityGrouping))
+
[Called By]
- >> HAL_NVIC_SetPriority
+
+
+__NVIC_SetPriority (Thumb, 32 bytes, Stack size 8 bytes, stm32f4xx_hal_cortex.o(i.__NVIC_SetPriority))
+
[Stack]
- Max Depth = 8
- Call Chain = __NVIC_SetPriority
+
+
[Called By]- >> HAL_NVIC_SetPriority
+
- >> HAL_SYSTICK_Config
+
+
+UART_DMAAbortOnError (Thumb, 20 bytes, Stack size 16 bytes, stm32f4xx_hal_uart.o(i.UART_DMAAbortOnError))
+
[Stack]
- Max Depth = 16
- Call Chain = UART_DMAAbortOnError
+
+
[Calls]- >> HAL_UART_ErrorCallback
+
+
[Address Reference Count : 1]- stm32f4xx_hal_uart.o(i.HAL_UART_IRQHandler)
+
+UART_EndRxTransfer (Thumb, 32 bytes, Stack size 0 bytes, stm32f4xx_hal_uart.o(i.UART_EndRxTransfer))
+
[Called By]
+
+UART_EndTransmit_IT (Thumb, 32 bytes, Stack size 8 bytes, stm32f4xx_hal_uart.o(i.UART_EndTransmit_IT))
+
[Stack]
- Max Depth = 8
- Call Chain = UART_EndTransmit_IT
+
+
[Calls]- >> HAL_UART_TxCpltCallback
+
+
[Called By]
+
+UART_Receive_IT (Thumb, 166 bytes, Stack size 16 bytes, stm32f4xx_hal_uart.o(i.UART_Receive_IT))
+
[Stack]
- Max Depth = 152 + Unknown Stack Size
+
- Call Chain = UART_Receive_IT ⇒ HAL_UART_RxCpltCallback ⇒ tos_shell_input_byte ⇒ tos_sem_post ⇒ sem_do_post ⇒ pend_wakeup ⇒ pend_wakeup_all ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> HAL_UART_RxCpltCallback
+
+
[Called By]
+
+UART_SetConfig (Thumb, 864 bytes, Stack size 24 bytes, stm32f4xx_hal_uart.o(i.UART_SetConfig))
+
[Stack]
- Max Depth = 28
- Call Chain = UART_SetConfig ⇒ HAL_RCC_GetPCLK2Freq
+
+
[Calls]- >> HAL_RCC_GetPCLK2Freq
+
- >> HAL_RCC_GetPCLK1Freq
+
+
[Called By]
+
+UART_Transmit_IT (Thumb, 104 bytes, Stack size 0 bytes, stm32f4xx_hal_uart.o(i.UART_Transmit_IT))
+
[Called By]
+
+UART_WaitOnFlagUntilTimeout (Thumb, 108 bytes, Stack size 24 bytes, stm32f4xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout))
+
[Stack]
- Max Depth = 24
- Call Chain = UART_WaitOnFlagUntilTimeout
+
+
[Calls]
+
[Called By]
+
+__ffs (Thumb, 20 bytes, Stack size 8 bytes, tos_mmheap.o(i.__ffs))
+
[Stack]
- Max Depth = 24 + Unknown Stack Size
+
- Call Chain = __ffs ⇒ generic_fls ⇒ tos_cpu_clz
+
+
[Calls]
+
[Called By]
+
+__fls (Thumb, 14 bytes, Stack size 8 bytes, tos_mmheap.o(i.__fls))
+
[Stack]
- Max Depth = 24 + Unknown Stack Size
+
- Call Chain = __fls ⇒ generic_fls ⇒ tos_cpu_clz
+
+
[Calls]
+
[Called By]- >> mapping_search
+
- >> mapping_insert
+
+
+adjust_request_size (Thumb, 46 bytes, Stack size 8 bytes, tos_mmheap.o(i.adjust_request_size))
+
[Stack]
- Max Depth = 8
- Call Chain = adjust_request_size
+
+
[Called By]
+
+blk_absorb (Thumb, 30 bytes, Stack size 16 bytes, tos_mmheap.o(i.blk_absorb))
+
[Stack]
- Max Depth = 56
- Call Chain = blk_absorb ⇒ blk_link_next ⇒ blk_next
+
+
[Calls]- >> blk_size
+
- >> blk_link_next
+
+
[Called By]- >> blk_merge_prev
+
- >> blk_merge_next
+
+
+blk_can_split (Thumb, 28 bytes, Stack size 16 bytes, tos_mmheap.o(i.blk_can_split))
+
[Stack]
- Max Depth = 16
- Call Chain = blk_can_split
+
+
[Calls]
+
[Called By]
+
+blk_insert (Thumb, 32 bytes, Stack size 24 bytes, tos_mmheap.o(i.blk_insert))
+
[Stack]
- Max Depth = 72 + Unknown Stack Size
+
- Call Chain = blk_insert ⇒ mapping_insert ⇒ __fls ⇒ generic_fls ⇒ tos_cpu_clz
+
+
[Calls]- >> mapping_insert
+
- >> insert_free_block
+
- >> blk_size
+
+
[Called By]- >> tos_mmheap_pool_add
+
- >> tos_mmheap_free
+
- >> blk_trim_free
+
+
+blk_link_next (Thumb, 18 bytes, Stack size 16 bytes, tos_mmheap.o(i.blk_link_next))
+
[Stack]
- Max Depth = 40
- Call Chain = blk_link_next ⇒ blk_next
+
+
[Calls]
+
[Called By]- >> tos_mmheap_pool_add
+
- >> blk_trim_free
+
- >> blk_mark_as_free
+
- >> blk_absorb
+
+
+blk_locate_free (Thumb, 58 bytes, Stack size 24 bytes, tos_mmheap.o(i.blk_locate_free))
+
[Stack]
- Max Depth = 96 + Unknown Stack Size
+
- Call Chain = blk_locate_free ⇒ mapping_search ⇒ mapping_insert ⇒ __fls ⇒ generic_fls ⇒ tos_cpu_clz
+
+
[Calls]- >> remove_free_block
+
- >> mapping_search
+
- >> blk_search_suitable
+
+
[Called By]
+
+blk_mark_as_free (Thumb, 26 bytes, Stack size 16 bytes, tos_mmheap.o(i.blk_mark_as_free))
+
[Stack]
- Max Depth = 56
- Call Chain = blk_mark_as_free ⇒ blk_link_next ⇒ blk_next
+
+
[Calls]- >> blk_set_prev_free
+
- >> blk_set_free
+
- >> blk_link_next
+
+
[Called By]- >> tos_mmheap_free
+
- >> blk_split
+
+
+blk_mark_as_used (Thumb, 26 bytes, Stack size 16 bytes, tos_mmheap.o(i.blk_mark_as_used))
+
[Stack]
- Max Depth = 40
- Call Chain = blk_mark_as_used ⇒ blk_next
+
+
[Calls]- >> blk_set_used
+
- >> blk_set_prev_used
+
- >> blk_next
+
+
[Called By]
+
+blk_merge_next (Thumb, 42 bytes, Stack size 16 bytes, tos_mmheap.o(i.blk_merge_next))
+
[Stack]
- Max Depth = 88 + Unknown Stack Size
+
- Call Chain = blk_merge_next ⇒ blk_remove ⇒ mapping_insert ⇒ __fls ⇒ generic_fls ⇒ tos_cpu_clz
+
+
[Calls]- >> blk_remove
+
- >> blk_next
+
- >> blk_absorb
+
+
[Called By]
+
+blk_merge_prev (Thumb, 40 bytes, Stack size 16 bytes, tos_mmheap.o(i.blk_merge_prev))
+
[Stack]
- Max Depth = 88 + Unknown Stack Size
+
- Call Chain = blk_merge_prev ⇒ blk_remove ⇒ mapping_insert ⇒ __fls ⇒ generic_fls ⇒ tos_cpu_clz
+
+
[Calls]- >> blk_remove
+
- >> blk_absorb
+
+
[Called By]
+
+blk_next (Thumb, 36 bytes, Stack size 24 bytes, tos_mmheap.o(i.blk_next))
+
[Stack]
- Max Depth = 24
- Call Chain = blk_next
+
+
[Calls]- >> offset_to_blk
+
- >> blk_to_ptr
+
- >> blk_size
+
+
[Called By]- >> blk_merge_next
+
- >> blk_mark_as_used
+
- >> blk_link_next
+
+
+blk_prepare_used (Thumb, 34 bytes, Stack size 16 bytes, tos_mmheap.o(i.blk_prepare_used))
+
[Stack]
- Max Depth = 112 + Unknown Stack Size
+
- Call Chain = blk_prepare_used ⇒ blk_trim_free ⇒ blk_split ⇒ blk_mark_as_free ⇒ blk_link_next ⇒ blk_next
+
+
[Calls]- >> blk_trim_free
+
- >> blk_to_ptr
+
- >> blk_mark_as_used
+
+
[Called By]
+
+blk_remove (Thumb, 32 bytes, Stack size 24 bytes, tos_mmheap.o(i.blk_remove))
+
[Stack]
- Max Depth = 72 + Unknown Stack Size
+
- Call Chain = blk_remove ⇒ mapping_insert ⇒ __fls ⇒ generic_fls ⇒ tos_cpu_clz
+
+
[Calls]- >> remove_free_block
+
- >> mapping_insert
+
- >> blk_size
+
+
[Called By]- >> blk_merge_prev
+
- >> blk_merge_next
+
+
+blk_search_suitable (Thumb, 104 bytes, Stack size 32 bytes, tos_mmheap.o(i.blk_search_suitable))
+
[Stack]
- Max Depth = 56 + Unknown Stack Size
+
- Call Chain = blk_search_suitable ⇒ __ffs ⇒ generic_fls ⇒ tos_cpu_clz
+
+
[Calls]
+
[Called By]
+
+blk_set_free (Thumb, 10 bytes, Stack size 0 bytes, tos_mmheap.o(i.blk_set_free))
+
[Called By]
- >> tos_mmheap_pool_add
+
- >> blk_mark_as_free
+
+
+blk_set_prev_free (Thumb, 10 bytes, Stack size 0 bytes, tos_mmheap.o(i.blk_set_prev_free))
+
[Called By]
- >> tos_mmheap_pool_add
+
- >> blk_trim_free
+
- >> blk_mark_as_free
+
+
+blk_set_prev_used (Thumb, 10 bytes, Stack size 0 bytes, tos_mmheap.o(i.blk_set_prev_used))
+
[Called By]
- >> tos_mmheap_pool_add
+
- >> blk_mark_as_used
+
+
+blk_set_size (Thumb, 12 bytes, Stack size 0 bytes, tos_mmheap.o(i.blk_set_size))
+
[Called By]
- >> tos_mmheap_pool_add
+
- >> blk_split
+
+
+blk_set_used (Thumb, 10 bytes, Stack size 0 bytes, tos_mmheap.o(i.blk_set_used))
+
[Called By]
- >> tos_mmheap_pool_add
+
- >> blk_mark_as_used
+
+
+blk_size (Thumb, 10 bytes, Stack size 0 bytes, tos_mmheap.o(i.blk_size))
+
[Called By]
- >> blk_split
+
- >> blk_remove
+
- >> blk_next
+
- >> blk_insert
+
- >> blk_can_split
+
- >> blk_absorb
+
+
+blk_split (Thumb, 62 bytes, Stack size 24 bytes, tos_mmheap.o(i.blk_split))
+
[Stack]
- Max Depth = 80
- Call Chain = blk_split ⇒ blk_mark_as_free ⇒ blk_link_next ⇒ blk_next
+
+
[Calls]- >> offset_to_blk
+
- >> blk_to_ptr
+
- >> blk_size
+
- >> blk_set_size
+
- >> blk_mark_as_free
+
+
[Called By]
+
+blk_to_ptr (Thumb, 8 bytes, Stack size 0 bytes, tos_mmheap.o(i.blk_to_ptr))
+
[Called By]
- >> blk_split
+
- >> blk_prepare_used
+
- >> blk_next
+
+
+blk_trim_free (Thumb, 46 bytes, Stack size 16 bytes, tos_mmheap.o(i.blk_trim_free))
+
[Stack]
- Max Depth = 96 + Unknown Stack Size
+
- Call Chain = blk_trim_free ⇒ blk_split ⇒ blk_mark_as_free ⇒ blk_link_next ⇒ blk_next
+
+
[Calls]- >> blk_split
+
- >> blk_set_prev_free
+
- >> blk_link_next
+
- >> blk_insert
+
- >> blk_can_split
+
+
[Called By]
+
+generic_fls (Thumb, 16 bytes, Stack size 8 bytes, tos_mmheap.o(i.generic_fls))
+
[Stack]
- Max Depth = 16 + Unknown Stack Size
+
- Call Chain = generic_fls ⇒ tos_cpu_clz
+
+
[Calls]
+
[Called By]
+
+insert_free_block (Thumb, 74 bytes, Stack size 12 bytes, tos_mmheap.o(i.insert_free_block))
+
[Stack]
- Max Depth = 12
- Call Chain = insert_free_block
+
+
[Called By]
+
+mapping_insert (Thumb, 58 bytes, Stack size 24 bytes, tos_mmheap.o(i.mapping_insert))
+
[Stack]
- Max Depth = 48 + Unknown Stack Size
+
- Call Chain = mapping_insert ⇒ __fls ⇒ generic_fls ⇒ tos_cpu_clz
+
+
[Calls]
+
[Called By]- >> mapping_search
+
- >> blk_remove
+
- >> blk_insert
+
+
+mapping_search (Thumb, 46 bytes, Stack size 24 bytes, tos_mmheap.o(i.mapping_search))
+
[Stack]
- Max Depth = 72 + Unknown Stack Size
+
- Call Chain = mapping_search ⇒ mapping_insert ⇒ __fls ⇒ generic_fls ⇒ tos_cpu_clz
+
+
[Calls]- >> mapping_insert
+
- >> __fls
+
+
[Called By]
+
+mmheap_ctl_init (Thumb, 88 bytes, Stack size 0 bytes, tos_mmheap.o(i.mmheap_ctl_init))
+
[Called By]
- >> mmheap_init_with_pool
+
+
+mmheap_pool_is_exist (Thumb, 38 bytes, Stack size 0 bytes, tos_mmheap.o(i.mmheap_pool_is_exist))
+
[Called By]
+
+offset_to_blk (Thumb, 6 bytes, Stack size 0 bytes, tos_mmheap.o(i.offset_to_blk))
+
[Called By]
- >> tos_mmheap_pool_add
+
- >> blk_split
+
- >> blk_next
+
+
+remove_free_block (Thumb, 92 bytes, Stack size 16 bytes, tos_mmheap.o(i.remove_free_block))
+
[Stack]
- Max Depth = 16
- Call Chain = remove_free_block
+
+
[Called By]- >> blk_remove
+
- >> blk_locate_free
+
+
+mutex_old_owner_release (Thumb, 74 bytes, Stack size 16 bytes, tos_mutex.o(i.mutex_old_owner_release))
+
[Stack]
- Max Depth = 80 + Unknown Stack Size
+
- Call Chain = mutex_old_owner_release ⇒ tos_task_prio_change ⇒ readyqueue_remove ⇒ readyqueue_prio_highest_get ⇒ tos_cpu_clz
+
+
[Calls]- >> tos_task_prio_change
+
+
[Called By]
+
+pend_list_add (Thumb, 76 bytes, Stack size 12 bytes, tos_pend.o(i.pend_list_add))
+
[Stack]
- Max Depth = 12
- Call Chain = pend_list_add
+
+
[Called By]- >> pend_task_block
+
- >> pend_list_adjust
+
+
+tos_list_del (Thumb, 12 bytes, Stack size 0 bytes, tos_pend.o(i.tos_list_del))
+
[Called By]
- >> pend_list_remove
+
- >> pend_list_adjust
+
+
+tos_list_empty (Thumb, 16 bytes, Stack size 0 bytes, tos_pend.o(i.tos_list_empty))
+
[Called By]
- >> pend_is_nopending
+
- >> pend_highest_pending_prio_get
+
+
+tos_list_init (Thumb, 6 bytes, Stack size 0 bytes, tos_pend.o(i.tos_list_init))
+
[Called By]
- >> pend_object_init
+
- >> pend_object_deinit
+
+
+_list_add (Thumb, 10 bytes, Stack size 0 bytes, tos_sched.o(i._list_add))
+
[Called By]
- >> readyqueue_add_head
+
- >> tos_list_add_tail
+
+
+_list_del (Thumb, 6 bytes, Stack size 0 bytes, tos_sched.o(i._list_del))
+
[Called By]
- >> readyqueue_move_head_to_tail
+
- >> readyqueue_remove
+
+
+readyqueue_prio_highest_get (Thumb, 36 bytes, Stack size 16 bytes, tos_sched.o(i.readyqueue_prio_highest_get))
+
[Stack]
- Max Depth = 24 + Unknown Stack Size
+
- Call Chain = readyqueue_prio_highest_get ⇒ tos_cpu_clz
+
+
[Calls]
+
[Called By]
+
+readyqueue_prio_mark (Thumb, 56 bytes, Stack size 0 bytes, tos_sched.o(i.readyqueue_prio_mark))
+
[Called By]
- >> readyqueue_add_tail
+
- >> readyqueue_add_head
+
+
+tos_list_add_tail (Thumb, 18 bytes, Stack size 16 bytes, tos_sched.o(i.tos_list_add_tail))
+
[Stack]
- Max Depth = 16
- Call Chain = tos_list_add_tail
+
+
[Calls]
+
[Called By]- >> readyqueue_add_tail
+
- >> readyqueue_move_head_to_tail
+
+
+tos_list_empty (Thumb, 16 bytes, Stack size 0 bytes, tos_sched.o(i.tos_list_empty))
+
[Called By]
- >> readyqueue_add_tail
+
- >> readyqueue_add_head
+
- >> readyqueue_move_head_to_tail
+
- >> readyqueue_first_task_get
+
- >> readyqueue_remove
+
+
+knl_object_verify (Thumb, 16 bytes, Stack size 0 bytes, tos_sem.o(i.knl_object_verify))
+
[Called By]
- >> sem_do_post
+
- >> tos_sem_pend
+
- >> tos_sem_destroy
+
+
+sem_do_post (Thumb, 140 bytes, Stack size 16 bytes, tos_sem.o(i.sem_do_post))
+
[Stack]
- Max Depth = 112 + Unknown Stack Size
+
- Call Chain = sem_do_post ⇒ pend_wakeup ⇒ pend_wakeup_all ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> pend_is_nopending
+
- >> knl_sched
+
- >> knl_object_verify
+
- >> pend_wakeup
+
+
[Called By]
+
+knl_idle_entry (Thumb, 6 bytes, Stack size 0 bytes, tos_sys.o(i.knl_idle_entry))
+
[Address Reference Count : 1]
- tos_sys.o(i.knl_idle_init)
+
+knl_object_verify (Thumb, 16 bytes, Stack size 0 bytes, tos_task.o(i.knl_object_verify))
+
[Called By]
- >> tos_task_prio_change
+
- >> tos_task_destroy
+
+
+task_default_walker (Thumb, 166 bytes, Stack size 16 bytes, tos_task.o(i.task_default_walker))
+
[Stack]
- Max Depth = 40
- Call Chain = task_default_walker ⇒ __2printf
+
+
[Calls]
+
[Address Reference Count : 1]- tos_task.o(i.tos_task_info_display)
+
+task_do_destroy (Thumb, 138 bytes, Stack size 16 bytes, tos_task.o(i.task_do_destroy))
+
[Stack]
- Max Depth = 120 + Unknown Stack Size
+
- Call Chain = task_do_destroy ⇒ task_mutex_release ⇒ mutex_release ⇒ pend_wakeup_all ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> knl_sched
+
- >> knl_is_idle
+
- >> tick_list_remove
+
- >> readyqueue_remove
+
- >> pend_list_remove
+
- >> tos_list_empty
+
- >> task_state_is_ready
+
- >> task_reset
+
- >> task_mutex_release
+
+
[Called By]
+
+task_exit (Thumb, 10 bytes, Stack size 8 bytes, tos_task.o(i.task_exit))
+
[Stack]
- Max Depth = 136 + Unknown Stack Size
+
- Call Chain = task_exit ⇒ tos_task_destroy ⇒ task_do_destroy ⇒ task_mutex_release ⇒ mutex_release ⇒ pend_wakeup_all ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]
+
[Address Reference Count : 1]- tos_task.o(i.tos_task_create)
+
+task_highest_pending_prio_get (Thumb, 54 bytes, Stack size 24 bytes, tos_task.o(i.task_highest_pending_prio_get))
+
[Stack]
- Max Depth = 40
- Call Chain = task_highest_pending_prio_get ⇒ pend_highest_pending_prio_get
+
+
[Calls]- >> pend_highest_pending_prio_get
+
+
[Called By]- >> tos_task_prio_change
+
+
+task_mutex_release (Thumb, 46 bytes, Stack size 16 bytes, tos_task.o(i.task_mutex_release))
+
[Stack]
- Max Depth = 104 + Unknown Stack Size
+
- Call Chain = task_mutex_release ⇒ mutex_release ⇒ pend_wakeup_all ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]
+
[Called By]
+
+task_reset (Thumb, 60 bytes, Stack size 8 bytes, tos_task.o(i.task_reset))
+
[Stack]
- Max Depth = 8
- Call Chain = task_reset
+
+
[Calls]
+
[Called By]- >> task_do_destroy
+
- >> tos_task_create
+
+
+task_state_is_ready (Thumb, 14 bytes, Stack size 0 bytes, tos_task.o(i.task_state_is_ready))
+
[Called By]
- >> tos_task_prio_change
+
- >> task_do_destroy
+
+
+tos_list_empty (Thumb, 16 bytes, Stack size 0 bytes, tos_task.o(i.tos_list_empty))
+
[Called By]
- >> tos_task_prio_change
+
- >> task_do_destroy
+
+
+tos_list_init (Thumb, 6 bytes, Stack size 0 bytes, tos_task.o(i.tos_list_init))
+
[Called By]
+
+tick_task_place (Thumb, 196 bytes, Stack size 40 bytes, tos_tick.o(i.tick_task_place))
+
[Stack]
- Max Depth = 48 + Unknown Stack Size
+
- Call Chain = tick_task_place ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
+
[Called By]
+
+tick_task_takeoff (Thumb, 126 bytes, Stack size 16 bytes, tos_tick.o(i.tick_task_takeoff))
+
[Stack]
- Max Depth = 24 + Unknown Stack Size
+
- Call Chain = tick_task_takeoff ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> tos_list_empty
+
+
[Called By]
+
+tos_list_empty (Thumb, 16 bytes, Stack size 0 bytes, tos_tick.o(i.tos_list_empty))
+
[Called By]
- >> tick_update
+
- >> tick_task_takeoff
+
+
+timer_place (Thumb, 136 bytes, Stack size 16 bytes, tos_timer.o(i.timer_place))
+
[Stack]
- Max Depth = 24 + Unknown Stack Size
+
- Call Chain = timer_place ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
+
[Called By]
+
+timer_takeoff (Thumb, 110 bytes, Stack size 24 bytes, tos_timer.o(i.timer_takeoff))
+
[Stack]
- Max Depth = 32 + Unknown Stack Size
+
- Call Chain = timer_takeoff ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
+
[Called By]
+
+knl_object_init (Thumb, 4 bytes, Stack size 0 bytes, tos_char_fifo.o(i.knl_object_init))
+
[Called By]
+
+knl_object_verify (Thumb, 16 bytes, Stack size 0 bytes, tos_char_fifo.o(i.knl_object_verify))
+
[Called By]
- >> tos_chr_fifo_push
+
- >> tos_chr_fifo_pop
+
- >> tos_chr_fifo_destroy
+
+
+knl_object_init (Thumb, 4 bytes, Stack size 0 bytes, tos_ring_queue.o(i.knl_object_init))
+
[Called By]
+
+knl_object_verify (Thumb, 16 bytes, Stack size 0 bytes, tos_ring_queue.o(i.knl_object_verify))
+
[Called By]
- >> tos_ring_q_is_full
+
- >> tos_ring_q_is_empty
+
- >> tos_ring_q_enqueue
+
- >> tos_ring_q_destroy
+
- >> tos_ring_q_dequeue
+
+
+__NVIC_SetPriority (Thumb, 32 bytes, Stack size 8 bytes, port_c.o(i.__NVIC_SetPriority))
+
[Stack]
- Max Depth = 8
- Call Chain = __NVIC_SetPriority
+
+
[Called By]- >> port_systick_priority_set
+
- >> port_systick_config
+
+
+shell_cmd_do_process (Thumb, 36 bytes, Stack size 16 bytes, tos_shell.o(i.shell_cmd_do_process))
+
[Stack]
- Max Depth = 64
- Call Chain = shell_cmd_do_process ⇒ tos_shell_printf ⇒ vsnprintf
+
+
[Calls]- >> tos_shell_printf
+
- >> shell_cmd_find
+
+
[Called By]
+
+shell_cmd_process (Thumb, 114 bytes, Stack size 16 bytes, tos_shell.o(i.shell_cmd_process))
+
[Stack]
- Max Depth = 80
- Call Chain = shell_cmd_process ⇒ shell_cmd_do_process ⇒ tos_shell_printf ⇒ vsnprintf
+
+
[Calls]- >> __2printf
+
- >> shell_cmd_do_process
+
+
[Called By]
+
+shell_getchar (Thumb, 48 bytes, Stack size 16 bytes, tos_shell.o(i.shell_getchar))
+
[Stack]
- Max Depth = 128 + Unknown Stack Size
+
- Call Chain = shell_getchar ⇒ tos_sem_pend ⇒ pend_task_block ⇒ tick_list_add ⇒ tick_task_place ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tos_sem_pend
+
- >> tos_chr_fifo_pop
+
+
[Called By]
+
+shell_parser (Thumb, 24 bytes, Stack size 0 bytes, tos_shell.o(i.shell_parser))
+
[Stack]
- Max Depth = 144 + Unknown Stack Size
+
- Call Chain = shell_parser ⇒ shell_readline ⇒ shell_getchar ⇒ tos_sem_pend ⇒ pend_task_block ⇒ tick_list_add ⇒ tick_task_place ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> shell_readline
+
- >> shell_prompt
+
- >> shell_cmd_process
+
+
[Address Reference Count : 1]- tos_shell.o(i.tos_shell_init)
+
+shell_prompt (Thumb, 10 bytes, Stack size 8 bytes, tos_shell.o(i.shell_prompt))
+
[Stack]
- Max Depth = 56
- Call Chain = shell_prompt ⇒ tos_shell_printf ⇒ vsnprintf
+
+
[Calls]
+
[Called By]
+
+shell_readline (Thumb, 86 bytes, Stack size 16 bytes, tos_shell.o(i.shell_readline))
+
[Stack]
- Max Depth = 144 + Unknown Stack Size
+
- Call Chain = shell_readline ⇒ shell_getchar ⇒ tos_sem_pend ⇒ pend_task_block ⇒ tick_list_add ⇒ tick_task_place ⇒ tos_cpu_cpsr_save
+
+
[Calls]
+
[Called By]
+
+cmd_help (Thumb, 52 bytes, Stack size 24 bytes, tos_shell_commands.o(i.cmd_help))
+
[Stack]
- Max Depth = 72
- Call Chain = cmd_help ⇒ tos_shell_printf ⇒ vsnprintf
+
+
[Calls]
+
[Address Reference Count : 1]- tos_shell_commands.o(.constdata)
+
+cmd_ps (Thumb, 14 bytes, Stack size 16 bytes, tos_shell_commands.o(i.cmd_ps))
+
[Stack]
- Max Depth = 48 + Unknown Stack Size
+
- Call Chain = cmd_ps ⇒ tos_task_info_display ⇒ tos_task_walkthru ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tos_task_info_display
+
+
[Address Reference Count : 1]- tos_shell_commands.o(.constdata)
+
+tos_slist_add_head (Thumb, 8 bytes, Stack size 0 bytes, tos_shell_commands.o(i.tos_slist_add_head))
+
[Called By]
- >> shell_cmd_set_regiser
+
- >> shell_cmd_init
+
+
+tos_slist_contains (Thumb, 26 bytes, Stack size 0 bytes, tos_shell_commands.o(i.tos_slist_contains))
+
[Called By]
- >> shell_cmd_set_regiser
+
+
+errno_knl2cmsis (Thumb, 12 bytes, Stack size 0 bytes, cmsis_os.o(i.errno_knl2cmsis))
+
[Called By]
- >> osKernelStart
+
- >> osKernelInitialize
+
+
+priority_cmsis2knl (Thumb, 18 bytes, Stack size 0 bytes, cmsis_os.o(i.priority_cmsis2knl))
+
[Called By]
+
+_fp_digits (Thumb, 366 bytes, Stack size 64 bytes, printfa.o(i._fp_digits), UNUSED)
+
[Calls]
- >> __aeabi_dmul
+
- >> __aeabi_ddiv
+
- >> __aeabi_dadd
+
- >> __aeabi_d2ulz
+
- >> __aeabi_cdrcmple
+
- >> __aeabi_uldivmod
+
+
[Called By]
+
+_printf_core (Thumb, 1744 bytes, Stack size 136 bytes, printfa.o(i._printf_core), UNUSED)
+
[Calls]
- >> __aeabi_uidivmod
+
- >> _printf_pre_padding
+
- >> _printf_post_padding
+
- >> _fp_digits
+
- >> __aeabi_uldivmod
+
+
[Called By]- >> __0vsnprintf
+
- >> __0printf
+
+
+_printf_post_padding (Thumb, 36 bytes, Stack size 24 bytes, printfa.o(i._printf_post_padding), UNUSED)
+
[Called By]
+
+_printf_pre_padding (Thumb, 46 bytes, Stack size 24 bytes, printfa.o(i._printf_pre_padding), UNUSED)
+
[Called By]
+
+_snputc (Thumb, 22 bytes, Stack size 0 bytes, printfa.o(i._snputc))
+
[Address Reference Count : 1]
- printfa.o(i.__0vsnprintf)
+
+
+Undefined Global Symbols
+
diff --git a/board/ALIENTEK_STM32F429/KEIL/shell/Obj/TencentOS_tiny.sct b/board/ALIENTEK_STM32F429/KEIL/shell/Obj/TencentOS_tiny.sct
new file mode 100644
index 00000000..1cef099a
--- /dev/null
+++ b/board/ALIENTEK_STM32F429/KEIL/shell/Obj/TencentOS_tiny.sct
@@ -0,0 +1,16 @@
+; *************************************************************
+; *** Scatter-Loading Description File generated by uVision ***
+; *************************************************************
+
+LR_IROM1 0x08000000 0x00100000 { ; load region size_region
+ ER_IROM1 0x08000000 0x00100000 { ; load address = execution address
+ *.o (RESET, +First)
+ *(InRoot$$Sections)
+ .ANY (+RO)
+ .ANY (+XO)
+ }
+ RW_IRAM1 0x20000000 0x00030000 { ; RW data
+ .ANY (+RW +ZI)
+ }
+}
+
diff --git a/board/ALIENTEK_STM32F429/KEIL/shell/RTE/_TencentOS_tiny/RTE_Components.h b/board/ALIENTEK_STM32F429/KEIL/shell/RTE/_TencentOS_tiny/RTE_Components.h
new file mode 100644
index 00000000..0f41792c
--- /dev/null
+++ b/board/ALIENTEK_STM32F429/KEIL/shell/RTE/_TencentOS_tiny/RTE_Components.h
@@ -0,0 +1,20 @@
+
+/*
+ * Auto generated Run-Time-Environment Component Configuration File
+ * *** Do not modify ! ***
+ *
+ * Project: 'TencentOS_tiny'
+ * Target: 'TencentOS_tiny'
+ */
+
+#ifndef RTE_COMPONENTS_H
+#define RTE_COMPONENTS_H
+
+
+/*
+ * Define the Device Header File:
+ */
+#define CMSIS_device_header "stm32f4xx.h"
+
+
+#endif /* RTE_COMPONENTS_H */
diff --git a/board/ALIENTEK_STM32F429/KEIL/shell/TencentOS_tiny.uvoptx b/board/ALIENTEK_STM32F429/KEIL/shell/TencentOS_tiny.uvoptx
new file mode 100644
index 00000000..3fb5e9f9
--- /dev/null
+++ b/board/ALIENTEK_STM32F429/KEIL/shell/TencentOS_tiny.uvoptx
@@ -0,0 +1,1142 @@
+
+
+
+ 1.0
+
+ ### uVision Project, (C) Keil Software
+
+
+ *.c
+ *.s*; *.src; *.a*
+ *.obj; *.o
+ *.lib
+ *.txt; *.h; *.inc
+ *.plm
+ *.cpp
+ 0
+
+
+
+ 0
+ 0
+
+
+
+ TencentOS_tiny
+ 0x4
+ ARM-ADS
+
+ 25000000
+
+ 1
+ 1
+ 0
+ 1
+ 0
+
+
+ 1
+ 65535
+ 0
+ 0
+ 0
+
+
+ 79
+ 66
+ 8
+ .\List\
+
+
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+
+
+ 1
+ 0
+ 1
+
+ 18
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 0
+ 6
+
+
+
+
+
+
+
+
+
+
+ STLink\ST-LINKIII-KEIL_SWO.dll
+
+
+
+ 0
+ ARMRTXEVENTFLAGS
+ -L70 -Z18 -C0 -M0 -T1
+
+
+ 0
+ DLGTARM
+ (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0)
+
+
+ 0
+ ARMDBGFLAGS
+
+
+
+ 0
+ DLGUARM
+ (105=-1,-1,-1,-1,0)
+
+
+ 0
+ ST-LINKIII-KEIL_SWO
+ -U303030303030303030303031 -O8398 -SF4000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F429IGTx$CMSIS\Flash\STM32F4xx_1024.FLM)
+
+
+ 0
+ JL2CM3
+ -U29999997 -O14 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight JTAG-DP") -D00(4BA00477) -L00(4) -N01("Unknown JTAG device") -D01(06419041) -L01(5) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F429IGTx$CMSIS\Flash\STM32F4xx_1024.FLM)
+
+
+ 0
+ UL2CM3
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F429IGTx$CMSIS\Flash\STM32F4xx_1024.FLM))
+
+
+
+
+ 0
+ 0
+ 84
+ 1
+ 134229676
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ ..\..\..\..\components\shell\tos_shell.c
+
+ \\TencentOS_tiny\../../../../components/shell/tos_shell.c\84
+
+
+ 1
+ 0
+ 85
+ 1
+ 134229682
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ ..\..\..\..\components\shell\tos_shell.c
+
+ \\TencentOS_tiny\../../../../components/shell/tos_shell.c\85
+
+
+
+ 0
+
+
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+ 1
+ 1
+ 0
+ 2
+ 10000000
+
+
+
+
+
+ Application/MDK-ARM
+ 0
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 2
+ 0
+ 0
+ 0
+ startup_stm32f429xx.s
+ startup_stm32f429xx.s
+ 0
+ 0
+
+
+
+
+ Application/User
+ 0
+ 0
+ 0
+ 0
+
+ 2
+ 2
+ 1
+ 0
+ 0
+ 0
+ ..\..\BSP\Src\gpio.c
+ gpio.c
+ 0
+ 0
+
+
+ 2
+ 3
+ 1
+ 0
+ 0
+ 0
+ ..\..\BSP\Src\led.c
+ led.c
+ 0
+ 0
+
+
+ 2
+ 4
+ 1
+ 0
+ 0
+ 0
+ ..\..\BSP\Src\main.c
+ main.c
+ 0
+ 0
+
+
+ 2
+ 5
+ 1
+ 0
+ 0
+ 0
+ ..\..\BSP\Src\rng.c
+ rng.c
+ 0
+ 0
+
+
+ 2
+ 6
+ 1
+ 0
+ 0
+ 0
+ ..\..\BSP\Src\spi.c
+ spi.c
+ 0
+ 0
+
+
+ 2
+ 7
+ 1
+ 0
+ 0
+ 0
+ ..\..\BSP\Src\stm32f4xx_hal_msp.c
+ stm32f4xx_hal_msp.c
+ 0
+ 0
+
+
+ 2
+ 8
+ 1
+ 0
+ 0
+ 0
+ ..\..\BSP\Src\stm32f4xx_it_shell.c
+ stm32f4xx_it_shell.c
+ 0
+ 0
+
+
+ 2
+ 9
+ 1
+ 0
+ 0
+ 0
+ ..\..\BSP\Src\usart.c
+ usart.c
+ 0
+ 0
+
+
+ 2
+ 10
+ 1
+ 0
+ 0
+ 0
+ ..\..\BSP\Src\mcu_init.c
+ mcu_init.c
+ 0
+ 0
+
+
+ 2
+ 11
+ 1
+ 0
+ 0
+ 0
+ ..\..\BSP\Src\dwt.c
+ dwt.c
+ 0
+ 0
+
+
+
+
+ examples
+ 0
+ 0
+ 0
+ 0
+
+ 3
+ 12
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\examples\shell\shell_sample.c
+ shell_sample.c
+ 0
+ 0
+
+
+
+
+ Drivers/STM32F4xx_HAL_Driver
+ 0
+ 0
+ 0
+ 0
+
+ 4
+ 13
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c
+ stm32f4xx_hal.c
+ 0
+ 0
+
+
+ 4
+ 14
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c
+ stm32f4xx_hal_cortex.c
+ 0
+ 0
+
+
+ 4
+ 15
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c
+ stm32f4xx_hal_dma.c
+ 0
+ 0
+
+
+ 4
+ 16
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c
+ stm32f4xx_hal_dma_ex.c
+ 0
+ 0
+
+
+ 4
+ 17
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash.c
+ stm32f4xx_hal_flash.c
+ 0
+ 0
+
+
+ 4
+ 18
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ex.c
+ stm32f4xx_hal_flash_ex.c
+ 0
+ 0
+
+
+ 4
+ 19
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ramfunc.c
+ stm32f4xx_hal_flash_ramfunc.c
+ 0
+ 0
+
+
+ 4
+ 20
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c
+ stm32f4xx_hal_gpio.c
+ 0
+ 0
+
+
+ 4
+ 21
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c
+ stm32f4xx_hal_pwr.c
+ 0
+ 0
+
+
+ 4
+ 22
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c
+ stm32f4xx_hal_pwr_ex.c
+ 0
+ 0
+
+
+ 4
+ 23
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c
+ stm32f4xx_hal_rcc.c
+ 0
+ 0
+
+
+ 4
+ 24
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c
+ stm32f4xx_hal_rcc_ex.c
+ 0
+ 0
+
+
+ 4
+ 25
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim.c
+ stm32f4xx_hal_tim.c
+ 0
+ 0
+
+
+ 4
+ 26
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim_ex.c
+ stm32f4xx_hal_tim_ex.c
+ 0
+ 0
+
+
+ 4
+ 27
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c
+ stm32f4xx_hal_uart.c
+ 0
+ 0
+
+
+ 4
+ 28
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rng.c
+ stm32f4xx_hal_rng.c
+ 0
+ 0
+
+
+ 4
+ 29
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rtc.c
+ stm32f4xx_hal_rtc.c
+ 0
+ 0
+
+
+ 4
+ 30
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rtc_ex.c
+ stm32f4xx_hal_rtc_ex.c
+ 0
+ 0
+
+
+ 4
+ 31
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_spi.c
+ stm32f4xx_hal_spi.c
+ 0
+ 0
+
+
+
+
+ Drivers/CMSIS
+ 0
+ 0
+ 0
+ 0
+
+ 5
+ 32
+ 1
+ 0
+ 0
+ 0
+ ..\..\BSP\Src\system_stm32f4xx.c
+ system_stm32f4xx.c
+ 0
+ 0
+
+
+
+
+ kernel
+ 0
+ 0
+ 0
+ 0
+
+ 6
+ 33
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_event.c
+ tos_event.c
+ 0
+ 0
+
+
+ 6
+ 34
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_global.c
+ tos_global.c
+ 0
+ 0
+
+
+ 6
+ 35
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_mmblk.c
+ tos_mmblk.c
+ 0
+ 0
+
+
+ 6
+ 36
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_mmheap.c
+ tos_mmheap.c
+ 0
+ 0
+
+
+ 6
+ 37
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_mutex.c
+ tos_mutex.c
+ 0
+ 0
+
+
+ 6
+ 38
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_pend.c
+ tos_pend.c
+ 0
+ 0
+
+
+ 6
+ 39
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_robin.c
+ tos_robin.c
+ 0
+ 0
+
+
+ 6
+ 40
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_sched.c
+ tos_sched.c
+ 0
+ 0
+
+
+ 6
+ 41
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_sem.c
+ tos_sem.c
+ 0
+ 0
+
+
+ 6
+ 42
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_sys.c
+ tos_sys.c
+ 0
+ 0
+
+
+ 6
+ 43
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_task.c
+ tos_task.c
+ 0
+ 0
+
+
+ 6
+ 44
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_tick.c
+ tos_tick.c
+ 0
+ 0
+
+
+ 6
+ 45
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_time.c
+ tos_time.c
+ 0
+ 0
+
+
+ 6
+ 46
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_timer.c
+ tos_timer.c
+ 0
+ 0
+
+
+ 6
+ 47
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\pm\tos_pm.c
+ tos_pm.c
+ 0
+ 0
+
+
+ 6
+ 48
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\pm\tos_tickless.c
+ tos_tickless.c
+ 0
+ 0
+
+
+ 6
+ 49
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_binary_heap.c
+ tos_binary_heap.c
+ 0
+ 0
+
+
+ 6
+ 50
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_char_fifo.c
+ tos_char_fifo.c
+ 0
+ 0
+
+
+ 6
+ 51
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_completion.c
+ tos_completion.c
+ 0
+ 0
+
+
+ 6
+ 52
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_countdownlatch.c
+ tos_countdownlatch.c
+ 0
+ 0
+
+
+ 6
+ 53
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_mail_queue.c
+ tos_mail_queue.c
+ 0
+ 0
+
+
+ 6
+ 54
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_message_queue.c
+ tos_message_queue.c
+ 0
+ 0
+
+
+ 6
+ 55
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_priority_mail_queue.c
+ tos_priority_mail_queue.c
+ 0
+ 0
+
+
+ 6
+ 56
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_priority_message_queue.c
+ tos_priority_message_queue.c
+ 0
+ 0
+
+
+ 6
+ 57
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_priority_queue.c
+ tos_priority_queue.c
+ 0
+ 0
+
+
+ 6
+ 58
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_ring_queue.c
+ tos_ring_queue.c
+ 0
+ 0
+
+
+
+
+ cpu
+ 0
+ 0
+ 0
+ 0
+
+ 7
+ 59
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\arch\arm\arm-v7m\common\tos_cpu.c
+ tos_cpu.c
+ 0
+ 0
+
+
+ 7
+ 60
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\arch\arm\arm-v7m\common\tos_fault.c
+ tos_fault.c
+ 0
+ 0
+
+
+ 7
+ 61
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\arch\arm\arm-v7m\cortex-m4\armcc\port_c.c
+ port_c.c
+ 0
+ 0
+
+
+ 7
+ 62
+ 2
+ 0
+ 0
+ 0
+ ..\..\..\..\arch\arm\arm-v7m\cortex-m4\armcc\port_s.S
+ port_s.S
+ 0
+ 0
+
+
+
+
+ shell
+ 0
+ 0
+ 0
+ 0
+
+ 8
+ 63
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\shell\tos_shell.c
+ tos_shell.c
+ 0
+ 0
+
+
+ 8
+ 64
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\shell\tos_shell_commands.c
+ tos_shell_commands.c
+ 0
+ 0
+
+
+
+
+ hal
+ 0
+ 0
+ 0
+ 0
+
+ 9
+ 65
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\hal\st\stm32f4xx\src\tos_hal_uart.c
+ tos_hal_uart.c
+ 0
+ 0
+
+
+
+
+ config
+ 0
+ 0
+ 0
+ 0
+
+ 10
+ 66
+ 5
+ 0
+ 0
+ 0
+ ..\..\TOS-CONFIG\tos_config.h
+ tos_config.h
+ 0
+ 0
+
+
+
+
+ cmsis
+ 0
+ 0
+ 0
+ 0
+
+ 11
+ 67
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\osal\cmsis_os\cmsis_os.c
+ cmsis_os.c
+ 0
+ 0
+
+
+
+
+ ::CMSIS
+ 0
+ 0
+ 0
+ 1
+
+
+
diff --git a/board/ALIENTEK_STM32F429/KEIL/shell/TencentOS_tiny.uvprojx b/board/ALIENTEK_STM32F429/KEIL/shell/TencentOS_tiny.uvprojx
new file mode 100644
index 00000000..d9987ba8
--- /dev/null
+++ b/board/ALIENTEK_STM32F429/KEIL/shell/TencentOS_tiny.uvprojx
@@ -0,0 +1,792 @@
+
+
+
+ 2.1
+
+ ### uVision Project, (C) Keil Software
+
+
+
+ TencentOS_tiny
+ 0x4
+ ARM-ADS
+ 5060750::V5.06 update 6 (build 750)::ARMCC
+ 0
+
+
+ STM32F429IGTx
+ STMicroelectronics
+ Keil.STM32F4xx_DFP.2.13.0
+ http://www.keil.com/pack
+ IRAM(0x20000000-0x2002FFFF) IRAM2(0x10000000-0x1000FFFF) IROM(0x8000000-0x80FFFFF) CLOCK(25000000) FPU2 CPUTYPE("Cortex-M4")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $$Device:STM32F429IGTx$CMSIS\SVD\STM32F429x.svd
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 1
+
+ .\Obj\
+ TencentOS_tiny
+ 1
+ 0
+ 1
+ 1
+ 0
+ .\List\
+ 1
+ 0
+ 0
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 3
+
+
+ 0
+
+
+ SARMCM3.DLL
+ -REMAP -MPU
+ DCM.DLL
+ -pCM4
+ SARMCM3.DLL
+ -MPU
+ TCM.DLL
+ -pCM4
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 16
+
+
+
+
+ 1
+ 0
+ 0
+ 1
+ 1
+ 4101
+
+ 1
+ BIN\UL2CM3.DLL
+ "" ()
+
+
+
+
+ 0
+
+
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ "Cortex-M4"
+
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+ 0
+ 2
+ 0
+ 1
+ 0
+ 8
+ 1
+ 0
+ 0
+ 0
+ 3
+ 3
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x20000000
+ 0x30000
+
+
+ 1
+ 0x8000000
+ 0x100000
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x8000000
+ 0x100000
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x20000000
+ 0x30000
+
+
+ 0
+ 0x10000000
+ 0x10000
+
+
+
+
+
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 2
+ 0
+ 0
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+
+
+ USE_HAL_DRIVER,STM32F429xx,WITH_TOS_NET_ADAPTER,USE_ESP8266,MBEDTLS_CONFIG_FILE=<tos_mbedtls_psk_config.h>
+
+ ..\..\BSP\Inc;..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Inc;..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Inc\Legacy;..\..\..\..\platform\vendor_bsp\st\CMSIS\Device\ST\STM32F4xx\Include;..\..\..\..\platform\vendor_bsp\st\CMSIS\Include;..\..\..\..\arch\arm\arm-v7m\cortex-m4\armcc;..\..\..\..\arch\arm\arm-v7m\common\include;..\..\TOS-CONFIG;..\..\..\..\kernel\core\include;..\..\..\..\kernel\pm\include;..\..\..\..\osal\cmsis_os;..\..\..\..\kernel\hal\include;..\..\..\..\components\shell\include
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0x08000000
+ 0x20000000
+
+
+
+
+
+
+
+
+
+
+
+
+ Application/MDK-ARM
+
+
+ startup_stm32f429xx.s
+ 2
+ startup_stm32f429xx.s
+
+
+
+
+ Application/User
+
+
+ gpio.c
+ 1
+ ..\..\BSP\Src\gpio.c
+
+
+ led.c
+ 1
+ ..\..\BSP\Src\led.c
+
+
+ main.c
+ 1
+ ..\..\BSP\Src\main.c
+
+
+ rng.c
+ 1
+ ..\..\BSP\Src\rng.c
+
+
+ spi.c
+ 1
+ ..\..\BSP\Src\spi.c
+
+
+ stm32f4xx_hal_msp.c
+ 1
+ ..\..\BSP\Src\stm32f4xx_hal_msp.c
+
+
+ stm32f4xx_it_shell.c
+ 1
+ ..\..\BSP\Src\stm32f4xx_it_shell.c
+
+
+ usart.c
+ 1
+ ..\..\BSP\Src\usart.c
+
+
+ mcu_init.c
+ 1
+ ..\..\BSP\Src\mcu_init.c
+
+
+ dwt.c
+ 1
+ ..\..\BSP\Src\dwt.c
+
+
+
+
+ examples
+
+
+ shell_sample.c
+ 1
+ ..\..\..\..\examples\shell\shell_sample.c
+
+
+
+
+ Drivers/STM32F4xx_HAL_Driver
+
+
+ stm32f4xx_hal.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c
+
+
+ stm32f4xx_hal_cortex.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c
+
+
+ stm32f4xx_hal_dma.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c
+
+
+ stm32f4xx_hal_dma_ex.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c
+
+
+ stm32f4xx_hal_flash.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash.c
+
+
+ stm32f4xx_hal_flash_ex.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ex.c
+
+
+ stm32f4xx_hal_flash_ramfunc.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ramfunc.c
+
+
+ stm32f4xx_hal_gpio.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c
+
+
+ stm32f4xx_hal_pwr.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c
+
+
+ stm32f4xx_hal_pwr_ex.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c
+
+
+ stm32f4xx_hal_rcc.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c
+
+
+ stm32f4xx_hal_rcc_ex.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c
+
+
+ stm32f4xx_hal_tim.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim.c
+
+
+ stm32f4xx_hal_tim_ex.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim_ex.c
+
+
+ stm32f4xx_hal_uart.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c
+
+
+ stm32f4xx_hal_rng.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rng.c
+
+
+ stm32f4xx_hal_rtc.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rtc.c
+
+
+ stm32f4xx_hal_rtc_ex.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rtc_ex.c
+
+
+ stm32f4xx_hal_spi.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_spi.c
+
+
+
+
+ Drivers/CMSIS
+
+
+ system_stm32f4xx.c
+ 1
+ ..\..\BSP\Src\system_stm32f4xx.c
+
+
+
+
+ kernel
+
+
+ tos_event.c
+ 1
+ ..\..\..\..\kernel\core\tos_event.c
+
+
+ tos_global.c
+ 1
+ ..\..\..\..\kernel\core\tos_global.c
+
+
+ tos_mmblk.c
+ 1
+ ..\..\..\..\kernel\core\tos_mmblk.c
+
+
+ tos_mmheap.c
+ 1
+ ..\..\..\..\kernel\core\tos_mmheap.c
+
+
+ tos_mutex.c
+ 1
+ ..\..\..\..\kernel\core\tos_mutex.c
+
+
+ tos_pend.c
+ 1
+ ..\..\..\..\kernel\core\tos_pend.c
+
+
+ tos_robin.c
+ 1
+ ..\..\..\..\kernel\core\tos_robin.c
+
+
+ tos_sched.c
+ 1
+ ..\..\..\..\kernel\core\tos_sched.c
+
+
+ tos_sem.c
+ 1
+ ..\..\..\..\kernel\core\tos_sem.c
+
+
+ tos_sys.c
+ 1
+ ..\..\..\..\kernel\core\tos_sys.c
+
+
+ tos_task.c
+ 1
+ ..\..\..\..\kernel\core\tos_task.c
+
+
+ tos_tick.c
+ 1
+ ..\..\..\..\kernel\core\tos_tick.c
+
+
+ tos_time.c
+ 1
+ ..\..\..\..\kernel\core\tos_time.c
+
+
+ tos_timer.c
+ 1
+ ..\..\..\..\kernel\core\tos_timer.c
+
+
+ tos_pm.c
+ 1
+ ..\..\..\..\kernel\pm\tos_pm.c
+
+
+ tos_tickless.c
+ 1
+ ..\..\..\..\kernel\pm\tos_tickless.c
+
+
+ tos_binary_heap.c
+ 1
+ ..\..\..\..\kernel\core\tos_binary_heap.c
+
+
+ tos_char_fifo.c
+ 1
+ ..\..\..\..\kernel\core\tos_char_fifo.c
+
+
+ tos_completion.c
+ 1
+ ..\..\..\..\kernel\core\tos_completion.c
+
+
+ tos_countdownlatch.c
+ 1
+ ..\..\..\..\kernel\core\tos_countdownlatch.c
+
+
+ tos_mail_queue.c
+ 1
+ ..\..\..\..\kernel\core\tos_mail_queue.c
+
+
+ tos_message_queue.c
+ 1
+ ..\..\..\..\kernel\core\tos_message_queue.c
+
+
+ tos_priority_mail_queue.c
+ 1
+ ..\..\..\..\kernel\core\tos_priority_mail_queue.c
+
+
+ tos_priority_message_queue.c
+ 1
+ ..\..\..\..\kernel\core\tos_priority_message_queue.c
+
+
+ tos_priority_queue.c
+ 1
+ ..\..\..\..\kernel\core\tos_priority_queue.c
+
+
+ tos_ring_queue.c
+ 1
+ ..\..\..\..\kernel\core\tos_ring_queue.c
+
+
+
+
+ cpu
+
+
+ tos_cpu.c
+ 1
+ ..\..\..\..\arch\arm\arm-v7m\common\tos_cpu.c
+
+
+ tos_fault.c
+ 1
+ ..\..\..\..\arch\arm\arm-v7m\common\tos_fault.c
+
+
+ port_c.c
+ 1
+ ..\..\..\..\arch\arm\arm-v7m\cortex-m4\armcc\port_c.c
+
+
+ port_s.S
+ 2
+ ..\..\..\..\arch\arm\arm-v7m\cortex-m4\armcc\port_s.S
+
+
+
+
+ shell
+
+
+ tos_shell.c
+ 1
+ ..\..\..\..\components\shell\tos_shell.c
+
+
+ tos_shell_commands.c
+ 1
+ ..\..\..\..\components\shell\tos_shell_commands.c
+
+
+
+
+ hal
+
+
+ tos_hal_uart.c
+ 1
+ ..\..\..\..\platform\hal\st\stm32f4xx\src\tos_hal_uart.c
+
+
+
+
+ config
+
+
+ tos_config.h
+ 5
+ ..\..\TOS-CONFIG\tos_config.h
+
+
+
+
+ cmsis
+
+
+ cmsis_os.c
+ 1
+ ..\..\..\..\osal\cmsis_os\cmsis_os.c
+
+
+
+
+ ::CMSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/board/ALIENTEK_STM32F429/KEIL/shell/startup_stm32f429xx.s b/board/ALIENTEK_STM32F429/KEIL/shell/startup_stm32f429xx.s
new file mode 100644
index 00000000..b9ea548d
--- /dev/null
+++ b/board/ALIENTEK_STM32F429/KEIL/shell/startup_stm32f429xx.s
@@ -0,0 +1,463 @@
+;******************** (C) COPYRIGHT 2017 STMicroelectronics ********************
+;* File Name : startup_stm32f429xx.s
+;* Author : MCD Application Team
+;* Description : STM32F429x devices vector table for MDK-ARM toolchain.
+;* This module performs:
+;* - Set the initial SP
+;* - Set the initial PC == Reset_Handler
+;* - Set the vector table entries with the exceptions ISR address
+;* - Branches to __main in the C library (which eventually
+;* calls main()).
+;* After Reset the CortexM4 processor is in Thread mode,
+;* priority is Privileged, and the Stack is set to Main.
+;* <<< Use Configuration Wizard in Context Menu >>>
+;*******************************************************************************
+;
+;* Redistribution and use in source and binary forms, with or without modification,
+;* are permitted provided that the following conditions are met:
+;* 1. Redistributions of source code must retain the above copyright notice,
+;* this list of conditions and the following disclaimer.
+;* 2. Redistributions in binary form must reproduce the above copyright notice,
+;* this list of conditions and the following disclaimer in the documentation
+;* and/or other materials provided with the distribution.
+;* 3. Neither the name of STMicroelectronics nor the names of its contributors
+;* may be used to endorse or promote products derived from this software
+;* without specific prior written permission.
+;*
+;* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+;* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+;* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+;* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+;* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+;* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+;* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+;* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+;* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+;
+;*******************************************************************************
+
+; Amount of memory (in bytes) allocated for Stack
+; Tailor this value to your application needs
+; Stack Configuration
+; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
+;
+
+Stack_Size EQU 0x400
+
+ AREA STACK, NOINIT, READWRITE, ALIGN=3
+Stack_Mem SPACE Stack_Size
+__initial_sp
+
+
+; Heap Configuration
+; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
+;
+
+Heap_Size EQU 0x200
+
+ AREA HEAP, NOINIT, READWRITE, ALIGN=3
+__heap_base
+Heap_Mem SPACE Heap_Size
+__heap_limit
+
+ PRESERVE8
+ THUMB
+
+
+; Vector Table Mapped to Address 0 at Reset
+ AREA RESET, DATA, READONLY
+ EXPORT __Vectors
+ EXPORT __Vectors_End
+ EXPORT __Vectors_Size
+
+__Vectors DCD __initial_sp ; Top of Stack
+ DCD Reset_Handler ; Reset Handler
+ DCD NMI_Handler ; NMI Handler
+ DCD HardFault_Handler ; Hard Fault Handler
+ DCD MemManage_Handler ; MPU Fault Handler
+ DCD BusFault_Handler ; Bus Fault Handler
+ DCD UsageFault_Handler ; Usage Fault Handler
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD SVC_Handler ; SVCall Handler
+ DCD DebugMon_Handler ; Debug Monitor Handler
+ DCD 0 ; Reserved
+ DCD PendSV_Handler ; PendSV Handler
+ DCD SysTick_Handler ; SysTick Handler
+
+ ; External Interrupts
+ DCD WWDG_IRQHandler ; Window WatchDog
+ DCD PVD_IRQHandler ; PVD through EXTI Line detection
+ DCD TAMP_STAMP_IRQHandler ; Tamper and TimeStamps through the EXTI line
+ DCD RTC_WKUP_IRQHandler ; RTC Wakeup through the EXTI line
+ DCD FLASH_IRQHandler ; FLASH
+ DCD RCC_IRQHandler ; RCC
+ DCD EXTI0_IRQHandler ; EXTI Line0
+ DCD EXTI1_IRQHandler ; EXTI Line1
+ DCD EXTI2_IRQHandler ; EXTI Line2
+ DCD EXTI3_IRQHandler ; EXTI Line3
+ DCD EXTI4_IRQHandler ; EXTI Line4
+ DCD DMA1_Stream0_IRQHandler ; DMA1 Stream 0
+ DCD DMA1_Stream1_IRQHandler ; DMA1 Stream 1
+ DCD DMA1_Stream2_IRQHandler ; DMA1 Stream 2
+ DCD DMA1_Stream3_IRQHandler ; DMA1 Stream 3
+ DCD DMA1_Stream4_IRQHandler ; DMA1 Stream 4
+ DCD DMA1_Stream5_IRQHandler ; DMA1 Stream 5
+ DCD DMA1_Stream6_IRQHandler ; DMA1 Stream 6
+ DCD ADC_IRQHandler ; ADC1, ADC2 and ADC3s
+ DCD CAN1_TX_IRQHandler ; CAN1 TX
+ DCD CAN1_RX0_IRQHandler ; CAN1 RX0
+ DCD CAN1_RX1_IRQHandler ; CAN1 RX1
+ DCD CAN1_SCE_IRQHandler ; CAN1 SCE
+ DCD EXTI9_5_IRQHandler ; External Line[9:5]s
+ DCD TIM1_BRK_TIM9_IRQHandler ; TIM1 Break and TIM9
+ DCD TIM1_UP_TIM10_IRQHandler ; TIM1 Update and TIM10
+ DCD TIM1_TRG_COM_TIM11_IRQHandler ; TIM1 Trigger and Commutation and TIM11
+ DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare
+ DCD TIM2_IRQHandler ; TIM2
+ DCD TIM3_IRQHandler ; TIM3
+ DCD TIM4_IRQHandler ; TIM4
+ DCD I2C1_EV_IRQHandler ; I2C1 Event
+ DCD I2C1_ER_IRQHandler ; I2C1 Error
+ DCD I2C2_EV_IRQHandler ; I2C2 Event
+ DCD I2C2_ER_IRQHandler ; I2C2 Error
+ DCD SPI1_IRQHandler ; SPI1
+ DCD SPI2_IRQHandler ; SPI2
+ DCD USART1_IRQHandler ; USART1
+ DCD USART2_IRQHandler ; USART2
+ DCD USART3_IRQHandler ; USART3
+ DCD EXTI15_10_IRQHandler ; External Line[15:10]s
+ DCD RTC_Alarm_IRQHandler ; RTC Alarm (A and B) through EXTI Line
+ DCD OTG_FS_WKUP_IRQHandler ; USB OTG FS Wakeup through EXTI line
+ DCD TIM8_BRK_TIM12_IRQHandler ; TIM8 Break and TIM12
+ DCD TIM8_UP_TIM13_IRQHandler ; TIM8 Update and TIM13
+ DCD TIM8_TRG_COM_TIM14_IRQHandler ; TIM8 Trigger and Commutation and TIM14
+ DCD TIM8_CC_IRQHandler ; TIM8 Capture Compare
+ DCD DMA1_Stream7_IRQHandler ; DMA1 Stream7
+ DCD FMC_IRQHandler ; FMC
+ DCD SDIO_IRQHandler ; SDIO
+ DCD TIM5_IRQHandler ; TIM5
+ DCD SPI3_IRQHandler ; SPI3
+ DCD UART4_IRQHandler ; UART4
+ DCD UART5_IRQHandler ; UART5
+ DCD TIM6_DAC_IRQHandler ; TIM6 and DAC1&2 underrun errors
+ DCD TIM7_IRQHandler ; TIM7
+ DCD DMA2_Stream0_IRQHandler ; DMA2 Stream 0
+ DCD DMA2_Stream1_IRQHandler ; DMA2 Stream 1
+ DCD DMA2_Stream2_IRQHandler ; DMA2 Stream 2
+ DCD DMA2_Stream3_IRQHandler ; DMA2 Stream 3
+ DCD DMA2_Stream4_IRQHandler ; DMA2 Stream 4
+ DCD ETH_IRQHandler ; Ethernet
+ DCD ETH_WKUP_IRQHandler ; Ethernet Wakeup through EXTI line
+ DCD CAN2_TX_IRQHandler ; CAN2 TX
+ DCD CAN2_RX0_IRQHandler ; CAN2 RX0
+ DCD CAN2_RX1_IRQHandler ; CAN2 RX1
+ DCD CAN2_SCE_IRQHandler ; CAN2 SCE
+ DCD OTG_FS_IRQHandler ; USB OTG FS
+ DCD DMA2_Stream5_IRQHandler ; DMA2 Stream 5
+ DCD DMA2_Stream6_IRQHandler ; DMA2 Stream 6
+ DCD DMA2_Stream7_IRQHandler ; DMA2 Stream 7
+ DCD USART6_IRQHandler ; USART6
+ DCD I2C3_EV_IRQHandler ; I2C3 event
+ DCD I2C3_ER_IRQHandler ; I2C3 error
+ DCD OTG_HS_EP1_OUT_IRQHandler ; USB OTG HS End Point 1 Out
+ DCD OTG_HS_EP1_IN_IRQHandler ; USB OTG HS End Point 1 In
+ DCD OTG_HS_WKUP_IRQHandler ; USB OTG HS Wakeup through EXTI
+ DCD OTG_HS_IRQHandler ; USB OTG HS
+ DCD DCMI_IRQHandler ; DCMI
+ DCD 0 ; Reserved
+ DCD HASH_RNG_IRQHandler ; Hash and Rng
+ DCD FPU_IRQHandler ; FPU
+ DCD UART7_IRQHandler ; UART7
+ DCD UART8_IRQHandler ; UART8
+ DCD SPI4_IRQHandler ; SPI4
+ DCD SPI5_IRQHandler ; SPI5
+ DCD SPI6_IRQHandler ; SPI6
+ DCD SAI1_IRQHandler ; SAI1
+ DCD LTDC_IRQHandler ; LTDC
+ DCD LTDC_ER_IRQHandler ; LTDC error
+ DCD DMA2D_IRQHandler ; DMA2D
+
+__Vectors_End
+
+__Vectors_Size EQU __Vectors_End - __Vectors
+
+ AREA |.text|, CODE, READONLY
+
+; Reset handler
+Reset_Handler PROC
+ EXPORT Reset_Handler [WEAK]
+ IMPORT SystemInit
+ IMPORT __main
+
+ LDR R0, =SystemInit
+ BLX R0
+ LDR R0, =__main
+ BX R0
+ ENDP
+
+; Dummy Exception Handlers (infinite loops which can be modified)
+
+NMI_Handler PROC
+ EXPORT NMI_Handler [WEAK]
+ B .
+ ENDP
+HardFault_Handler\
+ PROC
+ EXPORT HardFault_Handler [WEAK]
+ B .
+ ENDP
+MemManage_Handler\
+ PROC
+ EXPORT MemManage_Handler [WEAK]
+ B .
+ ENDP
+BusFault_Handler\
+ PROC
+ EXPORT BusFault_Handler [WEAK]
+ B .
+ ENDP
+UsageFault_Handler\
+ PROC
+ EXPORT UsageFault_Handler [WEAK]
+ B .
+ ENDP
+SVC_Handler PROC
+ EXPORT SVC_Handler [WEAK]
+ B .
+ ENDP
+DebugMon_Handler\
+ PROC
+ EXPORT DebugMon_Handler [WEAK]
+ B .
+ ENDP
+PendSV_Handler PROC
+ EXPORT PendSV_Handler [WEAK]
+ B .
+ ENDP
+SysTick_Handler PROC
+ EXPORT SysTick_Handler [WEAK]
+ B .
+ ENDP
+
+Default_Handler PROC
+
+ EXPORT WWDG_IRQHandler [WEAK]
+ EXPORT PVD_IRQHandler [WEAK]
+ EXPORT TAMP_STAMP_IRQHandler [WEAK]
+ EXPORT RTC_WKUP_IRQHandler [WEAK]
+ EXPORT FLASH_IRQHandler [WEAK]
+ EXPORT RCC_IRQHandler [WEAK]
+ EXPORT EXTI0_IRQHandler [WEAK]
+ EXPORT EXTI1_IRQHandler [WEAK]
+ EXPORT EXTI2_IRQHandler [WEAK]
+ EXPORT EXTI3_IRQHandler [WEAK]
+ EXPORT EXTI4_IRQHandler [WEAK]
+ EXPORT DMA1_Stream0_IRQHandler [WEAK]
+ EXPORT DMA1_Stream1_IRQHandler [WEAK]
+ EXPORT DMA1_Stream2_IRQHandler [WEAK]
+ EXPORT DMA1_Stream3_IRQHandler [WEAK]
+ EXPORT DMA1_Stream4_IRQHandler [WEAK]
+ EXPORT DMA1_Stream5_IRQHandler [WEAK]
+ EXPORT DMA1_Stream6_IRQHandler [WEAK]
+ EXPORT ADC_IRQHandler [WEAK]
+ EXPORT CAN1_TX_IRQHandler [WEAK]
+ EXPORT CAN1_RX0_IRQHandler [WEAK]
+ EXPORT CAN1_RX1_IRQHandler [WEAK]
+ EXPORT CAN1_SCE_IRQHandler [WEAK]
+ EXPORT EXTI9_5_IRQHandler [WEAK]
+ EXPORT TIM1_BRK_TIM9_IRQHandler [WEAK]
+ EXPORT TIM1_UP_TIM10_IRQHandler [WEAK]
+ EXPORT TIM1_TRG_COM_TIM11_IRQHandler [WEAK]
+ EXPORT TIM1_CC_IRQHandler [WEAK]
+ EXPORT TIM2_IRQHandler [WEAK]
+ EXPORT TIM3_IRQHandler [WEAK]
+ EXPORT TIM4_IRQHandler [WEAK]
+ EXPORT I2C1_EV_IRQHandler [WEAK]
+ EXPORT I2C1_ER_IRQHandler [WEAK]
+ EXPORT I2C2_EV_IRQHandler [WEAK]
+ EXPORT I2C2_ER_IRQHandler [WEAK]
+ EXPORT SPI1_IRQHandler [WEAK]
+ EXPORT SPI2_IRQHandler [WEAK]
+ EXPORT USART1_IRQHandler [WEAK]
+ EXPORT USART2_IRQHandler [WEAK]
+ EXPORT USART3_IRQHandler [WEAK]
+ EXPORT EXTI15_10_IRQHandler [WEAK]
+ EXPORT RTC_Alarm_IRQHandler [WEAK]
+ EXPORT OTG_FS_WKUP_IRQHandler [WEAK]
+ EXPORT TIM8_BRK_TIM12_IRQHandler [WEAK]
+ EXPORT TIM8_UP_TIM13_IRQHandler [WEAK]
+ EXPORT TIM8_TRG_COM_TIM14_IRQHandler [WEAK]
+ EXPORT TIM8_CC_IRQHandler [WEAK]
+ EXPORT DMA1_Stream7_IRQHandler [WEAK]
+ EXPORT FMC_IRQHandler [WEAK]
+ EXPORT SDIO_IRQHandler [WEAK]
+ EXPORT TIM5_IRQHandler [WEAK]
+ EXPORT SPI3_IRQHandler [WEAK]
+ EXPORT UART4_IRQHandler [WEAK]
+ EXPORT UART5_IRQHandler [WEAK]
+ EXPORT TIM6_DAC_IRQHandler [WEAK]
+ EXPORT TIM7_IRQHandler [WEAK]
+ EXPORT DMA2_Stream0_IRQHandler [WEAK]
+ EXPORT DMA2_Stream1_IRQHandler [WEAK]
+ EXPORT DMA2_Stream2_IRQHandler [WEAK]
+ EXPORT DMA2_Stream3_IRQHandler [WEAK]
+ EXPORT DMA2_Stream4_IRQHandler [WEAK]
+ EXPORT ETH_IRQHandler [WEAK]
+ EXPORT ETH_WKUP_IRQHandler [WEAK]
+ EXPORT CAN2_TX_IRQHandler [WEAK]
+ EXPORT CAN2_RX0_IRQHandler [WEAK]
+ EXPORT CAN2_RX1_IRQHandler [WEAK]
+ EXPORT CAN2_SCE_IRQHandler [WEAK]
+ EXPORT OTG_FS_IRQHandler [WEAK]
+ EXPORT DMA2_Stream5_IRQHandler [WEAK]
+ EXPORT DMA2_Stream6_IRQHandler [WEAK]
+ EXPORT DMA2_Stream7_IRQHandler [WEAK]
+ EXPORT USART6_IRQHandler [WEAK]
+ EXPORT I2C3_EV_IRQHandler [WEAK]
+ EXPORT I2C3_ER_IRQHandler [WEAK]
+ EXPORT OTG_HS_EP1_OUT_IRQHandler [WEAK]
+ EXPORT OTG_HS_EP1_IN_IRQHandler [WEAK]
+ EXPORT OTG_HS_WKUP_IRQHandler [WEAK]
+ EXPORT OTG_HS_IRQHandler [WEAK]
+ EXPORT DCMI_IRQHandler [WEAK]
+ EXPORT HASH_RNG_IRQHandler [WEAK]
+ EXPORT FPU_IRQHandler [WEAK]
+ EXPORT UART7_IRQHandler [WEAK]
+ EXPORT UART8_IRQHandler [WEAK]
+ EXPORT SPI4_IRQHandler [WEAK]
+ EXPORT SPI5_IRQHandler [WEAK]
+ EXPORT SPI6_IRQHandler [WEAK]
+ EXPORT SAI1_IRQHandler [WEAK]
+ EXPORT LTDC_IRQHandler [WEAK]
+ EXPORT LTDC_ER_IRQHandler [WEAK]
+ EXPORT DMA2D_IRQHandler [WEAK]
+
+WWDG_IRQHandler
+PVD_IRQHandler
+TAMP_STAMP_IRQHandler
+RTC_WKUP_IRQHandler
+FLASH_IRQHandler
+RCC_IRQHandler
+EXTI0_IRQHandler
+EXTI1_IRQHandler
+EXTI2_IRQHandler
+EXTI3_IRQHandler
+EXTI4_IRQHandler
+DMA1_Stream0_IRQHandler
+DMA1_Stream1_IRQHandler
+DMA1_Stream2_IRQHandler
+DMA1_Stream3_IRQHandler
+DMA1_Stream4_IRQHandler
+DMA1_Stream5_IRQHandler
+DMA1_Stream6_IRQHandler
+ADC_IRQHandler
+CAN1_TX_IRQHandler
+CAN1_RX0_IRQHandler
+CAN1_RX1_IRQHandler
+CAN1_SCE_IRQHandler
+EXTI9_5_IRQHandler
+TIM1_BRK_TIM9_IRQHandler
+TIM1_UP_TIM10_IRQHandler
+TIM1_TRG_COM_TIM11_IRQHandler
+TIM1_CC_IRQHandler
+TIM2_IRQHandler
+TIM3_IRQHandler
+TIM4_IRQHandler
+I2C1_EV_IRQHandler
+I2C1_ER_IRQHandler
+I2C2_EV_IRQHandler
+I2C2_ER_IRQHandler
+SPI1_IRQHandler
+SPI2_IRQHandler
+USART1_IRQHandler
+USART2_IRQHandler
+USART3_IRQHandler
+EXTI15_10_IRQHandler
+RTC_Alarm_IRQHandler
+OTG_FS_WKUP_IRQHandler
+TIM8_BRK_TIM12_IRQHandler
+TIM8_UP_TIM13_IRQHandler
+TIM8_TRG_COM_TIM14_IRQHandler
+TIM8_CC_IRQHandler
+DMA1_Stream7_IRQHandler
+FMC_IRQHandler
+SDIO_IRQHandler
+TIM5_IRQHandler
+SPI3_IRQHandler
+UART4_IRQHandler
+UART5_IRQHandler
+TIM6_DAC_IRQHandler
+TIM7_IRQHandler
+DMA2_Stream0_IRQHandler
+DMA2_Stream1_IRQHandler
+DMA2_Stream2_IRQHandler
+DMA2_Stream3_IRQHandler
+DMA2_Stream4_IRQHandler
+ETH_IRQHandler
+ETH_WKUP_IRQHandler
+CAN2_TX_IRQHandler
+CAN2_RX0_IRQHandler
+CAN2_RX1_IRQHandler
+CAN2_SCE_IRQHandler
+OTG_FS_IRQHandler
+DMA2_Stream5_IRQHandler
+DMA2_Stream6_IRQHandler
+DMA2_Stream7_IRQHandler
+USART6_IRQHandler
+I2C3_EV_IRQHandler
+I2C3_ER_IRQHandler
+OTG_HS_EP1_OUT_IRQHandler
+OTG_HS_EP1_IN_IRQHandler
+OTG_HS_WKUP_IRQHandler
+OTG_HS_IRQHandler
+DCMI_IRQHandler
+HASH_RNG_IRQHandler
+FPU_IRQHandler
+UART7_IRQHandler
+UART8_IRQHandler
+SPI4_IRQHandler
+SPI5_IRQHandler
+SPI6_IRQHandler
+SAI1_IRQHandler
+LTDC_IRQHandler
+LTDC_ER_IRQHandler
+DMA2D_IRQHandler
+ B .
+
+ ENDP
+
+ ALIGN
+
+;*******************************************************************************
+; User Stack and Heap initialization
+;*******************************************************************************
+ IF :DEF:__MICROLIB
+
+ EXPORT __initial_sp
+ EXPORT __heap_base
+ EXPORT __heap_limit
+
+ ELSE
+
+ IMPORT __use_two_region_memory
+ EXPORT __user_initial_stackheap
+
+__user_initial_stackheap
+
+ LDR R0, = Heap_Mem
+ LDR R1, =(Stack_Mem + Stack_Size)
+ LDR R2, = (Heap_Mem + Heap_Size)
+ LDR R3, = Stack_Mem
+ BX LR
+
+ ALIGN
+
+ ENDIF
+
+ END
+
+;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE*****
diff --git a/board/BearPi_STM32L431RC/BSP/Src/mcu_init.c b/board/BearPi_STM32L431RC/BSP/Src/mcu_init.c
index 2b0a8eea..7787f2e5 100644
--- a/board/BearPi_STM32L431RC/BSP/Src/mcu_init.c
+++ b/board/BearPi_STM32L431RC/BSP/Src/mcu_init.c
@@ -39,7 +39,7 @@ void m26_power_on(void)
void board_init(void)
{
char *str = "TencentOS tiny";
-
+
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
@@ -68,11 +68,11 @@ void SystemClock_Config(void)
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
- /** Configure LSE Drive Capability
+ /** Configure LSE Drive Capability
*/
HAL_PWR_EnableBkUpAccess();
__HAL_RCC_LSEDRIVE_CONFIG(RCC_LSEDRIVE_LOW);
- /** Initializes the CPU, AHB and APB busses clocks
+ /** Initializes the CPU, AHB and APB busses clocks
*/
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE|RCC_OSCILLATORTYPE_MSI;
RCC_OscInitStruct.LSEState = RCC_LSE_ON;
@@ -90,7 +90,7 @@ void SystemClock_Config(void)
{
Error_Handler();
}
- /** Initializes the CPU, AHB and APB busses clocks
+ /** Initializes the CPU, AHB and APB busses clocks
*/
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
@@ -122,13 +122,13 @@ void SystemClock_Config(void)
{
Error_Handler();
}
- /** Configure the main internal regulator output voltage
+ /** Configure the main internal regulator output voltage
*/
if (HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1) != HAL_OK)
{
Error_Handler();
}
- /** Enable MSI Auto calibration
+ /** Enable MSI Auto calibration
*/
HAL_RCCEx_EnableMSIPLLMode();
}
@@ -158,7 +158,7 @@ void Error_Handler(void)
* @retval None
*/
void assert_failed(char *file, uint32_t line)
-{
+{
/* USER CODE BEGIN 6 */
/* User can add his own implementation to report the file name and line number,
tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
diff --git a/board/BearPi_STM32L431RC/BSP/Src/stm32l4xx_it_module.c b/board/BearPi_STM32L431RC/BSP/Src/stm32l4xx_it_module.c
index 0d2069c2..2473e742 100644
--- a/board/BearPi_STM32L431RC/BSP/Src/stm32l4xx_it_module.c
+++ b/board/BearPi_STM32L431RC/BSP/Src/stm32l4xx_it_module.c
@@ -300,7 +300,7 @@ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
extern uint8_t data;
if (huart->Instance == LPUART1) {
HAL_UART_Receive_IT(&hlpuart1, &data, 1);
- tos_at_uart_write_byte(data);
+ tos_at_uart_input_byte(data);
}
}
/* USER CODE END 1 */
diff --git a/board/LTE_DTU_SIM7600/BSP/Inc/tos_at.h b/board/LTE_DTU_SIM7600/BSP/Inc/tos_at.h
index f57b01d4..6d6c706d 100644
--- a/board/LTE_DTU_SIM7600/BSP/Inc/tos_at.h
+++ b/board/LTE_DTU_SIM7600/BSP/Inc/tos_at.h
@@ -363,7 +363,7 @@ int tos_at_raw_data_send_until(at_echo_t *echo, uint32_t timeout, const uint8_t
*
* @return None
*/
-void tos_at_uart_write_byte(uint8_t data);
+void tos_at_uart_input_byte(uint8_t data);
/**
* @brief A global lock provided by at framework.
diff --git a/board/LTE_DTU_SIM7600/BSP/Src/stm32f1xx_it_module.c b/board/LTE_DTU_SIM7600/BSP/Src/stm32f1xx_it_module.c
index f409653f..dabc08be 100644
--- a/board/LTE_DTU_SIM7600/BSP/Src/stm32f1xx_it_module.c
+++ b/board/LTE_DTU_SIM7600/BSP/Src/stm32f1xx_it_module.c
@@ -257,7 +257,7 @@ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
extern uint8_t data;
if (huart->Instance == USART2) {
HAL_UART_Receive_IT(&huart2, &data, 1);
- tos_at_uart_write_byte(data);
+ tos_at_uart_input_byte(data);
}
}
/* USER CODE END 1 */
diff --git a/board/N32G020K8_TB_V11/tencent_os_mqtt/src/n32g020xx_it.c b/board/N32G020K8_TB_V11/tencent_os_mqtt/src/n32g020xx_it.c
index 0dc5c3a6..41af8fe7 100644
--- a/board/N32G020K8_TB_V11/tencent_os_mqtt/src/n32g020xx_it.c
+++ b/board/N32G020K8_TB_V11/tencent_os_mqtt/src/n32g020xx_it.c
@@ -100,7 +100,7 @@ void SysTick_Handler(void) {
void AT_UART_DataParse(char byte)
{
- tos_at_uart_write_byte(byte);
+ tos_at_uart_input_byte(byte);
}
/* USER CODE BEGIN 1 */
diff --git a/board/NUCLEO_STM32L073RZ/BSP/Src/stm32l0xx_it_lorawan.c b/board/NUCLEO_STM32L073RZ/BSP/Src/stm32l0xx_it_lorawan.c
index f3f019db..92190613 100644
--- a/board/NUCLEO_STM32L073RZ/BSP/Src/stm32l0xx_it_lorawan.c
+++ b/board/NUCLEO_STM32L073RZ/BSP/Src/stm32l0xx_it_lorawan.c
@@ -182,7 +182,7 @@ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
extern uint8_t data;
if (huart->Instance == USART1) {
HAL_UART_Receive_IT(&huart1, &data, 1);
- tos_at_uart_write_byte(data);
+ tos_at_uart_input_byte(data);
}
}
/* USER CODE END 1 */
diff --git a/board/STM32F103_SIM800A/Src/stm32f1xx_it.c b/board/STM32F103_SIM800A/Src/stm32f1xx_it.c
index 74a3bc1f..df38a31a 100644
--- a/board/STM32F103_SIM800A/Src/stm32f1xx_it.c
+++ b/board/STM32F103_SIM800A/Src/stm32f1xx_it.c
@@ -253,7 +253,7 @@ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
extern uint8_t data;
if (huart->Instance == USART2) {
HAL_UART_Receive_IT(&huart2, &data, 1);
- tos_at_uart_write_byte(data);
+ tos_at_uart_input_byte(data);
}
}
/* USER CODE END 1 */
diff --git a/board/TOS_tiny_EVK_STM32L431CBT6/BSP/Src/stm32l4xx_it_at.c b/board/TOS_tiny_EVK_STM32L431CBT6/BSP/Src/stm32l4xx_it_at.c
index 27ced435..cec7f379 100644
--- a/board/TOS_tiny_EVK_STM32L431CBT6/BSP/Src/stm32l4xx_it_at.c
+++ b/board/TOS_tiny_EVK_STM32L431CBT6/BSP/Src/stm32l4xx_it_at.c
@@ -279,10 +279,10 @@ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
extern uint8_t data;
if (huart->Instance == USART3) {
HAL_UART_Receive_IT(&huart3, &data, 1);
- tos_at_uart_write_byte(data);
+ tos_at_uart_input_byte(data);
} else if (huart->Instance == USART2) {
HAL_UART_Receive_IT(&huart2, &data, 1);
- tos_at_uart_write_byte(data);
+ tos_at_uart_input_byte(data);
}
}
/* USER CODE END 1 */
diff --git a/board/TOS_tiny_EVK_STM32L431CBT6/BSP/Src/stm32l4xx_it_mqtt.c b/board/TOS_tiny_EVK_STM32L431CBT6/BSP/Src/stm32l4xx_it_mqtt.c
index b5a5fe72..a1488233 100644
--- a/board/TOS_tiny_EVK_STM32L431CBT6/BSP/Src/stm32l4xx_it_mqtt.c
+++ b/board/TOS_tiny_EVK_STM32L431CBT6/BSP/Src/stm32l4xx_it_mqtt.c
@@ -262,10 +262,10 @@ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
extern uint8_t data;
if (huart->Instance == USART3) {
HAL_UART_Receive_IT(&huart3, &data, 1);
- tos_at_uart_write_byte(data);
+ tos_at_uart_input_byte(data);
} else if (huart->Instance == USART2) {
HAL_UART_Receive_IT(&huart2, &data, 1);
- tos_at_uart_write_byte(data);
+ tos_at_uart_input_byte(data);
}
}
/* USER CODE END 1 */
diff --git a/board/TencentOS_tiny_EVB_MX/BSP/Src/stm32l4xx_it_evtdrv_module.c b/board/TencentOS_tiny_EVB_MX/BSP/Src/stm32l4xx_it_evtdrv_module.c
index 9a0b383b..9ad57024 100644
--- a/board/TencentOS_tiny_EVB_MX/BSP/Src/stm32l4xx_it_evtdrv_module.c
+++ b/board/TencentOS_tiny_EVB_MX/BSP/Src/stm32l4xx_it_evtdrv_module.c
@@ -296,7 +296,7 @@ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
extern uint8_t data;
if (huart->Instance == LPUART1) {
HAL_UART_Receive_IT(&hlpuart1, &data, 1);
- tos_at_uart_write_byte(data);
+ tos_at_uart_input_byte(data);
}
}
/* USER CODE END 1 */
diff --git a/board/TencentOS_tiny_EVB_MX/BSP/Src/stm32l4xx_it_module.c b/board/TencentOS_tiny_EVB_MX/BSP/Src/stm32l4xx_it_module.c
index 0d2069c2..2473e742 100644
--- a/board/TencentOS_tiny_EVB_MX/BSP/Src/stm32l4xx_it_module.c
+++ b/board/TencentOS_tiny_EVB_MX/BSP/Src/stm32l4xx_it_module.c
@@ -300,7 +300,7 @@ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
extern uint8_t data;
if (huart->Instance == LPUART1) {
HAL_UART_Receive_IT(&hlpuart1, &data, 1);
- tos_at_uart_write_byte(data);
+ tos_at_uart_input_byte(data);
}
}
/* USER CODE END 1 */
diff --git a/board/TencentOS_tiny_EVB_MX_Plus/BSP/Src/mcu_init.c b/board/TencentOS_tiny_EVB_MX_Plus/BSP/Src/mcu_init.c
index d18754e9..97f9d004 100644
--- a/board/TencentOS_tiny_EVB_MX_Plus/BSP/Src/mcu_init.c
+++ b/board/TencentOS_tiny_EVB_MX_Plus/BSP/Src/mcu_init.c
@@ -2,11 +2,17 @@
int fputc(int ch, FILE *f)
{
- if (ch == '\n') {
- HAL_UART_Transmit(&huart2, (void *)"\r", 1,30000);
- }
- HAL_UART_Transmit(&huart2, (uint8_t *)&ch, 1, 0xFFFF);
- return ch;
+#if 0
+ if (ch == '\n') {
+ HAL_UART_Transmit(&huart2, (void *)"\r", 1, 30000);
+ }
+ HAL_UART_Transmit(&huart2, (uint8_t *)&ch, 1, 0xFFFF);
+ return ch;
+#else
+ while ((USART2->ISR & 0X40) == 0);
+ USART2->TDR = (uint8_t)ch;
+ return ch;
+#endif
}
int _write(int fd, char *ptr, int len)
@@ -38,7 +44,7 @@ void m26_power_on(void)
void board_init(void)
{
char *str = "TencentOS tiny";
-
+
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
@@ -72,11 +78,11 @@ void SystemClock_Config(void)
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
- /** Configure LSE Drive Capability
+ /** Configure LSE Drive Capability
*/
HAL_PWR_EnableBkUpAccess();
__HAL_RCC_LSEDRIVE_CONFIG(RCC_LSEDRIVE_LOW);
- /** Initializes the CPU, AHB and APB busses clocks
+ /** Initializes the CPU, AHB and APB busses clocks
*/
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE|RCC_OSCILLATORTYPE_MSI;
RCC_OscInitStruct.LSEState = RCC_LSE_ON;
@@ -94,7 +100,7 @@ void SystemClock_Config(void)
{
Error_Handler();
}
- /** Initializes the CPU, AHB and APB busses clocks
+ /** Initializes the CPU, AHB and APB busses clocks
*/
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
@@ -126,13 +132,13 @@ void SystemClock_Config(void)
{
Error_Handler();
}
- /** Configure the main internal regulator output voltage
+ /** Configure the main internal regulator output voltage
*/
if (HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1) != HAL_OK)
{
Error_Handler();
}
- /** Enable MSI Auto calibration
+ /** Enable MSI Auto calibration
*/
HAL_RCCEx_EnableMSIPLLMode();
}
@@ -162,7 +168,7 @@ void Error_Handler(void)
* @retval None
*/
void assert_failed(char *file, uint32_t line)
-{
+{
/* USER CODE BEGIN 6 */
/* User can add his own implementation to report the file name and line number,
tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
diff --git a/board/TencentOS_tiny_EVB_MX_Plus/BSP/Src/stm32l4xx_it_evtdrv_module.c b/board/TencentOS_tiny_EVB_MX_Plus/BSP/Src/stm32l4xx_it_evtdrv_module.c
index 9a0b383b..9ad57024 100644
--- a/board/TencentOS_tiny_EVB_MX_Plus/BSP/Src/stm32l4xx_it_evtdrv_module.c
+++ b/board/TencentOS_tiny_EVB_MX_Plus/BSP/Src/stm32l4xx_it_evtdrv_module.c
@@ -296,7 +296,7 @@ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
extern uint8_t data;
if (huart->Instance == LPUART1) {
HAL_UART_Receive_IT(&hlpuart1, &data, 1);
- tos_at_uart_write_byte(data);
+ tos_at_uart_input_byte(data);
}
}
/* USER CODE END 1 */
diff --git a/board/TencentOS_tiny_EVB_MX_Plus/BSP/Src/stm32l4xx_it_module.c b/board/TencentOS_tiny_EVB_MX_Plus/BSP/Src/stm32l4xx_it_module.c
index 0d2069c2..2473e742 100644
--- a/board/TencentOS_tiny_EVB_MX_Plus/BSP/Src/stm32l4xx_it_module.c
+++ b/board/TencentOS_tiny_EVB_MX_Plus/BSP/Src/stm32l4xx_it_module.c
@@ -300,7 +300,7 @@ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
extern uint8_t data;
if (huart->Instance == LPUART1) {
HAL_UART_Receive_IT(&hlpuart1, &data, 1);
- tos_at_uart_write_byte(data);
+ tos_at_uart_input_byte(data);
}
}
/* USER CODE END 1 */
diff --git a/board/TencentOS_tiny_EVB_MX_Plus/BSP/Src/stm32l4xx_it_shell.c b/board/TencentOS_tiny_EVB_MX_Plus/BSP/Src/stm32l4xx_it_shell.c
new file mode 100644
index 00000000..4e0da9c3
--- /dev/null
+++ b/board/TencentOS_tiny_EVB_MX_Plus/BSP/Src/stm32l4xx_it_shell.c
@@ -0,0 +1,337 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file stm32l4xx_it.c
+ * @brief Interrupt Service Routines.
+ ******************************************************************************
+ * @attention
+ *
+ * © Copyright (c) 2019 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software component is licensed by ST under BSD 3-Clause license,
+ * the "License"; You may not use this file except in compliance with the
+ * License. You may obtain a copy of the License at:
+ * opensource.org/licenses/BSD-3-Clause
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+
+/* Includes ------------------------------------------------------------------*/
+#include "main.h"
+#include "stm32l4xx_it.h"
+#include "tos_k.h"
+#include "tos_shell.h"
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+/* USER CODE END Includes */
+
+/* Private typedef -----------------------------------------------------------*/
+/* USER CODE BEGIN TD */
+
+/* USER CODE END TD */
+
+/* Private define ------------------------------------------------------------*/
+/* USER CODE BEGIN PD */
+
+/* USER CODE END PD */
+
+/* Private macro -------------------------------------------------------------*/
+/* USER CODE BEGIN PM */
+
+/* USER CODE END PM */
+
+/* Private variables ---------------------------------------------------------*/
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private function prototypes -----------------------------------------------*/
+/* USER CODE BEGIN PFP */
+
+/* USER CODE END PFP */
+
+/* Private user code ---------------------------------------------------------*/
+/* USER CODE BEGIN 0 */
+
+/* USER CODE END 0 */
+
+/* External variables --------------------------------------------------------*/
+extern UART_HandleTypeDef hlpuart1;
+extern UART_HandleTypeDef huart2;
+extern UART_HandleTypeDef huart3;
+/* USER CODE BEGIN EV */
+
+/* USER CODE END EV */
+
+/******************************************************************************/
+/* Cortex-M4 Processor Interruption and Exception Handlers */
+/******************************************************************************/
+/**
+ * @brief This function handles Non maskable interrupt.
+ */
+void NMI_Handler(void)
+{
+ /* USER CODE BEGIN NonMaskableInt_IRQn 0 */
+
+ /* USER CODE END NonMaskableInt_IRQn 0 */
+ /* USER CODE BEGIN NonMaskableInt_IRQn 1 */
+
+ /* USER CODE END NonMaskableInt_IRQn 1 */
+}
+
+/**
+ * @brief This function handles Hard fault interrupt.
+ */
+void HardFault_Handler(void)
+{
+ /* USER CODE BEGIN HardFault_IRQn 0 */
+
+ /* USER CODE END HardFault_IRQn 0 */
+ while (1)
+ {
+ /* USER CODE BEGIN W1_HardFault_IRQn 0 */
+ /* USER CODE END W1_HardFault_IRQn 0 */
+ }
+}
+
+/**
+ * @brief This function handles Memory management fault.
+ */
+void MemManage_Handler(void)
+{
+ /* USER CODE BEGIN MemoryManagement_IRQn 0 */
+
+ /* USER CODE END MemoryManagement_IRQn 0 */
+ while (1)
+ {
+ /* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */
+ /* USER CODE END W1_MemoryManagement_IRQn 0 */
+ }
+}
+
+/**
+ * @brief This function handles Prefetch fault, memory access fault.
+ */
+void BusFault_Handler(void)
+{
+ /* USER CODE BEGIN BusFault_IRQn 0 */
+
+ /* USER CODE END BusFault_IRQn 0 */
+ while (1)
+ {
+ /* USER CODE BEGIN W1_BusFault_IRQn 0 */
+ /* USER CODE END W1_BusFault_IRQn 0 */
+ }
+}
+
+/**
+ * @brief This function handles Undefined instruction or illegal state.
+ */
+void UsageFault_Handler(void)
+{
+ /* USER CODE BEGIN UsageFault_IRQn 0 */
+
+ /* USER CODE END UsageFault_IRQn 0 */
+ while (1)
+ {
+ /* USER CODE BEGIN W1_UsageFault_IRQn 0 */
+ /* USER CODE END W1_UsageFault_IRQn 0 */
+ }
+}
+
+/**
+ * @brief This function handles System service call via SWI instruction.
+ */
+void SVC_Handler(void)
+{
+ /* USER CODE BEGIN SVCall_IRQn 0 */
+
+ /* USER CODE END SVCall_IRQn 0 */
+ /* USER CODE BEGIN SVCall_IRQn 1 */
+
+ /* USER CODE END SVCall_IRQn 1 */
+}
+
+/**
+ * @brief This function handles Debug monitor.
+ */
+void DebugMon_Handler(void)
+{
+ /* USER CODE BEGIN DebugMonitor_IRQn 0 */
+
+ /* USER CODE END DebugMonitor_IRQn 0 */
+ /* USER CODE BEGIN DebugMonitor_IRQn 1 */
+
+ /* USER CODE END DebugMonitor_IRQn 1 */
+}
+
+/**
+ * @brief This function handles Pendable request for system service.
+ */
+__weak void PendSV_Handler(void)
+{
+ /* USER CODE BEGIN PendSV_IRQn 0 */
+
+ /* USER CODE END PendSV_IRQn 0 */
+ /* USER CODE BEGIN PendSV_IRQn 1 */
+
+ /* USER CODE END PendSV_IRQn 1 */
+}
+
+/**
+ * @brief This function handles System tick timer.
+ */
+void SysTick_Handler(void)
+{
+ /* USER CODE BEGIN SysTick_IRQn 0 */
+
+ /* USER CODE END SysTick_IRQn 0 */
+ HAL_IncTick();
+ if (tos_knl_is_running())
+ {
+ tos_knl_irq_enter();
+ tos_tick_handler();
+ tos_knl_irq_leave();
+ }
+ //HAL_SYSTICK_IRQHandler();
+ /* USER CODE BEGIN SysTick_IRQn 1 */
+
+ /* USER CODE END SysTick_IRQn 1 */
+}
+
+/******************************************************************************/
+/* STM32L4xx Peripheral Interrupt Handlers */
+/* Add here the Interrupt Handlers for the used peripherals. */
+/* For the available peripheral interrupt handler names, */
+/* please refer to the startup file (startup_stm32l4xx.s). */
+/******************************************************************************/
+
+/**
+ * @brief This function handles EXTI line1 interrupt.
+ */
+void EXTI1_IRQHandler(void)
+{
+ /* USER CODE BEGIN EXTI1_IRQn 0 */
+
+ /* USER CODE END EXTI1_IRQn 0 */
+ HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_1);
+ /* USER CODE BEGIN EXTI1_IRQn 1 */
+
+ /* USER CODE END EXTI1_IRQn 1 */
+}
+
+/**
+ * @brief This function handles EXTI line2 interrupt.
+ */
+void EXTI2_IRQHandler(void)
+{
+ /* USER CODE BEGIN EXTI2_IRQn 0 */
+
+ /* USER CODE END EXTI2_IRQn 0 */
+ HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_2);
+ /* USER CODE BEGIN EXTI2_IRQn 1 */
+
+ /* USER CODE END EXTI2_IRQn 1 */
+}
+
+/**
+ * @brief This function handles EXTI line3 interrupt.
+ */
+void EXTI3_IRQHandler(void)
+{
+ /* USER CODE BEGIN EXTI3_IRQn 0 */
+
+ /* USER CODE END EXTI3_IRQn 0 */
+ HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_3);
+ /* USER CODE BEGIN EXTI3_IRQn 1 */
+
+ /* USER CODE END EXTI3_IRQn 1 */
+}
+
+extern uint8_t data;
+
+/**
+ * @brief This function handles USART2 global interrupt.
+ */
+void USART2_IRQHandler(void)
+{
+#if 0
+ /* USER CODE BEGIN USART2_IRQn 0 */
+
+ /* USER CODE END USART2_IRQn 0 */
+ tos_knl_irq_enter();
+ HAL_UART_IRQHandler(&huart2);
+ tos_knl_irq_leave();
+ /* USER CODE BEGIN USART2_IRQn 1 */
+
+ /* USER CODE END USART2_IRQn 1 */
+#else
+
+ uint32_t timeout = 0, max_delay = 0x1FFFF;
+
+ tos_knl_irq_enter();
+
+ HAL_UART_IRQHandler(&huart2);
+
+ timeout = 0;
+ while (HAL_UART_GetState(&huart2) != HAL_UART_STATE_READY) {
+ ++timeout;
+ if (timeout > max_delay) {
+ break;
+ }
+ }
+
+ timeout = 0;
+ while (HAL_UART_Receive_IT(&huart2, &data, 1) != HAL_OK) {
+ ++timeout;
+ if (timeout > max_delay) {
+ break;
+ }
+ }
+
+ tos_knl_irq_leave();
+
+#endif
+}
+
+/**
+ * @brief This function handles USART3 global interrupt.
+ */
+void USART3_IRQHandler(void)
+{
+ /* USER CODE BEGIN USART3_IRQn 0 */
+
+ /* USER CODE END USART3_IRQn 0 */
+ HAL_UART_IRQHandler(&huart3);
+ /* USER CODE BEGIN USART3_IRQn 1 */
+
+ /* USER CODE END USART3_IRQn 1 */
+}
+
+/**
+ * @brief This function handles LPUART1 global interrupt.
+ */
+void LPUART1_IRQHandler(void)
+{
+ /* USER CODE BEGIN LPUART1_IRQn 0 */
+
+ /* USER CODE END LPUART1_IRQn 0 */
+ tos_knl_irq_enter();
+ HAL_UART_IRQHandler(&hlpuart1);
+ tos_knl_irq_leave();
+ /* USER CODE BEGIN LPUART1_IRQn 1 */
+
+ /* USER CODE END LPUART1_IRQn 1 */
+}
+
+/* USER CODE BEGIN 1 */
+void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
+{
+ if (huart->Instance == USART2) {
+ tos_shell_input_byte(data);
+ }
+}
+/* USER CODE END 1 */
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/board/TencentOS_tiny_EVB_MX_Plus/BSP/Src/usart.c b/board/TencentOS_tiny_EVB_MX_Plus/BSP/Src/usart.c
index 5d5c356c..4b603f45 100644
--- a/board/TencentOS_tiny_EVB_MX_Plus/BSP/Src/usart.c
+++ b/board/TencentOS_tiny_EVB_MX_Plus/BSP/Src/usart.c
@@ -74,7 +74,6 @@ void MX_USART1_UART_Init(void)
void MX_USART2_UART_Init(void)
{
-
huart2.Instance = USART2;
huart2.Init.BaudRate = 115200;
huart2.Init.WordLength = UART_WORDLENGTH_8B;
@@ -85,11 +84,13 @@ void MX_USART2_UART_Init(void)
huart2.Init.OverSampling = UART_OVERSAMPLING_16;
huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
+
if (HAL_UART_Init(&huart2) != HAL_OK)
{
Error_Handler();
}
+ HAL_UART_Receive_IT(&huart2, &data, 1);//(uint8_t *)aRxBuffer, 1);
}
/* USART3 init function */
@@ -124,11 +125,11 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
/* USER CODE END LPUART1_MspInit 0 */
/* LPUART1 clock enable */
__HAL_RCC_LPUART1_CLK_ENABLE();
-
+
__HAL_RCC_GPIOC_CLK_ENABLE();
- /**LPUART1 GPIO Configuration
+ /**LPUART1 GPIO Configuration
PC0 ------> LPUART1_RX
- PC1 ------> LPUART1_TX
+ PC1 ------> LPUART1_TX
*/
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
@@ -151,11 +152,11 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
/* USER CODE END USART2_MspInit 0 */
/* USART2 clock enable */
__HAL_RCC_USART2_CLK_ENABLE();
-
+
__HAL_RCC_GPIOA_CLK_ENABLE();
- /**USART2 GPIO Configuration
+ /**USART2 GPIO Configuration
PA2 ------> USART2_TX
- PA3 ------> USART2_RX
+ PA3 ------> USART2_RX
*/
GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
@@ -178,11 +179,11 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
/* USER CODE END USART3_MspInit 0 */
/* USART3 clock enable */
__HAL_RCC_USART3_CLK_ENABLE();
-
+
__HAL_RCC_GPIOC_CLK_ENABLE();
- /**USART3 GPIO Configuration
+ /**USART3 GPIO Configuration
PC4 ------> USART3_TX
- PC5 ------> USART3_RX
+ PC5 ------> USART3_RX
*/
GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
@@ -210,10 +211,10 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
/* USER CODE END LPUART1_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_LPUART1_CLK_DISABLE();
-
- /**LPUART1 GPIO Configuration
+
+ /**LPUART1 GPIO Configuration
PC0 ------> LPUART1_RX
- PC1 ------> LPUART1_TX
+ PC1 ------> LPUART1_TX
*/
HAL_GPIO_DeInit(GPIOC, GPIO_PIN_0|GPIO_PIN_1);
@@ -230,10 +231,10 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
/* USER CODE END USART2_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_USART2_CLK_DISABLE();
-
- /**USART2 GPIO Configuration
+
+ /**USART2 GPIO Configuration
PA2 ------> USART2_TX
- PA3 ------> USART2_RX
+ PA3 ------> USART2_RX
*/
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2|GPIO_PIN_3);
@@ -250,10 +251,10 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
/* USER CODE END USART3_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_USART3_CLK_DISABLE();
-
- /**USART3 GPIO Configuration
+
+ /**USART3 GPIO Configuration
PC4 ------> USART3_TX
- PC5 ------> USART3_RX
+ PC5 ------> USART3_RX
*/
HAL_GPIO_DeInit(GPIOC, GPIO_PIN_4|GPIO_PIN_5);
@@ -263,7 +264,7 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
/* USER CODE END USART3_MspDeInit 1 */
}
-}
+}
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
diff --git a/board/TencentOS_tiny_EVB_MX_Plus/KEIL/shell/DebugConfig/TencentOS_tiny_STM32L431RCTx.dbgconf b/board/TencentOS_tiny_EVB_MX_Plus/KEIL/shell/DebugConfig/TencentOS_tiny_STM32L431RCTx.dbgconf
new file mode 100644
index 00000000..c9811753
--- /dev/null
+++ b/board/TencentOS_tiny_EVB_MX_Plus/KEIL/shell/DebugConfig/TencentOS_tiny_STM32L431RCTx.dbgconf
@@ -0,0 +1,97 @@
+// File: STM32L43x_44x_45x_46x.dbgconf
+// Version: 1.0.0
+// Note: refer to STM32L43xxx STM32L44xxx STM32L45xxx STM32L46xxx Reference manual (RM0394)
+// refer to STM32L431xx, STM32L432xx, STM32L433xx, STM32L442xx, STM32L443xx, STM32L451xx, STM32L452xx, STM32L462xx datasheets
+
+// <<< Use Configuration Wizard in Context Menu >>>
+
+// Debug MCU configuration register (DBGMCU_CR)
+// DBG_STANDBY
+// Debug Standby mode
+// 0: (FCLK=Off, HCLK=Off) The whole digital part is unpowered.
+// 1: (FCLK=On, HCLK=On) The digital part is not unpowered and FCLK and HCLK are provided by the internal RC oscillator which remains active
+// DBG_STOP
+// Debug Stop mode
+// 0: (FCLK=Off, HCLK=Off) In STOP mode, the clock controller disables all clocks (including HCLK and FCLK).
+// 1: (FCLK=On, HCLK=On) When entering STOP mode, FCLK and HCLK are provided by the internal RC oscillator which remains active in STOP mode.
+// DBG_SLEEP
+// Debug Sleep mode
+// 0: (FCLK=On, HCLK=Off) In Sleep mode, FCLK is clocked by the system clock as previously configured by the software while HCLK is disabled.
+// 1: (FCLK=On, HCLK=On) When entering Sleep mode, HCLK is fed by the same clock that is provided to FCLK (system clock as previously configured by the software).
+//
+DbgMCU_CR = 0x00000007;
+
+// Debug MCU APB1 freeze register1 (DBGMCU_APB1FZR1)
+// DBG_LPTIM1_STOP
+// LPTIM1 counter stopped when core is halted
+// 0: The counter clock of LPTIM1 is fed even if the core is halted
+// 1: The counter clock of LPTIM1 is stopped when the core is halted
+// DBG_CAN_STOP
+// bxCAN1 stopped when core is halted
+// 0: Same behavior as in normal mode
+// 1: The bxCAN1 receive registers are frozen
+// DBG_I2C3_STOP
+// I2C3 SMBUS timeout counter stopped when core is halted
+// 0: Same behavior as in normal mode
+// 1: The I2C3 SMBus timeout is frozen
+// DBG_I2C2_STOP
+// I2C2 SMBUS timeout counter stopped when core is halted
+// 0: Same behavior as in normal mode
+// 1: The I2C2 SMBus timeout is frozen
+// DBG_I2C1_STOP
+// I2C1 SMBUS timeout counter stopped when core is halted
+// 0: Same behavior as in normal mode
+// 1: The I2C1 SMBus timeout is frozen
+// DBG_IWDG_STOP
+// Independent watchdog counter stopped when core is halted
+// 0: The independent watchdog counter clock continues even if the core is halted
+// 1: The independent watchdog counter clock is stopped when the core is halted
+// DBG_WWDG_STOP
+// Window watchdog counter stopped when core is halted
+// 0: The window watchdog counter clock continues even if the core is halted
+// 1: The window watchdog counter clock is stopped when the core is halted
+// DBG_RTC_STOP
+// RTC counter stopped when core is halted
+// 0: The clock of the RTC counter is fed even if the core is halted
+// 1: The clock of the RTC counter is stopped when the core is halted
+// DBG_TIM7_STOP
+// TIM7 counter stopped when core is halted
+// 0: The counter clock of TIM7 is fed even if the core is halted
+// 1: The counter clock of TIM7 is stopped when the core is halted
+// DBG_TIM6_STOP
+// TIM6 counter stopped when core is halted
+// 0: The counter clock of TIM6 is fed even if the core is halted
+// 1: The counter clock of TIM6 is stopped when the core is halted
+// DBG_TIM2_STOP
+// TIM2 counter stopped when core is halted
+// 0: The counter clock of TIM2 is fed even if the core is halted
+// 1: The counter clock of TIM2 is stopped when the core is halted
+//
+DbgMCU_APB1_Fz1 = 0x00000000;
+
+// Debug MCU APB1 freeze register 2 (DBGMCU_APB1FZR2)
+// DBG_LPTIM2_STOP
+// LPTIM2 counter stopped when core is halted
+// 0: The counter clock of LPTIM2 is fed even if the core is halted
+// 1: The counter clock of LPTIM2 is stopped when the core is halted
+//
+DbgMCU_APB1_Fz2 = 0x00000000;
+
+// Debug MCU APB2 freeze register (DBGMCU_APB2FZR)
+// DBG_TIM16_STOP
+// TIM16 counter stopped when core is halted
+// 0: The clock of the TIM16 counter is fed even if the core is halted
+// 1: The clock of the TIM16 counter is stopped when the core is halted
+// DBG_TIM15_STOP
+// TIM15 counter stopped when core is halted
+// 0: The clock of the TIM15 counter is fed even if the core is halted
+// 1: The clock of the TIM15 counter is stopped when the core is halted
+// DBG_TIM1_STOP
+// TIM1 counter stopped when core is halted
+// 0: The clock of the TIM1 counter is fed even if the core is halted
+// 1: The clock of the TIM1 counter is stopped when the core is halted
+//
+DbgMCU_APB2_Fz = 0x00000000;
+//
+
+// <<< end of configuration section >>>
\ No newline at end of file
diff --git a/board/TencentOS_tiny_EVB_MX_Plus/KEIL/shell/EventRecorderStub.scvd b/board/TencentOS_tiny_EVB_MX_Plus/KEIL/shell/EventRecorderStub.scvd
new file mode 100644
index 00000000..2956b296
--- /dev/null
+++ b/board/TencentOS_tiny_EVB_MX_Plus/KEIL/shell/EventRecorderStub.scvd
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/board/TencentOS_tiny_EVB_MX_Plus/KEIL/shell/RTE/_TencentOS_tiny/RTE_Components.h b/board/TencentOS_tiny_EVB_MX_Plus/KEIL/shell/RTE/_TencentOS_tiny/RTE_Components.h
new file mode 100644
index 00000000..45b7722b
--- /dev/null
+++ b/board/TencentOS_tiny_EVB_MX_Plus/KEIL/shell/RTE/_TencentOS_tiny/RTE_Components.h
@@ -0,0 +1,20 @@
+
+/*
+ * Auto generated Run-Time-Environment Component Configuration File
+ * *** Do not modify ! ***
+ *
+ * Project: 'TencentOS_tiny'
+ * Target: 'TencentOS_tiny'
+ */
+
+#ifndef RTE_COMPONENTS_H
+#define RTE_COMPONENTS_H
+
+
+/*
+ * Define the Device Header File:
+ */
+#define CMSIS_device_header "stm32l4xx.h"
+
+
+#endif /* RTE_COMPONENTS_H */
diff --git a/board/TencentOS_tiny_EVB_MX_Plus/KEIL/shell/TencentOS_tiny.uvoptx b/board/TencentOS_tiny_EVB_MX_Plus/KEIL/shell/TencentOS_tiny.uvoptx
new file mode 100644
index 00000000..9096e8df
--- /dev/null
+++ b/board/TencentOS_tiny_EVB_MX_Plus/KEIL/shell/TencentOS_tiny.uvoptx
@@ -0,0 +1,1259 @@
+
+
+
+ 1.0
+
+ ### uVision Project, (C) Keil Software
+
+
+ *.c
+ *.s*; *.src; *.a*
+ *.obj; *.o
+ *.lib
+ *.txt; *.h; *.inc
+ *.plm
+ *.cpp
+ 0
+
+
+
+ 0
+ 0
+
+
+
+ TencentOS_tiny
+ 0x4
+ ARM-ADS
+
+ 80000000
+
+ 1
+ 1
+ 0
+ 1
+ 0
+
+
+ 1
+ 65535
+ 0
+ 0
+ 0
+
+
+ 79
+ 66
+ 8
+ .\list\
+
+
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+
+
+ 1
+ 0
+ 1
+
+ 18
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 0
+ 6
+
+
+
+
+
+
+
+
+
+
+ STLink\ST-LINKIII-KEIL_SWO.dll
+
+
+
+ 0
+ ARMRTXEVENTFLAGS
+ -L70 -Z18 -C0 -M0 -T1
+
+
+ 0
+ DLGTARM
+ (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0)
+
+
+ 0
+ ARMDBGFLAGS
+
+
+
+ 0
+ DLGUARM
+ (105=-1,-1,-1,-1,0)
+
+
+ 0
+ UL2CM3
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32L4xx_256 -FS08000000 -FL040000 -FP0($$Device:STM32L431RCTx$CMSIS\Flash\STM32L4xx_256.FLM))
+
+
+ 0
+ ST-LINKIII-KEIL_SWO
+ -U303030303030303030303031 -O10446 -SF4000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32L4xx_256.FLM -FS08000000 -FL040000 -FP0($$Device:STM32L431RCTx$CMSIS\Flash\STM32L4xx_256.FLM)
+
+
+
+
+ 0
+ 0
+ 100
+ 1
+ 134234794
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ ..\..\..\..\components\shell\tos_shell.c
+
+ \\TencentOS_tiny\../../../../components/shell/tos_shell.c\100
+
+
+ 1
+ 0
+ 132
+ 1
+ 134234700
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ ..\..\..\..\components\shell\tos_shell_commands.c
+
+ \\TencentOS_tiny\../../../../components/shell/tos_shell_commands.c\132
+
+
+ 2
+ 0
+ 117
+ 1
+ 134234634
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ ..\..\..\..\components\shell\tos_shell_commands.c
+
+ \\TencentOS_tiny\../../../../components/shell/tos_shell_commands.c\117
+
+
+
+
+ 0
+ 1
+ cmd_set_list
+
+
+ 1
+ 1
+ buildin_shell_cmd_set.list
+
+
+ 2
+ 1
+ iter
+
+
+ 3
+ 1
+ slist
+
+
+ 4
+ 1
+ custom_cmd_set
+
+
+ 5
+ 1
+ node
+
+
+ 6
+ 1
+ slist
+
+
+ 7
+ 1
+ cmd_set_list
+
+
+
+
+ 1
+ 0
+ 0x08005a4c
+ 0
+
+
+
+ 0
+
+
+ 0
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+ 1
+ 1
+ 0
+ 2
+ 10000000
+
+
+
+
+
+ Application/MDK-ARM
+ 0
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 2
+ 0
+ 0
+ 0
+ startup_stm32l431xx.s
+ startup_stm32l431xx.s
+ 0
+ 0
+
+
+
+
+ Application/User
+ 0
+ 0
+ 0
+ 0
+
+ 2
+ 2
+ 1
+ 0
+ 0
+ 0
+ ..\..\BSP\Src\gpio.c
+ gpio.c
+ 0
+ 0
+
+
+ 2
+ 3
+ 1
+ 0
+ 0
+ 0
+ ..\..\BSP\Src\main.c
+ main.c
+ 0
+ 0
+
+
+ 2
+ 4
+ 1
+ 0
+ 0
+ 0
+ ..\..\BSP\Src\mcu_init.c
+ mcu_init.c
+ 0
+ 0
+
+
+ 2
+ 5
+ 1
+ 0
+ 0
+ 0
+ ..\..\BSP\Src\stm32l4xx_hal_msp.c
+ stm32l4xx_hal_msp.c
+ 0
+ 0
+
+
+ 2
+ 6
+ 1
+ 0
+ 0
+ 0
+ ..\..\BSP\Src\stm32l4xx_it_shell.c
+ stm32l4xx_it_shell.c
+ 0
+ 0
+
+
+ 2
+ 7
+ 1
+ 0
+ 0
+ 0
+ ..\..\BSP\Src\usart.c
+ usart.c
+ 0
+ 0
+
+
+ 2
+ 8
+ 1
+ 0
+ 0
+ 0
+ ..\..\BSP\Src\adc.c
+ adc.c
+ 0
+ 0
+
+
+ 2
+ 9
+ 1
+ 0
+ 0
+ 0
+ ..\..\BSP\Src\dac.c
+ dac.c
+ 0
+ 0
+
+
+ 2
+ 10
+ 1
+ 0
+ 0
+ 0
+ ..\..\BSP\Src\i2c.c
+ i2c.c
+ 0
+ 0
+
+
+ 2
+ 11
+ 1
+ 0
+ 0
+ 0
+ ..\..\BSP\Src\spi.c
+ spi.c
+ 0
+ 0
+
+
+
+
+ examples
+ 0
+ 0
+ 0
+ 0
+
+ 3
+ 12
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\examples\shell\shell_sample.c
+ shell_sample.c
+ 0
+ 0
+
+
+
+
+ Drivers/STM32L4xx_HAL_Driver
+ 0
+ 0
+ 0
+ 0
+
+ 4
+ 13
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_tim.c
+ stm32l4xx_hal_tim.c
+ 0
+ 0
+
+
+ 4
+ 14
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_tim_ex.c
+ stm32l4xx_hal_tim_ex.c
+ 0
+ 0
+
+
+ 4
+ 15
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart.c
+ stm32l4xx_hal_uart.c
+ 0
+ 0
+
+
+ 4
+ 16
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart_ex.c
+ stm32l4xx_hal_uart_ex.c
+ 0
+ 0
+
+
+ 4
+ 17
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal.c
+ stm32l4xx_hal.c
+ 0
+ 0
+
+
+ 4
+ 18
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_i2c.c
+ stm32l4xx_hal_i2c.c
+ 0
+ 0
+
+
+ 4
+ 19
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_i2c_ex.c
+ stm32l4xx_hal_i2c_ex.c
+ 0
+ 0
+
+
+ 4
+ 20
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc.c
+ stm32l4xx_hal_rcc.c
+ 0
+ 0
+
+
+ 4
+ 21
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc_ex.c
+ stm32l4xx_hal_rcc_ex.c
+ 0
+ 0
+
+
+ 4
+ 22
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash.c
+ stm32l4xx_hal_flash.c
+ 0
+ 0
+
+
+ 4
+ 23
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash_ex.c
+ stm32l4xx_hal_flash_ex.c
+ 0
+ 0
+
+
+ 4
+ 24
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash_ramfunc.c
+ stm32l4xx_hal_flash_ramfunc.c
+ 0
+ 0
+
+
+ 4
+ 25
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_gpio.c
+ stm32l4xx_hal_gpio.c
+ 0
+ 0
+
+
+ 4
+ 26
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma.c
+ stm32l4xx_hal_dma.c
+ 0
+ 0
+
+
+ 4
+ 27
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma_ex.c
+ stm32l4xx_hal_dma_ex.c
+ 0
+ 0
+
+
+ 4
+ 28
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr.c
+ stm32l4xx_hal_pwr.c
+ 0
+ 0
+
+
+ 4
+ 29
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr_ex.c
+ stm32l4xx_hal_pwr_ex.c
+ 0
+ 0
+
+
+ 4
+ 30
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_cortex.c
+ stm32l4xx_hal_cortex.c
+ 0
+ 0
+
+
+ 4
+ 31
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_adc_ex.c
+ stm32l4xx_hal_adc_ex.c
+ 0
+ 0
+
+
+ 4
+ 32
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_adc.c
+ stm32l4xx_hal_adc.c
+ 0
+ 0
+
+
+ 4
+ 33
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dac.c
+ stm32l4xx_hal_dac.c
+ 0
+ 0
+
+
+ 4
+ 34
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dac_ex.c
+ stm32l4xx_hal_dac_ex.c
+ 0
+ 0
+
+
+ 4
+ 35
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_spi.c
+ stm32l4xx_hal_spi.c
+ 0
+ 0
+
+
+ 4
+ 36
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_spi_ex.c
+ stm32l4xx_hal_spi_ex.c
+ 0
+ 0
+
+
+
+
+ Drivers/CMSIS
+ 0
+ 0
+ 0
+ 0
+
+ 5
+ 37
+ 1
+ 0
+ 0
+ 0
+ ..\..\BSP\Src\system_stm32l4xx.c
+ system_stm32l4xx.c
+ 0
+ 0
+
+
+
+
+ Hardware
+ 0
+ 0
+ 0
+ 0
+
+ 6
+ 38
+ 1
+ 0
+ 0
+ 0
+ ..\..\BSP\Hardware\DHT11\DHT11_BUS.c
+ DHT11_BUS.c
+ 0
+ 0
+
+
+ 6
+ 39
+ 1
+ 0
+ 0
+ 0
+ ..\..\BSP\Hardware\OLED\oled.c
+ oled.c
+ 0
+ 0
+
+
+
+
+ kernel
+ 0
+ 0
+ 0
+ 0
+
+ 7
+ 40
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_binary_heap.c
+ tos_binary_heap.c
+ 0
+ 0
+
+
+ 7
+ 41
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_char_fifo.c
+ tos_char_fifo.c
+ 0
+ 0
+
+
+ 7
+ 42
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_completion.c
+ tos_completion.c
+ 0
+ 0
+
+
+ 7
+ 43
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_countdownlatch.c
+ tos_countdownlatch.c
+ 0
+ 0
+
+
+ 7
+ 44
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_event.c
+ tos_event.c
+ 0
+ 0
+
+
+ 7
+ 45
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_global.c
+ tos_global.c
+ 0
+ 0
+
+
+ 7
+ 46
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_mail_queue.c
+ tos_mail_queue.c
+ 0
+ 0
+
+
+ 7
+ 47
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_message_queue.c
+ tos_message_queue.c
+ 0
+ 0
+
+
+ 7
+ 48
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_mmblk.c
+ tos_mmblk.c
+ 0
+ 0
+
+
+ 7
+ 49
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_mmheap.c
+ tos_mmheap.c
+ 0
+ 0
+
+
+ 7
+ 50
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_mutex.c
+ tos_mutex.c
+ 0
+ 0
+
+
+ 7
+ 51
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_pend.c
+ tos_pend.c
+ 0
+ 0
+
+
+ 7
+ 52
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_priority_mail_queue.c
+ tos_priority_mail_queue.c
+ 0
+ 0
+
+
+ 7
+ 53
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_priority_message_queue.c
+ tos_priority_message_queue.c
+ 0
+ 0
+
+
+ 7
+ 54
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_priority_queue.c
+ tos_priority_queue.c
+ 0
+ 0
+
+
+ 7
+ 55
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_ring_queue.c
+ tos_ring_queue.c
+ 0
+ 0
+
+
+ 7
+ 56
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_robin.c
+ tos_robin.c
+ 0
+ 0
+
+
+ 7
+ 57
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_sched.c
+ tos_sched.c
+ 0
+ 0
+
+
+ 7
+ 58
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_sem.c
+ tos_sem.c
+ 0
+ 0
+
+
+ 7
+ 59
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_sys.c
+ tos_sys.c
+ 0
+ 0
+
+
+ 7
+ 60
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_task.c
+ tos_task.c
+ 0
+ 0
+
+
+ 7
+ 61
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_tick.c
+ tos_tick.c
+ 0
+ 0
+
+
+ 7
+ 62
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_time.c
+ tos_time.c
+ 0
+ 0
+
+
+ 7
+ 63
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_timer.c
+ tos_timer.c
+ 0
+ 0
+
+
+
+
+ cpu
+ 0
+ 0
+ 0
+ 0
+
+ 8
+ 64
+ 2
+ 0
+ 0
+ 0
+ ..\..\..\..\arch\arm\arm-v7m\cortex-m4\armcc\port_s.S
+ port_s.S
+ 0
+ 0
+
+
+ 8
+ 65
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\arch\arm\arm-v7m\common\tos_cpu.c
+ tos_cpu.c
+ 0
+ 0
+
+
+ 8
+ 66
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\arch\arm\arm-v7m\cortex-m4\armcc\port_c.c
+ port_c.c
+ 0
+ 0
+
+
+
+
+ shell
+ 0
+ 0
+ 0
+ 0
+
+ 9
+ 67
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\shell\tos_shell.c
+ tos_shell.c
+ 0
+ 0
+
+
+ 9
+ 68
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\shell\tos_shell_commands.c
+ tos_shell_commands.c
+ 0
+ 0
+
+
+
+
+ hal
+ 0
+ 0
+ 0
+ 0
+
+ 10
+ 69
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\hal\st\stm32l4xx\src\tos_hal_uart.c
+ tos_hal_uart.c
+ 0
+ 0
+
+
+
+
+ cmsis
+ 0
+ 0
+ 0
+ 0
+
+ 11
+ 70
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\osal\cmsis_os\cmsis_os.c
+ cmsis_os.c
+ 0
+ 0
+
+
+
+
+ config
+ 0
+ 0
+ 0
+ 0
+
+ 12
+ 71
+ 5
+ 0
+ 0
+ 0
+ ..\..\TOS-CONFIG\tos_config.h
+ tos_config.h
+ 0
+ 0
+
+
+
+
+ ::CMSIS
+ 0
+ 0
+ 0
+ 1
+
+
+
diff --git a/board/TencentOS_tiny_EVB_MX_Plus/KEIL/shell/TencentOS_tiny.uvprojx b/board/TencentOS_tiny_EVB_MX_Plus/KEIL/shell/TencentOS_tiny.uvprojx
new file mode 100644
index 00000000..2b09ed95
--- /dev/null
+++ b/board/TencentOS_tiny_EVB_MX_Plus/KEIL/shell/TencentOS_tiny.uvprojx
@@ -0,0 +1,817 @@
+
+
+
+ 2.1
+
+ ### uVision Project, (C) Keil Software
+
+
+
+ TencentOS_tiny
+ 0x4
+ ARM-ADS
+ 5060750::V5.06 update 6 (build 750)::ARMCC
+ 0
+
+
+ STM32L431RCTx
+ STMicroelectronics
+ Keil.STM32L4xx_DFP.2.0.0
+ http://www.keil.com/pack
+ IRAM(0x20000000-0x2000FFFF) IROM(0x8000000-0x803FFFF) CLOCK(8000000) FPU2 CPUTYPE("Cortex-M4")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $$Device:STM32L431RCTx$CMSIS\SVD\STM32L4x1.svd
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 1
+
+ .\obj\
+ TencentOS_tiny
+ 1
+ 0
+ 1
+ 1
+ 0
+ .\list\
+ 1
+ 0
+ 0
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 3
+
+
+ 0
+
+
+ SARMCM3.DLL
+ -REMAP -MPU
+ DCM.DLL
+ -pCM4
+ SARMCM3.DLL
+ -MPU
+ TCM.DLL
+ -pCM4
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 16
+
+
+
+
+ 1
+ 0
+ 0
+ 1
+ 1
+ 4107
+
+ 1
+ STLink\ST-LINKIII-KEIL_SWO.dll
+
+
+
+
+
+ 0
+
+
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ "Cortex-M4"
+
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+ 0
+ 2
+ 0
+ 0
+ 0
+ 8
+ 1
+ 0
+ 0
+ 0
+ 3
+ 3
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x20000000
+ 0x10000
+
+
+ 1
+ 0x8000000
+ 0x40000
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x8000000
+ 0x40000
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x20000000
+ 0x10000
+
+
+ 0
+ 0x0
+ 0x0
+
+
+
+
+
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 2
+ 0
+ 0
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+
+
+ USE_HAL_DRIVER,STM32L431xx,WITH_TOS_NET_ADAPTER,USE_ESP8266
+
+ ..\..\BSP\Inc;..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Inc;..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Legacy;..\..\..\..\platform\vendor_bsp\st\CMSIS\Device\ST\STM32L4xx\Include;..\..\..\..\platform\vendor_bsp\st\CMSIS\Include;..\..\..\..\kernel\core\include;..\..\TOS-CONFIG;..\..\..\..\platform\arch\arm\cortex-m4\keil;..\..\..\..\kernel\pm\include;..\..\..\..\osal\cmsis_os;..\..\..\..\arch\arm\arm-v7m\common\include;..\..\..\..\arch\arm\arm-v7m\cortex-m4\armcc;..\..\BSP\Hardware\DHT11;..\..\BSP\Hardware\OLED;..\..\BSP\Hardware\BH1750;..\..\..\..\examples\helloworld;..\..\..\..\components\shell\include;..\..\..\..\kernel\hal\include
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0x08000000
+ 0x20000000
+
+
+
+
+
+
+
+
+
+
+
+
+ Application/MDK-ARM
+
+
+ startup_stm32l431xx.s
+ 2
+ startup_stm32l431xx.s
+
+
+
+
+ Application/User
+
+
+ gpio.c
+ 1
+ ..\..\BSP\Src\gpio.c
+
+
+ main.c
+ 1
+ ..\..\BSP\Src\main.c
+
+
+ mcu_init.c
+ 1
+ ..\..\BSP\Src\mcu_init.c
+
+
+ stm32l4xx_hal_msp.c
+ 1
+ ..\..\BSP\Src\stm32l4xx_hal_msp.c
+
+
+ stm32l4xx_it_shell.c
+ 1
+ ..\..\BSP\Src\stm32l4xx_it_shell.c
+
+
+ usart.c
+ 1
+ ..\..\BSP\Src\usart.c
+
+
+ adc.c
+ 1
+ ..\..\BSP\Src\adc.c
+
+
+ dac.c
+ 1
+ ..\..\BSP\Src\dac.c
+
+
+ i2c.c
+ 1
+ ..\..\BSP\Src\i2c.c
+
+
+ spi.c
+ 1
+ ..\..\BSP\Src\spi.c
+
+
+
+
+ examples
+
+
+ shell_sample.c
+ 1
+ ..\..\..\..\examples\shell\shell_sample.c
+
+
+
+
+ Drivers/STM32L4xx_HAL_Driver
+
+
+ stm32l4xx_hal_tim.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_tim.c
+
+
+ stm32l4xx_hal_tim_ex.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_tim_ex.c
+
+
+ stm32l4xx_hal_uart.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart.c
+
+
+ stm32l4xx_hal_uart_ex.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart_ex.c
+
+
+ stm32l4xx_hal.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal.c
+
+
+ stm32l4xx_hal_i2c.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_i2c.c
+
+
+ stm32l4xx_hal_i2c_ex.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_i2c_ex.c
+
+
+ stm32l4xx_hal_rcc.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc.c
+
+
+ stm32l4xx_hal_rcc_ex.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc_ex.c
+
+
+ stm32l4xx_hal_flash.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash.c
+
+
+ stm32l4xx_hal_flash_ex.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash_ex.c
+
+
+ stm32l4xx_hal_flash_ramfunc.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash_ramfunc.c
+
+
+ stm32l4xx_hal_gpio.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_gpio.c
+
+
+ stm32l4xx_hal_dma.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma.c
+
+
+ stm32l4xx_hal_dma_ex.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma_ex.c
+
+
+ stm32l4xx_hal_pwr.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr.c
+
+
+ stm32l4xx_hal_pwr_ex.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr_ex.c
+
+
+ stm32l4xx_hal_cortex.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_cortex.c
+
+
+ stm32l4xx_hal_adc_ex.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_adc_ex.c
+
+
+ stm32l4xx_hal_adc.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_adc.c
+
+
+ stm32l4xx_hal_dac.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dac.c
+
+
+ stm32l4xx_hal_dac_ex.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dac_ex.c
+
+
+ stm32l4xx_hal_spi.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_spi.c
+
+
+ stm32l4xx_hal_spi_ex.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_spi_ex.c
+
+
+
+
+ Drivers/CMSIS
+
+
+ system_stm32l4xx.c
+ 1
+ ..\..\BSP\Src\system_stm32l4xx.c
+
+
+
+
+ Hardware
+
+
+ DHT11_BUS.c
+ 1
+ ..\..\BSP\Hardware\DHT11\DHT11_BUS.c
+
+
+ oled.c
+ 1
+ ..\..\BSP\Hardware\OLED\oled.c
+
+
+
+
+ kernel
+
+
+ tos_binary_heap.c
+ 1
+ ..\..\..\..\kernel\core\tos_binary_heap.c
+
+
+ tos_char_fifo.c
+ 1
+ ..\..\..\..\kernel\core\tos_char_fifo.c
+
+
+ tos_completion.c
+ 1
+ ..\..\..\..\kernel\core\tos_completion.c
+
+
+ tos_countdownlatch.c
+ 1
+ ..\..\..\..\kernel\core\tos_countdownlatch.c
+
+
+ tos_event.c
+ 1
+ ..\..\..\..\kernel\core\tos_event.c
+
+
+ tos_global.c
+ 1
+ ..\..\..\..\kernel\core\tos_global.c
+
+
+ tos_mail_queue.c
+ 1
+ ..\..\..\..\kernel\core\tos_mail_queue.c
+
+
+ tos_message_queue.c
+ 1
+ ..\..\..\..\kernel\core\tos_message_queue.c
+
+
+ tos_mmblk.c
+ 1
+ ..\..\..\..\kernel\core\tos_mmblk.c
+
+
+ tos_mmheap.c
+ 1
+ ..\..\..\..\kernel\core\tos_mmheap.c
+
+
+ tos_mutex.c
+ 1
+ ..\..\..\..\kernel\core\tos_mutex.c
+
+
+ tos_pend.c
+ 1
+ ..\..\..\..\kernel\core\tos_pend.c
+
+
+ tos_priority_mail_queue.c
+ 1
+ ..\..\..\..\kernel\core\tos_priority_mail_queue.c
+
+
+ tos_priority_message_queue.c
+ 1
+ ..\..\..\..\kernel\core\tos_priority_message_queue.c
+
+
+ tos_priority_queue.c
+ 1
+ ..\..\..\..\kernel\core\tos_priority_queue.c
+
+
+ tos_ring_queue.c
+ 1
+ ..\..\..\..\kernel\core\tos_ring_queue.c
+
+
+ tos_robin.c
+ 1
+ ..\..\..\..\kernel\core\tos_robin.c
+
+
+ tos_sched.c
+ 1
+ ..\..\..\..\kernel\core\tos_sched.c
+
+
+ tos_sem.c
+ 1
+ ..\..\..\..\kernel\core\tos_sem.c
+
+
+ tos_sys.c
+ 1
+ ..\..\..\..\kernel\core\tos_sys.c
+
+
+ tos_task.c
+ 1
+ ..\..\..\..\kernel\core\tos_task.c
+
+
+ tos_tick.c
+ 1
+ ..\..\..\..\kernel\core\tos_tick.c
+
+
+ tos_time.c
+ 1
+ ..\..\..\..\kernel\core\tos_time.c
+
+
+ tos_timer.c
+ 1
+ ..\..\..\..\kernel\core\tos_timer.c
+
+
+
+
+ cpu
+
+
+ port_s.S
+ 2
+ ..\..\..\..\arch\arm\arm-v7m\cortex-m4\armcc\port_s.S
+
+
+ tos_cpu.c
+ 1
+ ..\..\..\..\arch\arm\arm-v7m\common\tos_cpu.c
+
+
+ port_c.c
+ 1
+ ..\..\..\..\arch\arm\arm-v7m\cortex-m4\armcc\port_c.c
+
+
+
+
+ shell
+
+
+ tos_shell.c
+ 1
+ ..\..\..\..\components\shell\tos_shell.c
+
+
+ tos_shell_commands.c
+ 1
+ ..\..\..\..\components\shell\tos_shell_commands.c
+
+
+
+
+ hal
+
+
+ tos_hal_uart.c
+ 1
+ ..\..\..\..\platform\hal\st\stm32l4xx\src\tos_hal_uart.c
+
+
+
+
+ cmsis
+
+
+ cmsis_os.c
+ 1
+ ..\..\..\..\osal\cmsis_os\cmsis_os.c
+
+
+
+
+ config
+
+
+ tos_config.h
+ 5
+ ..\..\TOS-CONFIG\tos_config.h
+
+
+
+
+ ::CMSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/board/TencentOS_tiny_EVB_MX_Plus/KEIL/shell/obj/TencentOS_tiny.build_log.htm b/board/TencentOS_tiny_EVB_MX_Plus/KEIL/shell/obj/TencentOS_tiny.build_log.htm
new file mode 100644
index 00000000..87e023a0
--- /dev/null
+++ b/board/TencentOS_tiny_EVB_MX_Plus/KEIL/shell/obj/TencentOS_tiny.build_log.htm
@@ -0,0 +1,60 @@
+
+
+
+礦ision Build Log
+Tool Versions:
+IDE-Version: μVision V5.26.2.0
+Copyright (C) 2018 ARM Ltd and ARM Germany GmbH. All rights reserved.
+License Information: sheldon dai, tencent, LIC=AK1CX-H5HPV-SGF7K-ZGDWF-QC6LB-GRJE8
+
+Tool Versions:
+Toolchain: MDK-ARM Professional Version: 5.26.2.0
+Toolchain Path: C:\Keil_v5\ARM\ARMCC\Bin
+C Compiler: Armcc.exe V5.06 update 6 (build 750)
+Assembler: Armasm.exe V5.06 update 6 (build 750)
+Linker/Locator: ArmLink.exe V5.06 update 6 (build 750)
+Library Manager: ArmAr.exe V5.06 update 6 (build 750)
+Hex Converter: FromElf.exe V5.06 update 6 (build 750)
+CPU DLL: SARMCM3.DLL V5.26.2.0
+Dialog DLL: DCM.DLL V1.17.2.0
+Target DLL: STLink\ST-LINKIII-KEIL_SWO.dll V3.0.5.0
+Dialog DLL: TCM.DLL V1.36.1.0
+
+Project:
+D:\github\lorawan\TencentOS-tiny\board\TencentOS_tiny_EVB_MX_Plus\KEIL\shell\TencentOS_tiny.uvprojx
+Project File Date: 01/06/2020
+
+Output:
+*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
+Build target 'TencentOS_tiny'
+compiling tos_shell_commands.c...
+linking...
+Program Size: Code=24760 RO-data=2876 RW-data=332 ZI-data=43308
+FromELF: creating hex file...
+".\obj\TencentOS_tiny.axf" - 0 Error(s), 0 Warning(s).
+
+Software Packages used:
+
+Package Vendor: ARM
+ http://www.keil.com/pack/ARM.CMSIS.5.6.0.pack
+ ARM.CMSIS.5.6.0
+ CMSIS (Cortex Microcontroller Software Interface Standard)
+ * Component: CORE Version: 5.3.0
+
+Package Vendor: Keil
+ http://www.keil.com/pack/Keil.STM32L4xx_DFP.2.0.0.pack
+ Keil.STM32L4xx_DFP.2.0.0
+ STMicroelectronics STM32L4 Series Device Support, Drivers and Examples
+
+Collection of Component include folders:
+ .\RTE\_TencentOS_tiny
+ C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\Core\Include
+ C:\Keil_v5\ARM\PACK\Keil\STM32L4xx_DFP\2.0.0\Drivers\CMSIS\Device\ST\STM32L4xx\Include
+
+Collection of Component Files used:
+
+ * Component: ARM::CMSIS:CORE:5.3.0
+Build Time Elapsed: 00:00:02
+
+
+
diff --git a/board/TencentOS_tiny_EVB_MX_Plus/KEIL/shell/obj/TencentOS_tiny.htm b/board/TencentOS_tiny_EVB_MX_Plus/KEIL/shell/obj/TencentOS_tiny.htm
new file mode 100644
index 00000000..7ee5939b
--- /dev/null
+++ b/board/TencentOS_tiny_EVB_MX_Plus/KEIL/shell/obj/TencentOS_tiny.htm
@@ -0,0 +1,2975 @@
+
+
+Static Call Graph - [.\obj\TencentOS_tiny.axf]
+
+Static Call Graph for image .\obj\TencentOS_tiny.axf
+
#<CALLGRAPH># ARM Linker, 5060750: Last Updated: Wed Jan 08 13:41:57 2020
+
+
Maximum Stack Usage = 296 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)
+Call chain for Maximum Stack Depth:
+main ⇒ board_init ⇒ SystemClock_Config ⇒ HAL_RCC_OscConfig ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
+
+
+Functions with no stack information
+
+
+
+
+Mutually Recursive functions
+
ADC1_IRQHandler ⇒ ADC1_IRQHandler
+
+
+
+Function Pointers
+
+ - ADC1_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- BusFault_Handler from stm32l4xx_it_shell.o(i.BusFault_Handler) referenced from startup_stm32l431xx.o(RESET)
+
- CAN1_RX0_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- CAN1_RX1_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- CAN1_SCE_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- CAN1_TX_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- COMP_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- CRS_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- DMA1_Channel1_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- DMA1_Channel2_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- DMA1_Channel3_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- DMA1_Channel4_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- DMA1_Channel5_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- DMA1_Channel6_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- DMA1_Channel7_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- DMA2_Channel1_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- DMA2_Channel2_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- DMA2_Channel3_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- DMA2_Channel4_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- DMA2_Channel5_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- DMA2_Channel6_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- DMA2_Channel7_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- DebugMon_Handler from stm32l4xx_it_shell.o(i.DebugMon_Handler) referenced from startup_stm32l431xx.o(RESET)
+
- EXTI0_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- EXTI15_10_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- EXTI1_IRQHandler from stm32l4xx_it_shell.o(i.EXTI1_IRQHandler) referenced from startup_stm32l431xx.o(RESET)
+
- EXTI2_IRQHandler from stm32l4xx_it_shell.o(i.EXTI2_IRQHandler) referenced from startup_stm32l431xx.o(RESET)
+
- EXTI3_IRQHandler from stm32l4xx_it_shell.o(i.EXTI3_IRQHandler) referenced from startup_stm32l431xx.o(RESET)
+
- EXTI4_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- EXTI9_5_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- FLASH_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- FPU_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- HardFault_Handler from stm32l4xx_it_shell.o(i.HardFault_Handler) referenced from startup_stm32l431xx.o(RESET)
+
- I2C1_ER_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- I2C1_EV_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- I2C2_ER_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- I2C2_EV_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- I2C3_ER_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- I2C3_EV_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- LPTIM1_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- LPTIM2_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- LPUART1_IRQHandler from stm32l4xx_it_shell.o(i.LPUART1_IRQHandler) referenced from startup_stm32l431xx.o(RESET)
+
- MemManage_Handler from stm32l4xx_it_shell.o(i.MemManage_Handler) referenced from startup_stm32l431xx.o(RESET)
+
- NMI_Handler from stm32l4xx_it_shell.o(i.NMI_Handler) referenced from startup_stm32l431xx.o(RESET)
+
- PVD_PVM_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- PendSV_Handler from port_s.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- QUADSPI_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- RCC_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- RNG_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- RTC_Alarm_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- RTC_WKUP_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- Reset_Handler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- SAI1_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- SDMMC1_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- SPI1_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- SPI2_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- SPI3_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- SVC_Handler from stm32l4xx_it_shell.o(i.SVC_Handler) referenced from startup_stm32l431xx.o(RESET)
+
- SWPMI1_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- SysTick_Handler from stm32l4xx_it_shell.o(i.SysTick_Handler) referenced from startup_stm32l431xx.o(RESET)
+
- SystemInit from system_stm32l4xx.o(i.SystemInit) referenced from startup_stm32l431xx.o(.text)
+
- TAMP_STAMP_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- TIM1_BRK_TIM15_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- TIM1_CC_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- TIM1_TRG_COM_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- TIM1_UP_TIM16_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- TIM2_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- TIM6_DAC_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- TIM7_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- TSC_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- UART_DMAAbortOnError from stm32l4xx_hal_uart.o(i.UART_DMAAbortOnError) referenced from stm32l4xx_hal_uart.o(i.HAL_UART_IRQHandler)
+
- UART_RxISR_16BIT from stm32l4xx_hal_uart.o(i.UART_RxISR_16BIT) referenced from stm32l4xx_hal_uart.o(i.HAL_UART_Receive_IT)
+
- UART_RxISR_8BIT from stm32l4xx_hal_uart.o(i.UART_RxISR_8BIT) referenced from stm32l4xx_hal_uart.o(i.HAL_UART_Receive_IT)
+
- USART1_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- USART2_IRQHandler from stm32l4xx_it_shell.o(i.USART2_IRQHandler) referenced from startup_stm32l431xx.o(RESET)
+
- USART3_IRQHandler from stm32l4xx_it_shell.o(i.USART3_IRQHandler) referenced from startup_stm32l431xx.o(RESET)
+
- UsageFault_Handler from stm32l4xx_it_shell.o(i.UsageFault_Handler) referenced from startup_stm32l431xx.o(RESET)
+
- WWDG_IRQHandler from startup_stm32l431xx.o(.text) referenced from startup_stm32l431xx.o(RESET)
+
- __main from entry.o(.ARM.Collect$$$$00000000) referenced from startup_stm32l431xx.o(.text)
+
- _snputc from printfa.o(i._snputc) referenced from printfa.o(i.__0vsnprintf)
+
- application_entry from shell_sample.o(i.application_entry) referenced from main.o(.constdata)
+
- cmd_help from tos_shell_commands.o(i.cmd_help) referenced from tos_shell_commands.o(.constdata)
+
- cmd_ps from tos_shell_commands.o(i.cmd_ps) referenced from tos_shell_commands.o(.constdata)
+
- cmd_test00 from shell_sample.o(i.cmd_test00) referenced from shell_sample.o(.constdata)
+
- cmd_test01 from shell_sample.o(i.cmd_test01) referenced from shell_sample.o(.constdata)
+
- cmd_test10 from shell_sample.o(i.cmd_test10) referenced from shell_sample.o(.constdata)
+
- cmd_test11 from shell_sample.o(i.cmd_test11) referenced from shell_sample.o(.constdata)
+
- fputc from mcu_init.o(i.fputc) referenced from printfa.o(i.__0printf)
+
- knl_idle_entry from tos_sys.o(i.knl_idle_entry) referenced from tos_sys.o(i.knl_idle_init)
+
- main from main.o(i.main) referenced from entry9a.o(.ARM.Collect$$$$0000000B)
+
- shell_parser from tos_shell.o(i.shell_parser) referenced from tos_shell.o(i.tos_shell_init)
+
- task_default_walker from tos_task.o(i.task_default_walker) referenced from tos_task.o(i.tos_task_info_display)
+
- task_exit from tos_task.o(i.task_exit) referenced from tos_task.o(i.tos_task_create)
+
- uart_output from shell_sample.o(i.uart_output) referenced from shell_sample.o(i.application_entry)
+
+
+
+Global Symbols
+
+__main (Thumb, 0 bytes, Stack size unknown bytes, entry.o(.ARM.Collect$$$$00000000))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(.text)
+
+_main_stk (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001))
+
+
_main_scatterload (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))
+
[Calls]
+
+__main_after_scatterload (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))
+
[Called By]
+
+_main_clock (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))
+
+
_main_cpp_init (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))
+
+
_main_init (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))
+
+
__rt_final_cpp (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D))
+
+
__rt_final_exit (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$0000000F))
+
+
Reset_Handler (Thumb, 8 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+ADC1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Calls]
+
[Called By]
+
[Address Reference Count : 1]- startup_stm32l431xx.o(RESET)
+
+CAN1_RX0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+CAN1_RX1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+CAN1_SCE_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+CAN1_TX_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+COMP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+CRS_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+DMA1_Channel1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+DMA1_Channel2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+DMA1_Channel3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+DMA1_Channel4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+DMA1_Channel5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+DMA1_Channel6_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+DMA1_Channel7_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+DMA2_Channel1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+DMA2_Channel2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+DMA2_Channel3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+DMA2_Channel4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+DMA2_Channel5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+DMA2_Channel6_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+DMA2_Channel7_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+EXTI0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+EXTI15_10_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+EXTI4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+EXTI9_5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+FLASH_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+FPU_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+I2C1_ER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+I2C1_EV_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+I2C2_ER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+I2C2_EV_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+I2C3_ER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+I2C3_EV_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+LPTIM1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+LPTIM2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+PVD_PVM_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+QUADSPI_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+RCC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+RNG_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+RTC_Alarm_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+RTC_WKUP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+SAI1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+SDMMC1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+SPI1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+SPI2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+SPI3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+SWPMI1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+TAMP_STAMP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+TIM1_BRK_TIM15_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+TIM1_CC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+TIM1_TRG_COM_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+TIM1_UP_TIM16_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+TIM2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+TIM6_DAC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+TIM7_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+TSC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+USART1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+WWDG_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32l431xx.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+port_int_disable (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text), UNUSED)
+
+
port_int_enable (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text), UNUSED)
+
+
port_cpsr_save (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text))
+
[Called By]
+
+port_cpsr_restore (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text))
+
[Called By]
- >> tos_cpu_cpsr_restore
+
+
+port_clz (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text))
+
[Called By]
+
+port_sched_start (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text))
+
[Called By]
+
+port_context_switch (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text))
+
[Called By]
+
+port_irq_context_switch (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text))
+
[Called By]
- >> cpu_irq_context_switch
+
+
+PendSV_Handler (Thumb, 0 bytes, Stack size unknown bytes, port_s.o(.text))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+__aeabi_uldivmod (Thumb, 98 bytes, Stack size 40 bytes, uldiv.o(.text))
+
[Stack]
- Max Depth = 40
- Call Chain = __aeabi_uldivmod
+
+
[Calls]- >> __aeabi_llsr
+
- >> __aeabi_llsl
+
+
[Called By]- >> _printf_core
+
- >> _fp_digits
+
- >> UART_SetConfig
+
- >> cpu_init
+
+
+__aeabi_memcpy (Thumb, 36 bytes, Stack size 0 bytes, memcpya.o(.text))
+
[Called By]
- >> tos_ring_q_enqueue
+
- >> tos_ring_q_dequeue
+
+
+__aeabi_memcpy4 (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED)
+
+
__aeabi_memcpy8 (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED)
+
+
__aeabi_memset (Thumb, 14 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
+
[Called By]
- >> _memset$wrapper
+
- >> __aeabi_memclr
+
+
+__aeabi_memset4 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
+
+
__aeabi_memset8 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
+
+
__aeabi_memclr (Thumb, 4 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
+
[Calls]
+
+__aeabi_memclr4 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text))
+
[Called By]
- >> HAL_UART_MspInit
+
- >> SystemClock_Config
+
- >> MX_GPIO_Init
+
- >> tos_shell_init
+
+
+__aeabi_memclr8 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
+
+
_memset$wrapper (Thumb, 18 bytes, Stack size 8 bytes, memseta.o(.text), UNUSED)
+
[Calls]
+
+strlen (Thumb, 14 bytes, Stack size 0 bytes, strlen.o(.text))
+
[Called By]
+
+strcmp (Thumb, 28 bytes, Stack size 8 bytes, strcmp.o(.text))
+
[Stack]
- Max Depth = 8
- Call Chain = strcmp
+
+
[Called By]
+
+__aeabi_uidiv (Thumb, 0 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
+
+
__aeabi_uidivmod (Thumb, 44 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
+
[Called By]
+
+__aeabi_llsl (Thumb, 30 bytes, Stack size 0 bytes, llshl.o(.text))
+
[Called By]
- >> _double_epilogue
+
- >> __aeabi_dadd
+
- >> __aeabi_d2ulz
+
- >> __aeabi_uldivmod
+
+
+_ll_shift_l (Thumb, 0 bytes, Stack size 0 bytes, llshl.o(.text), UNUSED)
+
+
__aeabi_llsr (Thumb, 32 bytes, Stack size 0 bytes, llushr.o(.text))
+
[Called By]
- >> _double_epilogue
+
- >> __aeabi_d2ulz
+
- >> __aeabi_uldivmod
+
+
+_ll_ushift_r (Thumb, 0 bytes, Stack size 0 bytes, llushr.o(.text), UNUSED)
+
+
__I$use$fp (Thumb, 0 bytes, Stack size 48 bytes, iusefp.o(.text), UNUSED)
+
+
__aeabi_dadd (Thumb, 322 bytes, Stack size 48 bytes, dadd.o(.text), UNUSED)
+
[Calls]
- >> __aeabi_lasr
+
- >> _double_round
+
- >> _double_epilogue
+
- >> __aeabi_llsl
+
+
[Called By]- >> __aeabi_drsub
+
- >> __aeabi_dsub
+
- >> _fp_digits
+
+
+__aeabi_dsub (Thumb, 6 bytes, Stack size 0 bytes, dadd.o(.text), UNUSED)
+
[Calls]
+
+__aeabi_drsub (Thumb, 6 bytes, Stack size 0 bytes, dadd.o(.text), UNUSED)
+
[Calls]
+
+__aeabi_dmul (Thumb, 228 bytes, Stack size 48 bytes, dmul.o(.text), UNUSED)
+
[Calls]
+
[Called By]
+
+__aeabi_ddiv (Thumb, 222 bytes, Stack size 32 bytes, ddiv.o(.text), UNUSED)
+
[Calls]
+
[Called By]
+
+__aeabi_d2ulz (Thumb, 48 bytes, Stack size 0 bytes, dfixul.o(.text), UNUSED)
+
[Calls]
- >> __aeabi_llsr
+
- >> __aeabi_llsl
+
+
[Called By]
+
+__aeabi_cdrcmple (Thumb, 48 bytes, Stack size 0 bytes, cdrcmple.o(.text), UNUSED)
+
[Called By]
+
+__scatterload (Thumb, 28 bytes, Stack size 0 bytes, init.o(.text))
+
[Calls]
- >> __main_after_scatterload
+
+
[Called By]
+
+__scatterload_rt2 (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)
+
+
__aeabi_lasr (Thumb, 36 bytes, Stack size 0 bytes, llsshr.o(.text), UNUSED)
+
[Called By]
+
+_ll_sshift_r (Thumb, 0 bytes, Stack size 0 bytes, llsshr.o(.text), UNUSED)
+
+
_double_round (Thumb, 30 bytes, Stack size 8 bytes, depilogue.o(.text), UNUSED)
+
[Called By]
- >> _double_epilogue
+
- >> __aeabi_ddiv
+
- >> __aeabi_dadd
+
+
+_double_epilogue (Thumb, 156 bytes, Stack size 32 bytes, depilogue.o(.text), UNUSED)
+
[Calls]
- >> _double_round
+
- >> __aeabi_llsr
+
- >> __aeabi_llsl
+
+
[Called By]- >> __aeabi_dmul
+
- >> __aeabi_dadd
+
+
+__decompress (Thumb, 0 bytes, Stack size unknown bytes, __dczerorl2.o(.text), UNUSED)
+
+
__decompress1 (Thumb, 86 bytes, Stack size unknown bytes, __dczerorl2.o(.text), UNUSED)
+
+
BusFault_Handler (Thumb, 4 bytes, Stack size 0 bytes, stm32l4xx_it_shell.o(i.BusFault_Handler))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+DHT11_Init (Thumb, 48 bytes, Stack size 8 bytes, dht11_bus.o(i.DHT11_Init))
+
[Stack]
- Max Depth = 52
- Call Chain = DHT11_Init ⇒ DHT11_Mode_Out_PP ⇒ HAL_GPIO_Init
+
+
[Calls]- >> HAL_GPIO_WritePin
+
- >> DHT11_Mode_Out_PP
+
+
[Called By]
+
+DebugMon_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_it_shell.o(i.DebugMon_Handler))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+EXTI1_IRQHandler (Thumb, 10 bytes, Stack size 8 bytes, stm32l4xx_it_shell.o(i.EXTI1_IRQHandler))
+
[Stack]
- Max Depth = 16
- Call Chain = EXTI1_IRQHandler ⇒ HAL_GPIO_EXTI_IRQHandler
+
+
[Calls]- >> HAL_GPIO_EXTI_IRQHandler
+
+
[Address Reference Count : 1]- startup_stm32l431xx.o(RESET)
+
+EXTI2_IRQHandler (Thumb, 10 bytes, Stack size 8 bytes, stm32l4xx_it_shell.o(i.EXTI2_IRQHandler))
+
[Stack]
- Max Depth = 16
- Call Chain = EXTI2_IRQHandler ⇒ HAL_GPIO_EXTI_IRQHandler
+
+
[Calls]- >> HAL_GPIO_EXTI_IRQHandler
+
+
[Address Reference Count : 1]- startup_stm32l431xx.o(RESET)
+
+EXTI3_IRQHandler (Thumb, 10 bytes, Stack size 8 bytes, stm32l4xx_it_shell.o(i.EXTI3_IRQHandler))
+
[Stack]
- Max Depth = 16
- Call Chain = EXTI3_IRQHandler ⇒ HAL_GPIO_EXTI_IRQHandler
+
+
[Calls]- >> HAL_GPIO_EXTI_IRQHandler
+
+
[Address Reference Count : 1]- startup_stm32l431xx.o(RESET)
+
+Error_Handler (Thumb, 2 bytes, Stack size 0 bytes, mcu_init.o(i.Error_Handler))
+
[Called By]
- >> MX_USART1_UART_Init
+
- >> MX_LPUART1_UART_Init
+
- >> MX_USART3_UART_Init
+
- >> MX_USART2_UART_Init
+
- >> SystemClock_Config
+
+
+HAL_DMA_Abort_IT (Thumb, 92 bytes, Stack size 16 bytes, stm32l4xx_hal_dma.o(i.HAL_DMA_Abort_IT))
+
[Stack]
- Max Depth = 16
- Call Chain = HAL_DMA_Abort_IT
+
+
[Called By]
+
+HAL_Delay (Thumb, 32 bytes, Stack size 16 bytes, stm32l4xx_hal.o(i.HAL_Delay))
+
[Stack]
- Max Depth = 16
- Call Chain = HAL_Delay
+
+
[Calls]
+
[Called By]
+
+HAL_GPIO_EXTI_Callback (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_hal_gpio.o(i.HAL_GPIO_EXTI_Callback))
+
[Called By]
- >> HAL_GPIO_EXTI_IRQHandler
+
+
+HAL_GPIO_EXTI_IRQHandler (Thumb, 24 bytes, Stack size 8 bytes, stm32l4xx_hal_gpio.o(i.HAL_GPIO_EXTI_IRQHandler))
+
[Stack]
- Max Depth = 8
- Call Chain = HAL_GPIO_EXTI_IRQHandler
+
+
[Calls]- >> HAL_GPIO_EXTI_Callback
+
+
[Called By]- >> EXTI3_IRQHandler
+
- >> EXTI2_IRQHandler
+
- >> EXTI1_IRQHandler
+
+
+HAL_GPIO_Init (Thumb, 428 bytes, Stack size 20 bytes, stm32l4xx_hal_gpio.o(i.HAL_GPIO_Init))
+
[Stack]
- Max Depth = 20
- Call Chain = HAL_GPIO_Init
+
+
[Called By]- >> HAL_UART_MspInit
+
- >> MX_GPIO_Init
+
- >> DHT11_Mode_Out_PP
+
+
+HAL_GPIO_WritePin (Thumb, 10 bytes, Stack size 0 bytes, stm32l4xx_hal_gpio.o(i.HAL_GPIO_WritePin))
+
[Called By]
- >> DHT11_Init
+
- >> MX_GPIO_Init
+
- >> Write_IIC_Byte
+
- >> IIC_Wait_Ack
+
- >> IIC_Stop
+
- >> IIC_Start
+
+
+HAL_GetTick (Thumb, 6 bytes, Stack size 0 bytes, stm32l4xx_hal.o(i.HAL_GetTick))
+
[Called By]
- >> HAL_UART_Transmit
+
- >> HAL_RCC_OscConfig
+
- >> HAL_RCC_ClockConfig
+
- >> HAL_RCCEx_PeriphCLKConfig
+
- >> HAL_Delay
+
- >> UART_WaitOnFlagUntilTimeout
+
- >> UART_CheckIdleState
+
- >> RCCEx_PLLSAI1_Config
+
+
+HAL_IncTick (Thumb, 12 bytes, Stack size 0 bytes, stm32l4xx_hal.o(i.HAL_IncTick))
+
[Called By]
+
+HAL_Init (Thumb, 30 bytes, Stack size 8 bytes, stm32l4xx_hal.o(i.HAL_Init))
+
[Stack]
- Max Depth = 72
- Call Chain = HAL_Init ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
+
+
[Calls]- >> HAL_MspInit
+
- >> HAL_InitTick
+
- >> HAL_NVIC_SetPriorityGrouping
+
+
[Called By]
+
+HAL_InitTick (Thumb, 44 bytes, Stack size 16 bytes, stm32l4xx_hal.o(i.HAL_InitTick))
+
[Stack]
- Max Depth = 64
- Call Chain = HAL_InitTick ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
+
+
[Calls]- >> HAL_NVIC_SetPriority
+
- >> HAL_SYSTICK_Config
+
+
[Called By]- >> HAL_RCC_OscConfig
+
- >> HAL_RCC_ClockConfig
+
- >> HAL_Init
+
+
+HAL_MspInit (Thumb, 58 bytes, Stack size 8 bytes, stm32l4xx_hal_msp.o(i.HAL_MspInit))
+
[Stack]
- Max Depth = 8
- Call Chain = HAL_MspInit
+
+
[Called By]
+
+HAL_NVIC_EnableIRQ (Thumb, 32 bytes, Stack size 0 bytes, stm32l4xx_hal_cortex.o(i.HAL_NVIC_EnableIRQ))
+
[Called By]
- >> HAL_UART_MspInit
+
- >> MX_GPIO_Init
+
+
+HAL_NVIC_SetPriority (Thumb, 124 bytes, Stack size 40 bytes, stm32l4xx_hal_cortex.o(i.HAL_NVIC_SetPriority))
+
[Stack]
- Max Depth = 48
- Call Chain = HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
+
+
[Calls]- >> __NVIC_SetPriority
+
- >> __NVIC_GetPriorityGrouping
+
+
[Called By]- >> HAL_UART_MspInit
+
- >> MX_GPIO_Init
+
- >> HAL_InitTick
+
+
+HAL_NVIC_SetPriorityGrouping (Thumb, 32 bytes, Stack size 0 bytes, stm32l4xx_hal_cortex.o(i.HAL_NVIC_SetPriorityGrouping))
+
[Called By]
+
+HAL_PWREx_ControlVoltageScaling (Thumb, 128 bytes, Stack size 0 bytes, stm32l4xx_hal_pwr_ex.o(i.HAL_PWREx_ControlVoltageScaling))
+
[Called By]
+
+HAL_PWREx_GetVoltageRange (Thumb, 10 bytes, Stack size 0 bytes, stm32l4xx_hal_pwr_ex.o(i.HAL_PWREx_GetVoltageRange))
+
[Called By]
- >> RCC_SetFlashLatencyFromMSIRange
+
+
+HAL_PWR_EnableBkUpAccess (Thumb, 14 bytes, Stack size 0 bytes, stm32l4xx_hal_pwr.o(i.HAL_PWR_EnableBkUpAccess))
+
[Called By]
+
+HAL_RCCEx_EnableMSIPLLMode (Thumb, 14 bytes, Stack size 0 bytes, stm32l4xx_hal_rcc_ex.o(i.HAL_RCCEx_EnableMSIPLLMode))
+
[Called By]
+
+HAL_RCCEx_PeriphCLKConfig (Thumb, 894 bytes, Stack size 32 bytes, stm32l4xx_hal_rcc_ex.o(i.HAL_RCCEx_PeriphCLKConfig))
+
[Stack]
- Max Depth = 56
- Call Chain = HAL_RCCEx_PeriphCLKConfig ⇒ RCCEx_PLLSAI1_Config
+
+
[Calls]- >> HAL_GetTick
+
- >> RCCEx_PLLSAI1_Config
+
+
[Called By]
+
+HAL_RCC_ClockConfig (Thumb, 358 bytes, Stack size 24 bytes, stm32l4xx_hal_rcc.o(i.HAL_RCC_ClockConfig))
+
[Stack]
- Max Depth = 88
- Call Chain = HAL_RCC_ClockConfig ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
+
+
[Calls]- >> HAL_RCC_GetSysClockFreq
+
- >> HAL_GetTick
+
- >> HAL_InitTick
+
+
[Called By]
+
+HAL_RCC_GetHCLKFreq (Thumb, 6 bytes, Stack size 0 bytes, stm32l4xx_hal_rcc.o(i.HAL_RCC_GetHCLKFreq))
+
[Called By]
- >> HAL_RCC_GetPCLK2Freq
+
- >> HAL_RCC_GetPCLK1Freq
+
+
+HAL_RCC_GetPCLK1Freq (Thumb, 26 bytes, Stack size 4 bytes, stm32l4xx_hal_rcc.o(i.HAL_RCC_GetPCLK1Freq))
+
[Stack]
- Max Depth = 4
- Call Chain = HAL_RCC_GetPCLK1Freq
+
+
[Calls]
+
[Called By]
+
+HAL_RCC_GetPCLK2Freq (Thumb, 26 bytes, Stack size 4 bytes, stm32l4xx_hal_rcc.o(i.HAL_RCC_GetPCLK2Freq))
+
[Stack]
- Max Depth = 4
- Call Chain = HAL_RCC_GetPCLK2Freq
+
+
[Calls]
+
[Called By]
+
+HAL_RCC_GetSysClockFreq (Thumb, 266 bytes, Stack size 24 bytes, stm32l4xx_hal_rcc.o(i.HAL_RCC_GetSysClockFreq))
+
[Stack]
- Max Depth = 24
- Call Chain = HAL_RCC_GetSysClockFreq
+
+
[Called By]- >> HAL_RCC_OscConfig
+
- >> HAL_RCC_ClockConfig
+
- >> UART_SetConfig
+
+
+HAL_RCC_OscConfig (Thumb, 1660 bytes, Stack size 32 bytes, stm32l4xx_hal_rcc.o(i.HAL_RCC_OscConfig))
+
[Stack]
- Max Depth = 96
- Call Chain = HAL_RCC_OscConfig ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
+
+
[Calls]- >> HAL_RCC_GetSysClockFreq
+
- >> HAL_GetTick
+
- >> RCC_SetFlashLatencyFromMSIRange
+
- >> HAL_InitTick
+
+
[Called By]
+
+HAL_SYSTICK_Config (Thumb, 52 bytes, Stack size 16 bytes, stm32l4xx_hal_cortex.o(i.HAL_SYSTICK_Config))
+
[Stack]
- Max Depth = 24
- Call Chain = HAL_SYSTICK_Config ⇒ __NVIC_SetPriority
+
+
[Calls]
+
[Called By]
+
+HAL_UARTEx_WakeupCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_hal_uart_ex.o(i.HAL_UARTEx_WakeupCallback))
+
[Called By]
+
+HAL_UART_ErrorCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_hal_uart.o(i.HAL_UART_ErrorCallback))
+
[Called By]
- >> HAL_UART_IRQHandler
+
- >> UART_DMAAbortOnError
+
+
+HAL_UART_GetState (Thumb, 20 bytes, Stack size 0 bytes, stm32l4xx_hal_uart.o(i.HAL_UART_GetState))
+
[Called By]
+
+HAL_UART_IRQHandler (Thumb, 392 bytes, Stack size 24 bytes, stm32l4xx_hal_uart.o(i.HAL_UART_IRQHandler))
+
[Stack]
- Max Depth = 40
- Call Chain = HAL_UART_IRQHandler ⇒ HAL_DMA_Abort_IT
+
+
[Calls]- >> HAL_UART_ErrorCallback
+
- >> HAL_UARTEx_WakeupCallback
+
- >> HAL_DMA_Abort_IT
+
- >> UART_EndTransmit_IT
+
- >> UART_EndRxTransfer
+
+
[Called By]- >> USART3_IRQHandler
+
- >> USART2_IRQHandler
+
- >> LPUART1_IRQHandler
+
+
+HAL_UART_Init (Thumb, 120 bytes, Stack size 8 bytes, stm32l4xx_hal_uart.o(i.HAL_UART_Init))
+
[Stack]
- Max Depth = 88
- Call Chain = HAL_UART_Init ⇒ HAL_UART_MspInit ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
+
+
[Calls]- >> HAL_UART_MspInit
+
- >> UART_SetConfig
+
- >> UART_CheckIdleState
+
- >> UART_AdvFeatureConfig
+
+
[Called By]- >> MX_USART1_UART_Init
+
- >> MX_LPUART1_UART_Init
+
- >> MX_USART3_UART_Init
+
- >> MX_USART2_UART_Init
+
+
+HAL_UART_MspInit (Thumb, 342 bytes, Stack size 32 bytes, usart.o(i.HAL_UART_MspInit))
+
[Stack]
- Max Depth = 80
- Call Chain = HAL_UART_MspInit ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
+
+
[Calls]- >> HAL_NVIC_SetPriority
+
- >> HAL_NVIC_EnableIRQ
+
- >> HAL_GPIO_Init
+
- >> __aeabi_memclr4
+
+
[Called By]
+
+HAL_UART_Receive_IT (Thumb, 214 bytes, Stack size 8 bytes, stm32l4xx_hal_uart.o(i.HAL_UART_Receive_IT))
+
[Stack]
- Max Depth = 8
- Call Chain = HAL_UART_Receive_IT
+
+
[Called By]- >> MX_LPUART1_UART_Init
+
- >> USART2_IRQHandler
+
- >> MX_USART2_UART_Init
+
+
+HAL_UART_RxCpltCallback (Thumb, 22 bytes, Stack size 8 bytes, stm32l4xx_it_shell.o(i.HAL_UART_RxCpltCallback))
+
[Stack]
- Max Depth = 136 + Unknown Stack Size
+
- Call Chain = HAL_UART_RxCpltCallback ⇒ tos_shell_input_byte ⇒ tos_sem_post ⇒ sem_do_post ⇒ pend_wakeup ⇒ pend_wakeup_all ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> tos_shell_input_byte
+
+
[Called By]- >> UART_RxISR_8BIT
+
- >> UART_RxISR_16BIT
+
+
+HAL_UART_Transmit (Thumb, 200 bytes, Stack size 32 bytes, stm32l4xx_hal_uart.o(i.HAL_UART_Transmit))
+
[Stack]
- Max Depth = 56
- Call Chain = HAL_UART_Transmit ⇒ UART_WaitOnFlagUntilTimeout
+
+
[Calls]- >> HAL_GetTick
+
- >> UART_WaitOnFlagUntilTimeout
+
+
[Called By]
+
+HAL_UART_TxCpltCallback (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_hal_uart.o(i.HAL_UART_TxCpltCallback))
+
[Called By]
+
+HardFault_Handler (Thumb, 4 bytes, Stack size 0 bytes, stm32l4xx_it_shell.o(i.HardFault_Handler))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+IIC_Start (Thumb, 48 bytes, Stack size 8 bytes, oled.o(i.IIC_Start))
+
[Stack]
- Max Depth = 8
- Call Chain = IIC_Start
+
+
[Calls]
+
[Called By]- >> Write_IIC_Data
+
- >> Write_IIC_Command
+
+
+IIC_Stop (Thumb, 36 bytes, Stack size 8 bytes, oled.o(i.IIC_Stop))
+
[Stack]
- Max Depth = 8
- Call Chain = IIC_Stop
+
+
[Calls]
+
[Called By]- >> Write_IIC_Data
+
- >> Write_IIC_Command
+
+
+IIC_Wait_Ack (Thumb, 28 bytes, Stack size 8 bytes, oled.o(i.IIC_Wait_Ack))
+
[Stack]
- Max Depth = 8
- Call Chain = IIC_Wait_Ack
+
+
[Calls]
+
[Called By]- >> Write_IIC_Data
+
- >> Write_IIC_Command
+
+
+LPUART1_IRQHandler (Thumb, 18 bytes, Stack size 8 bytes, stm32l4xx_it_shell.o(i.LPUART1_IRQHandler))
+
[Stack]
- Max Depth = 48 + Unknown Stack Size
+
- Call Chain = LPUART1_IRQHandler ⇒ HAL_UART_IRQHandler ⇒ HAL_DMA_Abort_IT
+
+
[Calls]- >> tos_knl_irq_leave
+
- >> tos_knl_irq_enter
+
- >> HAL_UART_IRQHandler
+
+
[Address Reference Count : 1]- startup_stm32l431xx.o(RESET)
+
+MX_GPIO_Init (Thumb, 316 bytes, Stack size 32 bytes, gpio.o(i.MX_GPIO_Init))
+
[Stack]
- Max Depth = 80
- Call Chain = MX_GPIO_Init ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
+
+
[Calls]- >> HAL_NVIC_SetPriority
+
- >> HAL_NVIC_EnableIRQ
+
- >> HAL_GPIO_WritePin
+
- >> HAL_GPIO_Init
+
- >> __aeabi_memclr4
+
+
[Called By]
+
+MX_LPUART1_UART_Init (Thumb, 64 bytes, Stack size 8 bytes, usart.o(i.MX_LPUART1_UART_Init))
+
[Stack]
- Max Depth = 96
- Call Chain = MX_LPUART1_UART_Init ⇒ HAL_UART_Init ⇒ HAL_UART_MspInit ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
+
+
[Calls]- >> HAL_UART_Init
+
- >> HAL_UART_Receive_IT
+
- >> Error_Handler
+
+
[Called By]
+
+MX_USART1_UART_Init (Thumb, 56 bytes, Stack size 8 bytes, usart.o(i.MX_USART1_UART_Init))
+
[Stack]
- Max Depth = 96
- Call Chain = MX_USART1_UART_Init ⇒ HAL_UART_Init ⇒ HAL_UART_MspInit ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
+
+
[Calls]- >> HAL_UART_Init
+
- >> Error_Handler
+
+
[Called By]
+
+MX_USART2_UART_Init (Thumb, 66 bytes, Stack size 8 bytes, usart.o(i.MX_USART2_UART_Init))
+
[Stack]
- Max Depth = 96
- Call Chain = MX_USART2_UART_Init ⇒ HAL_UART_Init ⇒ HAL_UART_MspInit ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
+
+
[Calls]- >> HAL_UART_Init
+
- >> HAL_UART_Receive_IT
+
- >> Error_Handler
+
+
[Called By]- >> board_init
+
- >> tos_hal_uart_init
+
+
+MX_USART3_UART_Init (Thumb, 56 bytes, Stack size 8 bytes, usart.o(i.MX_USART3_UART_Init))
+
[Stack]
- Max Depth = 96
- Call Chain = MX_USART3_UART_Init ⇒ HAL_UART_Init ⇒ HAL_UART_MspInit ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
+
+
[Calls]- >> HAL_UART_Init
+
- >> Error_Handler
+
+
[Called By]- >> board_init
+
- >> tos_hal_uart_init
+
+
+MemManage_Handler (Thumb, 4 bytes, Stack size 0 bytes, stm32l4xx_it_shell.o(i.MemManage_Handler))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+NMI_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_it_shell.o(i.NMI_Handler))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+OLED_Clear (Thumb, 62 bytes, Stack size 16 bytes, oled.o(i.OLED_Clear))
+
[Stack]
- Max Depth = 64
- Call Chain = OLED_Clear ⇒ OLED_WR_Byte ⇒ Write_IIC_Data ⇒ Write_IIC_Byte
+
+
[Calls]
+
[Called By]- >> OLED_Init
+
- >> board_init
+
+
+OLED_Init (Thumb, 198 bytes, Stack size 8 bytes, oled.o(i.OLED_Init))
+
[Stack]
- Max Depth = 72
- Call Chain = OLED_Init ⇒ OLED_Clear ⇒ OLED_WR_Byte ⇒ Write_IIC_Data ⇒ Write_IIC_Byte
+
+
[Calls]- >> OLED_Clear
+
- >> HAL_Delay
+
- >> OLED_WR_Byte
+
+
[Called By]
+
+OLED_Set_Pos (Thumb, 40 bytes, Stack size 16 bytes, oled.o(i.OLED_Set_Pos))
+
[Stack]
- Max Depth = 64
- Call Chain = OLED_Set_Pos ⇒ OLED_WR_Byte ⇒ Write_IIC_Data ⇒ Write_IIC_Byte
+
+
[Calls]
+
[Called By]- >> OLED_ShowChinese
+
- >> OLED_ShowChar
+
+
+OLED_ShowChar (Thumb, 154 bytes, Stack size 32 bytes, oled.o(i.OLED_ShowChar))
+
[Stack]
- Max Depth = 96
- Call Chain = OLED_ShowChar ⇒ OLED_Set_Pos ⇒ OLED_WR_Byte ⇒ Write_IIC_Data ⇒ Write_IIC_Byte
+
+
[Calls]- >> OLED_WR_Byte
+
- >> OLED_Set_Pos
+
+
[Called By]
+
+OLED_ShowChinese (Thumb, 98 bytes, Stack size 24 bytes, oled.o(i.OLED_ShowChinese))
+
[Stack]
- Max Depth = 88
- Call Chain = OLED_ShowChinese ⇒ OLED_Set_Pos ⇒ OLED_WR_Byte ⇒ Write_IIC_Data ⇒ Write_IIC_Byte
+
+
[Calls]- >> OLED_WR_Byte
+
- >> OLED_Set_Pos
+
+
[Called By]
+
+OLED_ShowString (Thumb, 58 bytes, Stack size 24 bytes, oled.o(i.OLED_ShowString))
+
[Stack]
- Max Depth = 120
- Call Chain = OLED_ShowString ⇒ OLED_ShowChar ⇒ OLED_Set_Pos ⇒ OLED_WR_Byte ⇒ Write_IIC_Data ⇒ Write_IIC_Byte
+
+
[Calls]
+
[Called By]
+
+OLED_WR_Byte (Thumb, 24 bytes, Stack size 16 bytes, oled.o(i.OLED_WR_Byte))
+
[Stack]
- Max Depth = 48
- Call Chain = OLED_WR_Byte ⇒ Write_IIC_Data ⇒ Write_IIC_Byte
+
+
[Calls]- >> Write_IIC_Data
+
- >> Write_IIC_Command
+
+
[Called By]- >> OLED_ShowChinese
+
- >> OLED_Init
+
- >> OLED_Clear
+
- >> OLED_ShowChar
+
- >> OLED_Set_Pos
+
+
+SVC_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32l4xx_it_shell.o(i.SVC_Handler))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+SysTick_Handler (Thumb, 26 bytes, Stack size 8 bytes, stm32l4xx_it_shell.o(i.SysTick_Handler))
+
[Stack]
- Max Depth = 104 + Unknown Stack Size
+
- Call Chain = SysTick_Handler ⇒ tos_tick_handler ⇒ tick_update ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> tos_tick_handler
+
- >> tos_knl_is_running
+
- >> tos_knl_irq_leave
+
- >> tos_knl_irq_enter
+
- >> HAL_IncTick
+
+
[Address Reference Count : 1]- startup_stm32l431xx.o(RESET)
+
+SystemClock_Config (Thumb, 214 bytes, Stack size 184 bytes, mcu_init.o(i.SystemClock_Config))
+
[Stack]
- Max Depth = 280
- Call Chain = SystemClock_Config ⇒ HAL_RCC_OscConfig ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
+
+
[Calls]- >> HAL_RCC_OscConfig
+
- >> HAL_RCC_ClockConfig
+
- >> HAL_RCCEx_PeriphCLKConfig
+
- >> HAL_RCCEx_EnableMSIPLLMode
+
- >> HAL_PWR_EnableBkUpAccess
+
- >> HAL_PWREx_ControlVoltageScaling
+
- >> Error_Handler
+
- >> __aeabi_memclr4
+
+
[Called By]
+
+SystemInit (Thumb, 68 bytes, Stack size 0 bytes, system_stm32l4xx.o(i.SystemInit))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(.text)
+
+UART_AdvFeatureConfig (Thumb, 248 bytes, Stack size 0 bytes, stm32l4xx_hal_uart.o(i.UART_AdvFeatureConfig))
+
[Called By]
+
+UART_CheckIdleState (Thumb, 116 bytes, Stack size 16 bytes, stm32l4xx_hal_uart.o(i.UART_CheckIdleState))
+
[Stack]
- Max Depth = 40
- Call Chain = UART_CheckIdleState ⇒ UART_WaitOnFlagUntilTimeout
+
+
[Calls]- >> HAL_GetTick
+
- >> UART_WaitOnFlagUntilTimeout
+
+
[Called By]
+
+UART_SetConfig (Thumb, 1000 bytes, Stack size 40 bytes, stm32l4xx_hal_uart.o(i.UART_SetConfig))
+
[Stack]
- Max Depth = 80
- Call Chain = UART_SetConfig ⇒ __aeabi_uldivmod
+
+
[Calls]- >> HAL_RCC_GetSysClockFreq
+
- >> HAL_RCC_GetPCLK2Freq
+
- >> HAL_RCC_GetPCLK1Freq
+
- >> __aeabi_uldivmod
+
+
[Called By]
+
+UART_WaitOnFlagUntilTimeout (Thumb, 108 bytes, Stack size 24 bytes, stm32l4xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout))
+
[Stack]
- Max Depth = 24
- Call Chain = UART_WaitOnFlagUntilTimeout
+
+
[Calls]
+
[Called By]- >> HAL_UART_Transmit
+
- >> UART_CheckIdleState
+
+
+USART2_IRQHandler (Thumb, 74 bytes, Stack size 16 bytes, stm32l4xx_it_shell.o(i.USART2_IRQHandler))
+
[Stack]
- Max Depth = 56 + Unknown Stack Size
+
- Call Chain = USART2_IRQHandler ⇒ HAL_UART_IRQHandler ⇒ HAL_DMA_Abort_IT
+
+
[Calls]- >> tos_knl_irq_leave
+
- >> tos_knl_irq_enter
+
- >> HAL_UART_Receive_IT
+
- >> HAL_UART_IRQHandler
+
- >> HAL_UART_GetState
+
+
[Address Reference Count : 1]- startup_stm32l431xx.o(RESET)
+
+USART3_IRQHandler (Thumb, 10 bytes, Stack size 8 bytes, stm32l4xx_it_shell.o(i.USART3_IRQHandler))
+
[Stack]
- Max Depth = 48
- Call Chain = USART3_IRQHandler ⇒ HAL_UART_IRQHandler ⇒ HAL_DMA_Abort_IT
+
+
[Calls]
+
[Address Reference Count : 1]- startup_stm32l431xx.o(RESET)
+
+UsageFault_Handler (Thumb, 4 bytes, Stack size 0 bytes, stm32l4xx_it_shell.o(i.UsageFault_Handler))
+
[Address Reference Count : 1]
- startup_stm32l431xx.o(RESET)
+
+Write_IIC_Byte (Thumb, 96 bytes, Stack size 24 bytes, oled.o(i.Write_IIC_Byte))
+
[Stack]
- Max Depth = 24
- Call Chain = Write_IIC_Byte
+
+
[Calls]
+
[Called By]- >> Write_IIC_Data
+
- >> Write_IIC_Command
+
+
+Write_IIC_Command (Thumb, 44 bytes, Stack size 8 bytes, oled.o(i.Write_IIC_Command))
+
[Stack]
- Max Depth = 32
- Call Chain = Write_IIC_Command ⇒ Write_IIC_Byte
+
+
[Calls]- >> Write_IIC_Byte
+
- >> IIC_Wait_Ack
+
- >> IIC_Stop
+
- >> IIC_Start
+
+
[Called By]
+
+Write_IIC_Data (Thumb, 44 bytes, Stack size 8 bytes, oled.o(i.Write_IIC_Data))
+
[Stack]
- Max Depth = 32
- Call Chain = Write_IIC_Data ⇒ Write_IIC_Byte
+
+
[Calls]- >> Write_IIC_Byte
+
- >> IIC_Wait_Ack
+
- >> IIC_Stop
+
- >> IIC_Start
+
+
[Called By]
+
+__0printf (Thumb, 22 bytes, Stack size 24 bytes, printfa.o(i.__0printf), UNUSED)
+
[Calls]
+
+__1printf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0printf), UNUSED)
+
+
__2printf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0printf))
+
[Stack]
- Max Depth = 24
- Call Chain = __2printf
+
+
[Called By]- >> main
+
- >> shell_cmd_process
+
- >> task_default_walker
+
+
+__c89printf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0printf), UNUSED)
+
+
printf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0printf), UNUSED)
+
+
__0vsnprintf (Thumb, 40 bytes, Stack size 24 bytes, printfa.o(i.__0vsnprintf), UNUSED)
+
[Calls]
+
+__1vsnprintf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0vsnprintf), UNUSED)
+
+
__2vsnprintf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0vsnprintf), UNUSED)
+
+
__c89vsnprintf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0vsnprintf), UNUSED)
+
+
vsnprintf (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0vsnprintf))
+
[Stack]
- Max Depth = 24
- Call Chain = vsnprintf
+
+
[Called By]
+
+__scatterload_copy (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)
+
+
__scatterload_null (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)
+
+
__scatterload_zeroinit (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)
+
+
application_entry (Thumb, 40 bytes, Stack size 0 bytes, shell_sample.o(i.application_entry))
+
[Stack]
- Max Depth = 168 + Unknown Stack Size
+
- Call Chain = application_entry ⇒ tos_shell_init ⇒ tos_mmheap_alloc ⇒ blk_prepare_used ⇒ blk_trim_free ⇒ blk_split ⇒ blk_mark_as_free ⇒ blk_link_next ⇒ blk_next
+
+
[Calls]- >> tos_task_delay
+
- >> tos_shell_init
+
- >> tos_shell_cmd_set_regiser
+
- >> tos_hal_uart_init
+
+
[Address Reference Count : 1]
+board_init (Thumb, 110 bytes, Stack size 8 bytes, mcu_init.o(i.board_init))
+
[Stack]
- Max Depth = 288
- Call Chain = board_init ⇒ SystemClock_Config ⇒ HAL_RCC_OscConfig ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
+
+
[Calls]- >> OLED_ShowString
+
- >> OLED_ShowChinese
+
- >> OLED_Init
+
- >> OLED_Clear
+
- >> MX_USART3_UART_Init
+
- >> MX_USART2_UART_Init
+
- >> HAL_Init
+
- >> DHT11_Init
+
- >> SystemClock_Config
+
- >> MX_GPIO_Init
+
+
[Called By]
+
+cpu_context_switch (Thumb, 8 bytes, Stack size 8 bytes, tos_cpu.o(i.cpu_context_switch))
+
[Stack]
- Max Depth = 8 + Unknown Stack Size
+
- Call Chain = cpu_context_switch
+
+
[Calls]
+
[Called By]
+
+cpu_init (Thumb, 30 bytes, Stack size 8 bytes, tos_cpu.o(i.cpu_init))
+
[Stack]
- Max Depth = 48
- Call Chain = cpu_init ⇒ __aeabi_uldivmod
+
+
[Calls]- >> cpu_systick_init
+
- >> __aeabi_uldivmod
+
+
[Called By]
+
+cpu_irq_context_switch (Thumb, 8 bytes, Stack size 8 bytes, tos_cpu.o(i.cpu_irq_context_switch))
+
[Stack]
- Max Depth = 8 + Unknown Stack Size
+
- Call Chain = cpu_irq_context_switch
+
+
[Calls]- >> port_irq_context_switch
+
+
[Called By]
+
+cpu_sched_start (Thumb, 4 bytes, Stack size 0 bytes, tos_cpu.o(i.cpu_sched_start))
+
[Calls]
+
[Called By]
+
+cpu_systick_init (Thumb, 18 bytes, Stack size 8 bytes, tos_cpu.o(i.cpu_systick_init))
+
[Stack]
- Max Depth = 32
- Call Chain = cpu_systick_init ⇒ port_systick_config ⇒ __NVIC_SetPriority
+
+
[Calls]- >> port_systick_priority_set
+
- >> port_systick_config
+
+
[Called By]
+
+cpu_task_stk_init (Thumb, 216 bytes, Stack size 20 bytes, tos_cpu.o(i.cpu_task_stk_init))
+
[Stack]
- Max Depth = 20
- Call Chain = cpu_task_stk_init
+
+
[Called By]
+
+fputc (Thumb, 24 bytes, Stack size 0 bytes, mcu_init.o(i.fputc))
+
[Address Reference Count : 1]
+knl_idle_init (Thumb, 38 bytes, Stack size 24 bytes, tos_sys.o(i.knl_idle_init))
+
[Stack]
- Max Depth = 96 + Unknown Stack Size
+
- Call Chain = knl_idle_init ⇒ tos_task_create ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]
+
[Called By]
+
+knl_is_idle (Thumb, 16 bytes, Stack size 0 bytes, tos_sys.o(i.knl_is_idle))
+
[Called By]
- >> task_do_destroy
+
- >> tos_task_create
+
+
+knl_is_inirq (Thumb, 14 bytes, Stack size 0 bytes, tos_sys.o(i.knl_is_inirq))
+
[Called By]
- >> tos_knl_irq_leave
+
- >> tos_task_delay
+
- >> knl_sched
+
- >> tos_sem_pend
+
- >> tos_knl_sched_lock
+
- >> tos_task_prio_change
+
- >> tos_task_yield
+
- >> tos_task_destroy
+
- >> tos_task_create
+
- >> tos_knl_sched_unlock
+
+
+knl_is_sched_locked (Thumb, 14 bytes, Stack size 0 bytes, tos_sys.o(i.knl_is_sched_locked))
+
[Called By]
- >> tos_knl_irq_leave
+
- >> tos_task_delay
+
- >> knl_sched
+
- >> tos_sem_pend
+
- >> tos_task_destroy
+
- >> tos_knl_sched_unlock
+
+
+knl_is_self (Thumb, 18 bytes, Stack size 0 bytes, tos_sys.o(i.knl_is_self))
+
[Called By]
- >> tos_knl_irq_leave
+
- >> knl_sched
+
- >> tos_task_prio_change
+
- >> tos_task_destroy
+
+
+knl_sched (Thumb, 94 bytes, Stack size 8 bytes, tos_sys.o(i.knl_sched))
+
[Stack]
- Max Depth = 16 + Unknown Stack Size
+
- Call Chain = knl_sched ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tos_knl_is_running
+
- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> knl_is_sched_locked
+
- >> knl_is_inirq
+
- >> readyqueue_highest_ready_task_get
+
- >> knl_is_self
+
- >> cpu_context_switch
+
+
[Called By]- >> tos_task_delay
+
- >> tos_sem_pend
+
- >> tos_sem_destroy
+
- >> sem_do_post
+
- >> tos_task_prio_change
+
- >> tos_task_yield
+
- >> task_do_destroy
+
- >> tos_task_create
+
- >> tos_knl_sched_unlock
+
+
+main (Thumb, 32 bytes, Stack size 8 bytes, main.o(i.main))
+
[Stack]
- Max Depth = 296 + Unknown Stack Size
+
- Call Chain = main ⇒ board_init ⇒ SystemClock_Config ⇒ HAL_RCC_OscConfig ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
+
+
[Calls]- >> osThreadCreate
+
- >> osKernelStart
+
- >> osKernelInitialize
+
- >> board_init
+
- >> __2printf
+
+
[Address Reference Count : 1]- entry9a.o(.ARM.Collect$$$$0000000B)
+
+mmheap_init_with_pool (Thumb, 20 bytes, Stack size 16 bytes, tos_mmheap.o(i.mmheap_init_with_pool))
+
[Stack]
- Max Depth = 112 + Unknown Stack Size
+
- Call Chain = mmheap_init_with_pool ⇒ tos_mmheap_pool_add ⇒ blk_insert ⇒ mapping_insert ⇒ __fls ⇒ generic_fls ⇒ tos_cpu_clz
+
+
[Calls]- >> tos_mmheap_pool_add
+
- >> mmheap_ctl_init
+
+
[Called By]
+
+mutex_release (Thumb, 20 bytes, Stack size 8 bytes, tos_mutex.o(i.mutex_release))
+
[Stack]
- Max Depth = 88 + Unknown Stack Size
+
- Call Chain = mutex_release ⇒ mutex_old_owner_release ⇒ tos_task_prio_change ⇒ readyqueue_remove ⇒ readyqueue_prio_highest_get ⇒ tos_cpu_clz
+
+
[Calls]- >> mutex_old_owner_release
+
- >> pend_wakeup_all
+
+
[Called By]
+
+osKernelInitialize (Thumb, 14 bytes, Stack size 8 bytes, cmsis_os.o(i.osKernelInitialize))
+
[Stack]
- Max Depth = 128 + Unknown Stack Size
+
- Call Chain = osKernelInitialize ⇒ tos_knl_init ⇒ mmheap_init_with_pool ⇒ tos_mmheap_pool_add ⇒ blk_insert ⇒ mapping_insert ⇒ __fls ⇒ generic_fls ⇒ tos_cpu_clz
+
+
[Calls]- >> tos_knl_init
+
- >> errno_knl2cmsis
+
+
[Called By]
+
+osKernelStart (Thumb, 14 bytes, Stack size 8 bytes, cmsis_os.o(i.osKernelStart))
+
[Stack]
- Max Depth = 16 + Unknown Stack Size
+
- Call Chain = osKernelStart ⇒ tos_knl_start
+
+
[Calls]- >> tos_knl_start
+
- >> errno_knl2cmsis
+
+
[Called By]
+
+osThreadCreate (Thumb, 66 bytes, Stack size 40 bytes, cmsis_os.o(i.osThreadCreate))
+
[Stack]
- Max Depth = 112 + Unknown Stack Size
+
- Call Chain = osThreadCreate ⇒ tos_task_create ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> tos_task_create
+
- >> priority_cmsis2knl
+
+
[Called By]
+
+pend_highest_pending_prio_get (Thumb, 32 bytes, Stack size 16 bytes, tos_pend.o(i.pend_highest_pending_prio_get))
+
[Stack]
- Max Depth = 16
- Call Chain = pend_highest_pending_prio_get
+
+
[Calls]
+
[Called By]- >> task_highest_pending_prio_get
+
+
+pend_is_nopending (Thumb, 12 bytes, Stack size 8 bytes, tos_pend.o(i.pend_is_nopending))
+
[Stack]
- Max Depth = 8
- Call Chain = pend_is_nopending
+
+
[Calls]
+
[Called By]- >> tos_sem_destroy
+
- >> sem_do_post
+
+
+pend_list_adjust (Thumb, 22 bytes, Stack size 8 bytes, tos_pend.o(i.pend_list_adjust))
+
[Stack]
- Max Depth = 20
- Call Chain = pend_list_adjust ⇒ pend_list_add
+
+
[Calls]- >> tos_list_del
+
- >> pend_list_add
+
+
[Called By]- >> tos_task_prio_change
+
+
+pend_list_remove (Thumb, 30 bytes, Stack size 8 bytes, tos_pend.o(i.pend_list_remove))
+
[Stack]
- Max Depth = 8
- Call Chain = pend_list_remove
+
+
[Calls]
+
[Called By]- >> pend_task_wakeup
+
- >> task_do_destroy
+
+
+pend_object_deinit (Thumb, 12 bytes, Stack size 8 bytes, tos_pend.o(i.pend_object_deinit))
+
[Stack]
- Max Depth = 8
- Call Chain = pend_object_deinit
+
+
[Calls]
+
[Called By]
+
+pend_object_init (Thumb, 12 bytes, Stack size 8 bytes, tos_pend.o(i.pend_object_init))
+
[Stack]
- Max Depth = 8
- Call Chain = pend_object_init
+
+
[Calls]
+
[Called By]
+
+pend_state2errno (Thumb, 46 bytes, Stack size 0 bytes, tos_pend.o(i.pend_state2errno))
+
[Called By]
+
+pend_task_block (Thumb, 60 bytes, Stack size 24 bytes, tos_pend.o(i.pend_task_block))
+
[Stack]
- Max Depth = 88 + Unknown Stack Size
+
- Call Chain = pend_task_block ⇒ tick_list_add ⇒ tick_task_place ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tick_list_add
+
- >> readyqueue_remove
+
- >> pend_list_add
+
+
[Called By]
+
+pend_task_wakeup (Thumb, 64 bytes, Stack size 16 bytes, tos_pend.o(i.pend_task_wakeup))
+
[Stack]
- Max Depth = 56 + Unknown Stack Size
+
- Call Chain = pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> tick_list_remove
+
- >> readyqueue_add
+
- >> pend_list_remove
+
+
[Called By]- >> pend_wakeup_all
+
- >> pend_wakeup_one
+
- >> tick_update
+
+
+pend_wakeup (Thumb, 30 bytes, Stack size 16 bytes, tos_pend.o(i.pend_wakeup))
+
[Stack]
- Max Depth = 96 + Unknown Stack Size
+
- Call Chain = pend_wakeup ⇒ pend_wakeup_all ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> pend_wakeup_all
+
- >> pend_wakeup_one
+
+
[Called By]
+
+pend_wakeup_all (Thumb, 50 bytes, Stack size 24 bytes, tos_pend.o(i.pend_wakeup_all))
+
[Stack]
- Max Depth = 80 + Unknown Stack Size
+
- Call Chain = pend_wakeup_all ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]
+
[Called By]- >> tos_sem_destroy
+
- >> pend_wakeup
+
- >> mutex_release
+
+
+pend_wakeup_one (Thumb, 20 bytes, Stack size 16 bytes, tos_pend.o(i.pend_wakeup_one))
+
[Stack]
- Max Depth = 72 + Unknown Stack Size
+
- Call Chain = pend_wakeup_one ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]
+
[Called By]
+
+port_systick_config (Thumb, 50 bytes, Stack size 16 bytes, port_c.o(i.port_systick_config))
+
[Stack]
- Max Depth = 24
- Call Chain = port_systick_config ⇒ __NVIC_SetPriority
+
+
[Calls]
+
[Called By]
+
+port_systick_priority_set (Thumb, 16 bytes, Stack size 8 bytes, port_c.o(i.port_systick_priority_set))
+
[Stack]
- Max Depth = 16
- Call Chain = port_systick_priority_set ⇒ __NVIC_SetPriority
+
+
[Calls]
+
[Called By]
+
+readyqueue_add (Thumb, 32 bytes, Stack size 8 bytes, tos_sched.o(i.readyqueue_add))
+
[Stack]
- Max Depth = 40
- Call Chain = readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> readyqueue_add_tail
+
- >> readyqueue_add_head
+
+
[Called By]
+
+readyqueue_add_head (Thumb, 48 bytes, Stack size 24 bytes, tos_sched.o(i.readyqueue_add_head))
+
[Stack]
- Max Depth = 24
- Call Chain = readyqueue_add_head
+
+
[Calls]- >> tos_list_empty
+
- >> readyqueue_prio_mark
+
- >> _list_add
+
+
[Called By]- >> readyqueue_add
+
- >> tos_task_prio_change
+
+
+readyqueue_add_tail (Thumb, 38 bytes, Stack size 16 bytes, tos_sched.o(i.readyqueue_add_tail))
+
[Stack]
- Max Depth = 32
- Call Chain = readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> tos_list_empty
+
- >> tos_list_add_tail
+
- >> readyqueue_prio_mark
+
+
[Called By]- >> readyqueue_add
+
- >> tos_task_prio_change
+
- >> tos_task_yield
+
- >> tos_task_create
+
+
+readyqueue_highest_ready_task_get (Thumb, 18 bytes, Stack size 0 bytes, tos_sched.o(i.readyqueue_highest_ready_task_get))
+
[Called By]
- >> tos_knl_irq_leave
+
- >> knl_sched
+
- >> tos_knl_start
+
+
+readyqueue_init (Thumb, 60 bytes, Stack size 0 bytes, tos_sched.o(i.readyqueue_init))
+
[Called By]
+
+readyqueue_remove (Thumb, 94 bytes, Stack size 16 bytes, tos_sched.o(i.readyqueue_remove))
+
[Stack]
- Max Depth = 40 + Unknown Stack Size
+
- Call Chain = readyqueue_remove ⇒ readyqueue_prio_highest_get ⇒ tos_cpu_clz
+
+
[Calls]- >> tos_list_empty
+
- >> readyqueue_prio_highest_get
+
- >> _list_del
+
+
[Called By]- >> tos_task_delay
+
- >> pend_task_block
+
- >> tos_task_prio_change
+
- >> tos_task_yield
+
- >> task_do_destroy
+
+
+shell_cmd_find (Thumb, 50 bytes, Stack size 16 bytes, tos_shell_commands.o(i.shell_cmd_find))
+
[Stack]
- Max Depth = 24
- Call Chain = shell_cmd_find ⇒ strcmp
+
+
[Calls]
+
[Called By]- >> shell_cmd_do_process
+
+
+shell_cmd_init (Thumb, 32 bytes, Stack size 8 bytes, tos_shell_commands.o(i.shell_cmd_init))
+
[Stack]
- Max Depth = 8
- Call Chain = shell_cmd_init
+
+
[Calls]
+
[Called By]
+
+shell_cmd_set_regiser (Thumb, 32 bytes, Stack size 8 bytes, tos_shell_commands.o(i.shell_cmd_set_regiser))
+
[Stack]
- Max Depth = 8
- Call Chain = shell_cmd_set_regiser
+
+
[Calls]- >> tos_slist_contains
+
- >> tos_slist_add_head
+
+
[Called By]- >> tos_shell_cmd_set_regiser
+
+
+task_free_all (Thumb, 74 bytes, Stack size 16 bytes, tos_task.o(i.task_free_all))
+
[Stack]
- Max Depth = 128 + Unknown Stack Size
+
- Call Chain = task_free_all ⇒ task_free ⇒ tos_mmheap_free ⇒ blk_merge_prev ⇒ blk_remove ⇒ mapping_insert ⇒ __fls ⇒ generic_fls ⇒ tos_cpu_clz
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> tos_list_del
+
- >> task_free
+
+
[Called By]
+
+tick_list_add (Thumb, 32 bytes, Stack size 16 bytes, tos_tick.o(i.tick_list_add))
+
[Stack]
- Max Depth = 64 + Unknown Stack Size
+
- Call Chain = tick_list_add ⇒ tick_task_place ⇒ tos_cpu_cpsr_save
+
+
[Calls]
+
[Called By]- >> tos_task_delay
+
- >> pend_task_block
+
+
+tick_list_remove (Thumb, 24 bytes, Stack size 8 bytes, tos_tick.o(i.tick_list_remove))
+
[Stack]
- Max Depth = 32 + Unknown Stack Size
+
- Call Chain = tick_list_remove ⇒ tick_task_takeoff ⇒ tos_cpu_cpsr_save
+
+
[Calls]
+
[Called By]- >> pend_task_wakeup
+
- >> task_do_destroy
+
+
+tick_update (Thumb, 188 bytes, Stack size 32 bytes, tos_tick.o(i.tick_update))
+
[Stack]
- Max Depth = 88 + Unknown Stack Size
+
- Call Chain = tick_update ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> pend_task_wakeup
+
- >> tos_list_empty
+
+
[Called By]
+
+timer_init (Thumb, 4 bytes, Stack size 0 bytes, tos_timer.o(i.timer_init))
+
[Called By]
+
+timer_update (Thumb, 128 bytes, Stack size 16 bytes, tos_timer.o(i.timer_update))
+
[Stack]
- Max Depth = 48 + Unknown Stack Size
+
- Call Chain = timer_update ⇒ timer_takeoff ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tos_knl_sched_lock
+
- >> timer_takeoff
+
- >> timer_place
+
- >> tos_knl_sched_unlock
+
+
[Called By]
+
+tos_chr_fifo_create (Thumb, 94 bytes, Stack size 24 bytes, tos_char_fifo.o(i.tos_chr_fifo_create))
+
[Stack]
- Max Depth = 48
- Call Chain = tos_chr_fifo_create ⇒ tos_ring_q_create
+
+
[Calls]- >> knl_object_init
+
- >> tos_ring_q_create
+
+
[Called By]
+
+tos_chr_fifo_destroy (Thumb, 98 bytes, Stack size 16 bytes, tos_char_fifo.o(i.tos_chr_fifo_destroy))
+
[Stack]
- Max Depth = 24
- Call Chain = tos_chr_fifo_destroy ⇒ tos_ring_q_destroy
+
+
[Calls]- >> knl_object_verify
+
- >> tos_ring_q_destroy
+
+
[Called By]
+
+tos_chr_fifo_pop (Thumb, 60 bytes, Stack size 16 bytes, tos_char_fifo.o(i.tos_chr_fifo_pop))
+
[Stack]
- Max Depth = 72 + Unknown Stack Size
+
- Call Chain = tos_chr_fifo_pop ⇒ tos_ring_q_dequeue ⇒ tos_ring_q_is_empty ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> knl_object_verify
+
- >> tos_ring_q_dequeue
+
+
[Called By]
+
+tos_chr_fifo_push (Thumb, 58 bytes, Stack size 16 bytes, tos_char_fifo.o(i.tos_chr_fifo_push))
+
[Stack]
- Max Depth = 64 + Unknown Stack Size
+
- Call Chain = tos_chr_fifo_push ⇒ tos_ring_q_enqueue ⇒ tos_ring_q_is_full ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> knl_object_verify
+
- >> tos_ring_q_enqueue
+
+
[Called By]- >> tos_shell_input_byte
+
+
+tos_cpu_clz (Thumb, 12 bytes, Stack size 8 bytes, tos_cpu.o(i.tos_cpu_clz))
+
[Stack]
- Max Depth = 8 + Unknown Stack Size
+
- Call Chain = tos_cpu_clz
+
+
[Calls]
+
[Called By]- >> generic_fls
+
- >> readyqueue_prio_highest_get
+
+
+tos_cpu_cpsr_restore (Thumb, 12 bytes, Stack size 8 bytes, tos_cpu.o(i.tos_cpu_cpsr_restore))
+
[Stack]
- Max Depth = 8 + Unknown Stack Size
+
- Call Chain = tos_cpu_cpsr_restore
+
+
[Calls]
+
[Called By]- >> tos_knl_irq_leave
+
- >> tos_task_delay
+
- >> knl_sched
+
- >> tos_ring_q_is_full
+
- >> tos_ring_q_is_empty
+
- >> tos_ring_q_enqueue
+
- >> tos_ring_q_dequeue
+
- >> tos_sem_pend
+
- >> tos_sem_destroy
+
- >> sem_do_post
+
- >> tos_knl_sched_lock
+
- >> tos_task_prio_change
+
- >> timer_takeoff
+
- >> timer_place
+
- >> tick_update
+
- >> tick_task_takeoff
+
- >> tick_task_place
+
- >> tos_task_yield
+
- >> tos_task_walkthru
+
- >> task_do_destroy
+
- >> tos_task_create
+
- >> task_free_all
+
- >> tos_knl_sched_unlock
+
+
+tos_cpu_cpsr_save (Thumb, 8 bytes, Stack size 8 bytes, tos_cpu.o(i.tos_cpu_cpsr_save))
+
[Stack]
- Max Depth = 8 + Unknown Stack Size
+
- Call Chain = tos_cpu_cpsr_save
+
+
[Calls]
+
[Called By]- >> tos_knl_irq_leave
+
- >> tos_task_delay
+
- >> knl_sched
+
- >> tos_ring_q_is_full
+
- >> tos_ring_q_is_empty
+
- >> tos_ring_q_enqueue
+
- >> tos_ring_q_dequeue
+
- >> tos_sem_pend
+
- >> tos_sem_destroy
+
- >> sem_do_post
+
- >> tos_knl_sched_lock
+
- >> tos_task_prio_change
+
- >> timer_takeoff
+
- >> timer_place
+
- >> tick_update
+
- >> tick_task_takeoff
+
- >> tick_task_place
+
- >> tos_task_yield
+
- >> tos_task_walkthru
+
- >> task_do_destroy
+
- >> tos_task_create
+
- >> task_free_all
+
- >> tos_knl_sched_unlock
+
+
+tos_hal_uart_init (Thumb, 70 bytes, Stack size 16 bytes, tos_hal_uart.o(i.tos_hal_uart_init))
+
[Stack]
- Max Depth = 112
- Call Chain = tos_hal_uart_init ⇒ MX_USART1_UART_Init ⇒ HAL_UART_Init ⇒ HAL_UART_MspInit ⇒ HAL_NVIC_SetPriority ⇒ __NVIC_SetPriority
+
+
[Calls]- >> MX_USART1_UART_Init
+
- >> MX_LPUART1_UART_Init
+
- >> MX_USART3_UART_Init
+
- >> MX_USART2_UART_Init
+
+
[Called By]
+
+tos_hal_uart_write (Thumb, 64 bytes, Stack size 32 bytes, tos_hal_uart.o(i.tos_hal_uart_write))
+
[Stack]
- Max Depth = 88
- Call Chain = tos_hal_uart_write ⇒ HAL_UART_Transmit ⇒ UART_WaitOnFlagUntilTimeout
+
+
[Calls]
+
[Called By]
+
+tos_knl_init (Thumb, 56 bytes, Stack size 8 bytes, tos_sys.o(i.tos_knl_init))
+
[Stack]
- Max Depth = 120 + Unknown Stack Size
+
- Call Chain = tos_knl_init ⇒ mmheap_init_with_pool ⇒ tos_mmheap_pool_add ⇒ blk_insert ⇒ mapping_insert ⇒ __fls ⇒ generic_fls ⇒ tos_cpu_clz
+
+
[Calls]- >> mmheap_init_with_pool
+
- >> readyqueue_init
+
- >> timer_init
+
- >> cpu_init
+
- >> knl_idle_init
+
+
[Called By]
+
+tos_knl_irq_enter (Thumb, 42 bytes, Stack size 4 bytes, tos_sys.o(i.tos_knl_irq_enter))
+
[Stack]
- Max Depth = 4
- Call Chain = tos_knl_irq_enter
+
+
[Calls]
+
[Called By]- >> USART2_IRQHandler
+
- >> SysTick_Handler
+
- >> LPUART1_IRQHandler
+
+
+tos_knl_irq_leave (Thumb, 134 bytes, Stack size 8 bytes, tos_sys.o(i.tos_knl_irq_leave))
+
[Stack]
- Max Depth = 16 + Unknown Stack Size
+
- Call Chain = tos_knl_irq_leave ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tos_knl_is_running
+
- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> knl_is_sched_locked
+
- >> knl_is_inirq
+
- >> readyqueue_highest_ready_task_get
+
- >> knl_is_self
+
- >> cpu_irq_context_switch
+
+
[Called By]- >> USART2_IRQHandler
+
- >> SysTick_Handler
+
- >> LPUART1_IRQHandler
+
+
+tos_knl_is_running (Thumb, 14 bytes, Stack size 0 bytes, tos_sys.o(i.tos_knl_is_running))
+
[Called By]
- >> tos_tick_handler
+
- >> tos_knl_irq_leave
+
- >> tos_knl_irq_enter
+
- >> SysTick_Handler
+
- >> knl_sched
+
- >> tos_knl_sched_lock
+
- >> tos_task_create
+
- >> tos_knl_start
+
- >> tos_knl_sched_unlock
+
+
+tos_knl_sched_lock (Thumb, 88 bytes, Stack size 8 bytes, tos_sys.o(i.tos_knl_sched_lock))
+
[Stack]
- Max Depth = 16 + Unknown Stack Size
+
- Call Chain = tos_knl_sched_lock ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tos_knl_is_running
+
- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> knl_is_inirq
+
+
[Called By]
+
+tos_knl_sched_unlock (Thumb, 90 bytes, Stack size 8 bytes, tos_sys.o(i.tos_knl_sched_unlock))
+
[Stack]
- Max Depth = 24 + Unknown Stack Size
+
- Call Chain = tos_knl_sched_unlock ⇒ knl_sched ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tos_knl_is_running
+
- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> knl_sched
+
- >> knl_is_sched_locked
+
- >> knl_is_inirq
+
+
[Called By]
+
+tos_knl_start (Thumb, 52 bytes, Stack size 8 bytes, tos_sys.o(i.tos_knl_start))
+
[Stack]
- Max Depth = 8 + Unknown Stack Size
+
- Call Chain = tos_knl_start
+
+
[Calls]- >> tos_knl_is_running
+
- >> readyqueue_highest_ready_task_get
+
- >> cpu_sched_start
+
+
[Called By]
+
+tos_mmheap_alloc (Thumb, 38 bytes, Stack size 16 bytes, tos_mmheap.o(i.tos_mmheap_alloc))
+
[Stack]
- Max Depth = 128 + Unknown Stack Size
+
- Call Chain = tos_mmheap_alloc ⇒ blk_prepare_used ⇒ blk_trim_free ⇒ blk_split ⇒ blk_mark_as_free ⇒ blk_link_next ⇒ blk_next
+
+
[Calls]- >> blk_prepare_used
+
- >> blk_locate_free
+
- >> adjust_request_size
+
+
[Called By]
+
+tos_mmheap_free (Thumb, 48 bytes, Stack size 16 bytes, tos_mmheap.o(i.tos_mmheap_free))
+
[Stack]
- Max Depth = 104 + Unknown Stack Size
+
- Call Chain = tos_mmheap_free ⇒ blk_merge_prev ⇒ blk_remove ⇒ mapping_insert ⇒ __fls ⇒ generic_fls ⇒ tos_cpu_clz
+
+
[Calls]- >> blk_merge_prev
+
- >> blk_merge_next
+
- >> blk_mark_as_free
+
- >> blk_insert
+
+
[Called By]- >> tos_shell_init
+
- >> task_free
+
+
+tos_mmheap_pool_add (Thumb, 182 bytes, Stack size 24 bytes, tos_mmheap.o(i.tos_mmheap_pool_add))
+
[Stack]
- Max Depth = 96 + Unknown Stack Size
+
- Call Chain = tos_mmheap_pool_add ⇒ blk_insert ⇒ mapping_insert ⇒ __fls ⇒ generic_fls ⇒ tos_cpu_clz
+
+
[Calls]- >> offset_to_blk
+
- >> mmheap_pool_is_exist
+
- >> blk_set_used
+
- >> blk_set_size
+
- >> blk_set_prev_used
+
- >> blk_set_prev_free
+
- >> blk_set_free
+
- >> blk_link_next
+
- >> blk_insert
+
+
[Called By]- >> mmheap_init_with_pool
+
+
+tos_ring_q_create (Thumb, 90 bytes, Stack size 24 bytes, tos_ring_queue.o(i.tos_ring_q_create))
+
[Stack]
- Max Depth = 24
- Call Chain = tos_ring_q_create
+
+
[Calls]
+
[Called By]
+
+tos_ring_q_dequeue (Thumb, 182 bytes, Stack size 32 bytes, tos_ring_queue.o(i.tos_ring_q_dequeue))
+
[Stack]
- Max Depth = 56 + Unknown Stack Size
+
- Call Chain = tos_ring_q_dequeue ⇒ tos_ring_q_is_empty ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> tos_ring_q_is_empty
+
- >> knl_object_verify
+
- >> __aeabi_memcpy
+
+
[Called By]
+
+tos_ring_q_destroy (Thumb, 96 bytes, Stack size 8 bytes, tos_ring_queue.o(i.tos_ring_q_destroy))
+
[Stack]
- Max Depth = 8
- Call Chain = tos_ring_q_destroy
+
+
[Calls]
+
[Called By]- >> tos_chr_fifo_destroy
+
+
+tos_ring_q_enqueue (Thumb, 184 bytes, Stack size 24 bytes, tos_ring_queue.o(i.tos_ring_q_enqueue))
+
[Stack]
- Max Depth = 48 + Unknown Stack Size
+
- Call Chain = tos_ring_q_enqueue ⇒ tos_ring_q_is_full ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> tos_ring_q_is_full
+
- >> knl_object_verify
+
- >> __aeabi_memcpy
+
+
[Called By]
+
+tos_ring_q_is_empty (Thumb, 82 bytes, Stack size 16 bytes, tos_ring_queue.o(i.tos_ring_q_is_empty))
+
[Stack]
- Max Depth = 24 + Unknown Stack Size
+
- Call Chain = tos_ring_q_is_empty ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> knl_object_verify
+
+
[Called By]
+
+tos_ring_q_is_full (Thumb, 86 bytes, Stack size 16 bytes, tos_ring_queue.o(i.tos_ring_q_is_full))
+
[Stack]
- Max Depth = 24 + Unknown Stack Size
+
- Call Chain = tos_ring_q_is_full ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> knl_object_verify
+
+
[Called By]
+
+tos_sem_create (Thumb, 20 bytes, Stack size 16 bytes, tos_sem.o(i.tos_sem_create))
+
[Stack]
- Max Depth = 40
- Call Chain = tos_sem_create ⇒ tos_sem_create_max ⇒ pend_object_init
+
+
[Calls]
+
[Called By]
+
+tos_sem_create_max (Thumb, 50 bytes, Stack size 16 bytes, tos_sem.o(i.tos_sem_create_max))
+
[Stack]
- Max Depth = 24
- Call Chain = tos_sem_create_max ⇒ pend_object_init
+
+
[Calls]
+
[Called By]
+
+tos_sem_destroy (Thumb, 106 bytes, Stack size 16 bytes, tos_sem.o(i.tos_sem_destroy))
+
[Stack]
- Max Depth = 96 + Unknown Stack Size
+
- Call Chain = tos_sem_destroy ⇒ pend_wakeup_all ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> pend_wakeup_all
+
- >> pend_object_deinit
+
- >> pend_is_nopending
+
- >> knl_sched
+
- >> knl_object_verify
+
+
[Called By]
+
+tos_sem_pend (Thumb, 206 bytes, Stack size 24 bytes, tos_sem.o(i.tos_sem_pend))
+
[Stack]
- Max Depth = 112 + Unknown Stack Size
+
- Call Chain = tos_sem_pend ⇒ pend_task_block ⇒ tick_list_add ⇒ tick_task_place ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> pend_task_block
+
- >> pend_state2errno
+
- >> knl_sched
+
- >> knl_is_sched_locked
+
- >> knl_is_inirq
+
- >> knl_object_verify
+
+
[Called By]
+
+tos_sem_post (Thumb, 14 bytes, Stack size 8 bytes, tos_sem.o(i.tos_sem_post))
+
[Stack]
- Max Depth = 120 + Unknown Stack Size
+
- Call Chain = tos_sem_post ⇒ sem_do_post ⇒ pend_wakeup ⇒ pend_wakeup_all ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]
+
[Called By]- >> tos_shell_input_byte
+
+
+tos_shell_cmd_set_regiser (Thumb, 12 bytes, Stack size 8 bytes, tos_shell.o(i.tos_shell_cmd_set_regiser))
+
[Stack]
- Max Depth = 16
- Call Chain = tos_shell_cmd_set_regiser ⇒ shell_cmd_set_regiser
+
+
[Calls]- >> shell_cmd_set_regiser
+
+
[Called By]
+
+tos_shell_init (Thumb, 208 bytes, Stack size 40 bytes, tos_shell.o(i.tos_shell_init))
+
[Stack]
- Max Depth = 168 + Unknown Stack Size
+
- Call Chain = tos_shell_init ⇒ tos_mmheap_alloc ⇒ blk_prepare_used ⇒ blk_trim_free ⇒ blk_split ⇒ blk_mark_as_free ⇒ blk_link_next ⇒ blk_next
+
+
[Calls]- >> tos_chr_fifo_destroy
+
- >> tos_chr_fifo_create
+
- >> tos_mmheap_free
+
- >> tos_mmheap_alloc
+
- >> tos_sem_destroy
+
- >> tos_sem_create
+
- >> tos_task_create
+
- >> __aeabi_memclr4
+
- >> shell_cmd_init
+
+
[Called By]
+
+tos_shell_input_byte (Thumb, 24 bytes, Stack size 8 bytes, tos_shell.o(i.tos_shell_input_byte))
+
[Stack]
- Max Depth = 128 + Unknown Stack Size
+
- Call Chain = tos_shell_input_byte ⇒ tos_sem_post ⇒ sem_do_post ⇒ pend_wakeup ⇒ pend_wakeup_all ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> tos_chr_fifo_push
+
- >> tos_sem_post
+
+
[Called By]- >> HAL_UART_RxCpltCallback
+
+
+tos_shell_printf (Thumb, 40 bytes, Stack size 24 bytes, tos_shell.o(i.tos_shell_printf))
+
[Stack]
- Max Depth = 48
- Call Chain = tos_shell_printf ⇒ vsnprintf
+
+
[Calls]
+
[Called By]- >> cmd_test11
+
- >> cmd_test10
+
- >> cmd_test01
+
- >> cmd_test00
+
- >> shell_prompt
+
- >> shell_cmd_do_process
+
- >> cmd_help
+
+
+tos_task_create (Thumb, 294 bytes, Stack size 40 bytes, tos_task.o(i.tos_task_create))
+
[Stack]
- Max Depth = 72 + Unknown Stack Size
+
- Call Chain = tos_task_create ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> tos_knl_is_running
+
- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> knl_sched
+
- >> knl_is_inirq
+
- >> readyqueue_add_tail
+
- >> cpu_task_stk_init
+
- >> tos_list_add
+
- >> task_reset
+
- >> knl_is_idle
+
+
[Called By]- >> osThreadCreate
+
- >> tos_shell_init
+
- >> knl_idle_init
+
+
+tos_task_delay (Thumb, 146 bytes, Stack size 16 bytes, tos_task.o(i.tos_task_delay))
+
[Stack]
- Max Depth = 80 + Unknown Stack Size
+
- Call Chain = tos_task_delay ⇒ tick_list_add ⇒ tick_task_place ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> knl_sched
+
- >> knl_is_sched_locked
+
- >> knl_is_inirq
+
- >> tick_list_add
+
- >> readyqueue_remove
+
- >> tos_task_yield
+
+
[Called By]
+
+tos_task_destroy (Thumb, 112 bytes, Stack size 8 bytes, tos_task.o(i.tos_task_destroy))
+
[Stack]
- Max Depth = 128 + Unknown Stack Size
+
- Call Chain = tos_task_destroy ⇒ task_do_destroy ⇒ task_mutex_release ⇒ mutex_release ⇒ mutex_old_owner_release ⇒ tos_task_prio_change ⇒ readyqueue_remove ⇒ readyqueue_prio_highest_get ⇒ tos_cpu_clz
+
+
[Calls]- >> knl_is_sched_locked
+
- >> knl_is_inirq
+
- >> knl_is_self
+
- >> task_do_destroy
+
- >> knl_object_verify
+
+
[Called By]
+
+tos_task_info_display (Thumb, 10 bytes, Stack size 8 bytes, tos_task.o(i.tos_task_info_display))
+
[Stack]
- Max Depth = 32 + Unknown Stack Size
+
- Call Chain = tos_task_info_display ⇒ tos_task_walkthru ⇒ tos_cpu_cpsr_save
+
+
[Calls]
+
[Called By]
+
+tos_task_prio_change (Thumb, 248 bytes, Stack size 24 bytes, tos_task.o(i.tos_task_prio_change))
+
[Stack]
- Max Depth = 64 + Unknown Stack Size
+
- Call Chain = tos_task_prio_change ⇒ readyqueue_remove ⇒ readyqueue_prio_highest_get ⇒ tos_cpu_clz
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> knl_sched
+
- >> knl_is_inirq
+
- >> readyqueue_add_tail
+
- >> readyqueue_add_head
+
- >> readyqueue_remove
+
- >> pend_list_adjust
+
- >> knl_is_self
+
- >> tos_list_empty
+
- >> task_state_is_ready
+
- >> task_highest_pending_prio_get
+
- >> knl_object_verify
+
+
[Called By]- >> mutex_old_owner_release
+
+
+tos_task_walkthru (Thumb, 64 bytes, Stack size 16 bytes, tos_task.o(i.tos_task_walkthru))
+
[Stack]
- Max Depth = 24 + Unknown Stack Size
+
- Call Chain = tos_task_walkthru ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
+
[Called By]- >> tos_task_info_display
+
+
+tos_task_yield (Thumb, 56 bytes, Stack size 8 bytes, tos_task.o(i.tos_task_yield))
+
[Stack]
- Max Depth = 48 + Unknown Stack Size
+
- Call Chain = tos_task_yield ⇒ readyqueue_remove ⇒ readyqueue_prio_highest_get ⇒ tos_cpu_clz
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> knl_sched
+
- >> knl_is_inirq
+
- >> readyqueue_add_tail
+
- >> readyqueue_remove
+
+
[Called By]
+
+tos_tick_handler (Thumb, 34 bytes, Stack size 8 bytes, tos_tick.o(i.tos_tick_handler))
+
[Stack]
- Max Depth = 96 + Unknown Stack Size
+
- Call Chain = tos_tick_handler ⇒ tick_update ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> tos_knl_is_running
+
- >> timer_update
+
- >> tick_update
+
+
[Called By]
+
+uart_output (Thumb, 26 bytes, Stack size 16 bytes, shell_sample.o(i.uart_output))
+
[Stack]
- Max Depth = 104
- Call Chain = uart_output ⇒ tos_hal_uart_write ⇒ HAL_UART_Transmit ⇒ UART_WaitOnFlagUntilTimeout
+
+
[Calls]- >> tos_hal_uart_write
+
- >> strlen
+
+
[Address Reference Count : 1]- shell_sample.o(i.application_entry)
+
+
+Local Symbols
+
+cmd_test00 (Thumb, 40 bytes, Stack size 16 bytes, shell_sample.o(i.cmd_test00))
+
[Stack]
- Max Depth = 64
- Call Chain = cmd_test00 ⇒ tos_shell_printf ⇒ vsnprintf
+
+
[Calls]
+
[Address Reference Count : 1]- shell_sample.o(.constdata)
+
+cmd_test01 (Thumb, 16 bytes, Stack size 16 bytes, shell_sample.o(i.cmd_test01))
+
[Stack]
- Max Depth = 64
- Call Chain = cmd_test01 ⇒ tos_shell_printf ⇒ vsnprintf
+
+
[Calls]
+
[Address Reference Count : 1]- shell_sample.o(.constdata)
+
+cmd_test10 (Thumb, 40 bytes, Stack size 16 bytes, shell_sample.o(i.cmd_test10))
+
[Stack]
- Max Depth = 64
- Call Chain = cmd_test10 ⇒ tos_shell_printf ⇒ vsnprintf
+
+
[Calls]
+
[Address Reference Count : 1]- shell_sample.o(.constdata)
+
+cmd_test11 (Thumb, 16 bytes, Stack size 16 bytes, shell_sample.o(i.cmd_test11))
+
[Stack]
- Max Depth = 64
- Call Chain = cmd_test11 ⇒ tos_shell_printf ⇒ vsnprintf
+
+
[Calls]
+
[Address Reference Count : 1]- shell_sample.o(.constdata)
+
+UART_DMAAbortOnError (Thumb, 24 bytes, Stack size 16 bytes, stm32l4xx_hal_uart.o(i.UART_DMAAbortOnError))
+
[Stack]
- Max Depth = 16
- Call Chain = UART_DMAAbortOnError
+
+
[Calls]- >> HAL_UART_ErrorCallback
+
+
[Address Reference Count : 1]- stm32l4xx_hal_uart.o(i.HAL_UART_IRQHandler)
+
+UART_EndRxTransfer (Thumb, 36 bytes, Stack size 0 bytes, stm32l4xx_hal_uart.o(i.UART_EndRxTransfer))
+
[Called By]
+
+UART_EndTransmit_IT (Thumb, 34 bytes, Stack size 8 bytes, stm32l4xx_hal_uart.o(i.UART_EndTransmit_IT))
+
[Stack]
- Max Depth = 8
- Call Chain = UART_EndTransmit_IT
+
+
[Calls]- >> HAL_UART_TxCpltCallback
+
+
[Called By]
+
+UART_RxISR_16BIT (Thumb, 108 bytes, Stack size 24 bytes, stm32l4xx_hal_uart.o(i.UART_RxISR_16BIT))
+
[Stack]
- Max Depth = 160 + Unknown Stack Size
+
- Call Chain = UART_RxISR_16BIT ⇒ HAL_UART_RxCpltCallback ⇒ tos_shell_input_byte ⇒ tos_sem_post ⇒ sem_do_post ⇒ pend_wakeup ⇒ pend_wakeup_all ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> HAL_UART_RxCpltCallback
+
+
[Address Reference Count : 1]- stm32l4xx_hal_uart.o(i.HAL_UART_Receive_IT)
+
+UART_RxISR_8BIT (Thumb, 102 bytes, Stack size 16 bytes, stm32l4xx_hal_uart.o(i.UART_RxISR_8BIT))
+
[Stack]
- Max Depth = 152 + Unknown Stack Size
+
- Call Chain = UART_RxISR_8BIT ⇒ HAL_UART_RxCpltCallback ⇒ tos_shell_input_byte ⇒ tos_sem_post ⇒ sem_do_post ⇒ pend_wakeup ⇒ pend_wakeup_all ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> HAL_UART_RxCpltCallback
+
+
[Address Reference Count : 1]- stm32l4xx_hal_uart.o(i.HAL_UART_Receive_IT)
+
+RCC_SetFlashLatencyFromMSIRange (Thumb, 148 bytes, Stack size 24 bytes, stm32l4xx_hal_rcc.o(i.RCC_SetFlashLatencyFromMSIRange))
+
[Stack]
- Max Depth = 24
- Call Chain = RCC_SetFlashLatencyFromMSIRange
+
+
[Calls]- >> HAL_PWREx_GetVoltageRange
+
+
[Called By]
+
+RCCEx_PLLSAI1_Config (Thumb, 376 bytes, Stack size 24 bytes, stm32l4xx_hal_rcc_ex.o(i.RCCEx_PLLSAI1_Config))
+
[Stack]
- Max Depth = 24
- Call Chain = RCCEx_PLLSAI1_Config
+
+
[Calls]
+
[Called By]- >> HAL_RCCEx_PeriphCLKConfig
+
+
+__NVIC_GetPriorityGrouping (Thumb, 10 bytes, Stack size 0 bytes, stm32l4xx_hal_cortex.o(i.__NVIC_GetPriorityGrouping))
+
[Called By]
- >> HAL_NVIC_SetPriority
+
+
+__NVIC_SetPriority (Thumb, 32 bytes, Stack size 8 bytes, stm32l4xx_hal_cortex.o(i.__NVIC_SetPriority))
+
[Stack]
- Max Depth = 8
- Call Chain = __NVIC_SetPriority
+
+
[Called By]- >> HAL_NVIC_SetPriority
+
- >> HAL_SYSTICK_Config
+
+
+DHT11_Mode_Out_PP (Thumb, 30 bytes, Stack size 24 bytes, dht11_bus.o(i.DHT11_Mode_Out_PP))
+
[Stack]
- Max Depth = 44
- Call Chain = DHT11_Mode_Out_PP ⇒ HAL_GPIO_Init
+
+
[Calls]
+
[Called By]
+
+knl_object_init (Thumb, 4 bytes, Stack size 0 bytes, tos_char_fifo.o(i.knl_object_init))
+
[Called By]
+
+knl_object_verify (Thumb, 16 bytes, Stack size 0 bytes, tos_char_fifo.o(i.knl_object_verify))
+
[Called By]
- >> tos_chr_fifo_destroy
+
- >> tos_chr_fifo_push
+
- >> tos_chr_fifo_pop
+
+
+__ffs (Thumb, 20 bytes, Stack size 8 bytes, tos_mmheap.o(i.__ffs))
+
[Stack]
- Max Depth = 24 + Unknown Stack Size
+
- Call Chain = __ffs ⇒ generic_fls ⇒ tos_cpu_clz
+
+
[Calls]
+
[Called By]
+
+__fls (Thumb, 14 bytes, Stack size 8 bytes, tos_mmheap.o(i.__fls))
+
[Stack]
- Max Depth = 24 + Unknown Stack Size
+
- Call Chain = __fls ⇒ generic_fls ⇒ tos_cpu_clz
+
+
[Calls]
+
[Called By]- >> mapping_search
+
- >> mapping_insert
+
+
+adjust_request_size (Thumb, 46 bytes, Stack size 8 bytes, tos_mmheap.o(i.adjust_request_size))
+
[Stack]
- Max Depth = 8
- Call Chain = adjust_request_size
+
+
[Called By]
+
+blk_absorb (Thumb, 30 bytes, Stack size 16 bytes, tos_mmheap.o(i.blk_absorb))
+
[Stack]
- Max Depth = 56
- Call Chain = blk_absorb ⇒ blk_link_next ⇒ blk_next
+
+
[Calls]- >> blk_size
+
- >> blk_link_next
+
+
[Called By]- >> blk_merge_prev
+
- >> blk_merge_next
+
+
+blk_can_split (Thumb, 28 bytes, Stack size 16 bytes, tos_mmheap.o(i.blk_can_split))
+
[Stack]
- Max Depth = 16
- Call Chain = blk_can_split
+
+
[Calls]
+
[Called By]
+
+blk_insert (Thumb, 32 bytes, Stack size 24 bytes, tos_mmheap.o(i.blk_insert))
+
[Stack]
- Max Depth = 72 + Unknown Stack Size
+
- Call Chain = blk_insert ⇒ mapping_insert ⇒ __fls ⇒ generic_fls ⇒ tos_cpu_clz
+
+
[Calls]- >> mapping_insert
+
- >> insert_free_block
+
- >> blk_size
+
+
[Called By]- >> tos_mmheap_free
+
- >> tos_mmheap_pool_add
+
- >> blk_trim_free
+
+
+blk_link_next (Thumb, 18 bytes, Stack size 16 bytes, tos_mmheap.o(i.blk_link_next))
+
[Stack]
- Max Depth = 40
- Call Chain = blk_link_next ⇒ blk_next
+
+
[Calls]
+
[Called By]- >> tos_mmheap_pool_add
+
- >> blk_trim_free
+
- >> blk_mark_as_free
+
- >> blk_absorb
+
+
+blk_locate_free (Thumb, 58 bytes, Stack size 24 bytes, tos_mmheap.o(i.blk_locate_free))
+
[Stack]
- Max Depth = 96 + Unknown Stack Size
+
- Call Chain = blk_locate_free ⇒ mapping_search ⇒ mapping_insert ⇒ __fls ⇒ generic_fls ⇒ tos_cpu_clz
+
+
[Calls]- >> remove_free_block
+
- >> mapping_search
+
- >> blk_search_suitable
+
+
[Called By]
+
+blk_mark_as_free (Thumb, 26 bytes, Stack size 16 bytes, tos_mmheap.o(i.blk_mark_as_free))
+
[Stack]
- Max Depth = 56
- Call Chain = blk_mark_as_free ⇒ blk_link_next ⇒ blk_next
+
+
[Calls]- >> blk_set_prev_free
+
- >> blk_set_free
+
- >> blk_link_next
+
+
[Called By]- >> tos_mmheap_free
+
- >> blk_split
+
+
+blk_mark_as_used (Thumb, 26 bytes, Stack size 16 bytes, tos_mmheap.o(i.blk_mark_as_used))
+
[Stack]
- Max Depth = 40
- Call Chain = blk_mark_as_used ⇒ blk_next
+
+
[Calls]- >> blk_set_used
+
- >> blk_set_prev_used
+
- >> blk_next
+
+
[Called By]
+
+blk_merge_next (Thumb, 42 bytes, Stack size 16 bytes, tos_mmheap.o(i.blk_merge_next))
+
[Stack]
- Max Depth = 88 + Unknown Stack Size
+
- Call Chain = blk_merge_next ⇒ blk_remove ⇒ mapping_insert ⇒ __fls ⇒ generic_fls ⇒ tos_cpu_clz
+
+
[Calls]- >> blk_remove
+
- >> blk_next
+
- >> blk_absorb
+
+
[Called By]
+
+blk_merge_prev (Thumb, 40 bytes, Stack size 16 bytes, tos_mmheap.o(i.blk_merge_prev))
+
[Stack]
- Max Depth = 88 + Unknown Stack Size
+
- Call Chain = blk_merge_prev ⇒ blk_remove ⇒ mapping_insert ⇒ __fls ⇒ generic_fls ⇒ tos_cpu_clz
+
+
[Calls]- >> blk_remove
+
- >> blk_absorb
+
+
[Called By]
+
+blk_next (Thumb, 36 bytes, Stack size 24 bytes, tos_mmheap.o(i.blk_next))
+
[Stack]
- Max Depth = 24
- Call Chain = blk_next
+
+
[Calls]- >> offset_to_blk
+
- >> blk_to_ptr
+
- >> blk_size
+
+
[Called By]- >> blk_merge_next
+
- >> blk_mark_as_used
+
- >> blk_link_next
+
+
+blk_prepare_used (Thumb, 34 bytes, Stack size 16 bytes, tos_mmheap.o(i.blk_prepare_used))
+
[Stack]
- Max Depth = 112 + Unknown Stack Size
+
- Call Chain = blk_prepare_used ⇒ blk_trim_free ⇒ blk_split ⇒ blk_mark_as_free ⇒ blk_link_next ⇒ blk_next
+
+
[Calls]- >> blk_trim_free
+
- >> blk_to_ptr
+
- >> blk_mark_as_used
+
+
[Called By]
+
+blk_remove (Thumb, 32 bytes, Stack size 24 bytes, tos_mmheap.o(i.blk_remove))
+
[Stack]
- Max Depth = 72 + Unknown Stack Size
+
- Call Chain = blk_remove ⇒ mapping_insert ⇒ __fls ⇒ generic_fls ⇒ tos_cpu_clz
+
+
[Calls]- >> remove_free_block
+
- >> mapping_insert
+
- >> blk_size
+
+
[Called By]- >> blk_merge_prev
+
- >> blk_merge_next
+
+
+blk_search_suitable (Thumb, 104 bytes, Stack size 32 bytes, tos_mmheap.o(i.blk_search_suitable))
+
[Stack]
- Max Depth = 56 + Unknown Stack Size
+
- Call Chain = blk_search_suitable ⇒ __ffs ⇒ generic_fls ⇒ tos_cpu_clz
+
+
[Calls]
+
[Called By]
+
+blk_set_free (Thumb, 10 bytes, Stack size 0 bytes, tos_mmheap.o(i.blk_set_free))
+
[Called By]
- >> tos_mmheap_pool_add
+
- >> blk_mark_as_free
+
+
+blk_set_prev_free (Thumb, 10 bytes, Stack size 0 bytes, tos_mmheap.o(i.blk_set_prev_free))
+
[Called By]
- >> tos_mmheap_pool_add
+
- >> blk_trim_free
+
- >> blk_mark_as_free
+
+
+blk_set_prev_used (Thumb, 10 bytes, Stack size 0 bytes, tos_mmheap.o(i.blk_set_prev_used))
+
[Called By]
- >> tos_mmheap_pool_add
+
- >> blk_mark_as_used
+
+
+blk_set_size (Thumb, 12 bytes, Stack size 0 bytes, tos_mmheap.o(i.blk_set_size))
+
[Called By]
- >> tos_mmheap_pool_add
+
- >> blk_split
+
+
+blk_set_used (Thumb, 10 bytes, Stack size 0 bytes, tos_mmheap.o(i.blk_set_used))
+
[Called By]
- >> tos_mmheap_pool_add
+
- >> blk_mark_as_used
+
+
+blk_size (Thumb, 10 bytes, Stack size 0 bytes, tos_mmheap.o(i.blk_size))
+
[Called By]
- >> blk_split
+
- >> blk_remove
+
- >> blk_next
+
- >> blk_insert
+
- >> blk_can_split
+
- >> blk_absorb
+
+
+blk_split (Thumb, 62 bytes, Stack size 24 bytes, tos_mmheap.o(i.blk_split))
+
[Stack]
- Max Depth = 80
- Call Chain = blk_split ⇒ blk_mark_as_free ⇒ blk_link_next ⇒ blk_next
+
+
[Calls]- >> offset_to_blk
+
- >> blk_to_ptr
+
- >> blk_size
+
- >> blk_set_size
+
- >> blk_mark_as_free
+
+
[Called By]
+
+blk_to_ptr (Thumb, 8 bytes, Stack size 0 bytes, tos_mmheap.o(i.blk_to_ptr))
+
[Called By]
- >> blk_split
+
- >> blk_prepare_used
+
- >> blk_next
+
+
+blk_trim_free (Thumb, 46 bytes, Stack size 16 bytes, tos_mmheap.o(i.blk_trim_free))
+
[Stack]
- Max Depth = 96 + Unknown Stack Size
+
- Call Chain = blk_trim_free ⇒ blk_split ⇒ blk_mark_as_free ⇒ blk_link_next ⇒ blk_next
+
+
[Calls]- >> blk_split
+
- >> blk_set_prev_free
+
- >> blk_link_next
+
- >> blk_insert
+
- >> blk_can_split
+
+
[Called By]
+
+generic_fls (Thumb, 16 bytes, Stack size 8 bytes, tos_mmheap.o(i.generic_fls))
+
[Stack]
- Max Depth = 16 + Unknown Stack Size
+
- Call Chain = generic_fls ⇒ tos_cpu_clz
+
+
[Calls]
+
[Called By]
+
+insert_free_block (Thumb, 74 bytes, Stack size 12 bytes, tos_mmheap.o(i.insert_free_block))
+
[Stack]
- Max Depth = 12
- Call Chain = insert_free_block
+
+
[Called By]
+
+mapping_insert (Thumb, 58 bytes, Stack size 24 bytes, tos_mmheap.o(i.mapping_insert))
+
[Stack]
- Max Depth = 48 + Unknown Stack Size
+
- Call Chain = mapping_insert ⇒ __fls ⇒ generic_fls ⇒ tos_cpu_clz
+
+
[Calls]
+
[Called By]- >> mapping_search
+
- >> blk_remove
+
- >> blk_insert
+
+
+mapping_search (Thumb, 46 bytes, Stack size 24 bytes, tos_mmheap.o(i.mapping_search))
+
[Stack]
- Max Depth = 72 + Unknown Stack Size
+
- Call Chain = mapping_search ⇒ mapping_insert ⇒ __fls ⇒ generic_fls ⇒ tos_cpu_clz
+
+
[Calls]- >> mapping_insert
+
- >> __fls
+
+
[Called By]
+
+mmheap_ctl_init (Thumb, 88 bytes, Stack size 0 bytes, tos_mmheap.o(i.mmheap_ctl_init))
+
[Called By]
- >> mmheap_init_with_pool
+
+
+mmheap_pool_is_exist (Thumb, 38 bytes, Stack size 0 bytes, tos_mmheap.o(i.mmheap_pool_is_exist))
+
[Called By]
+
+offset_to_blk (Thumb, 6 bytes, Stack size 0 bytes, tos_mmheap.o(i.offset_to_blk))
+
[Called By]
- >> tos_mmheap_pool_add
+
- >> blk_split
+
- >> blk_next
+
+
+remove_free_block (Thumb, 92 bytes, Stack size 16 bytes, tos_mmheap.o(i.remove_free_block))
+
[Stack]
- Max Depth = 16
- Call Chain = remove_free_block
+
+
[Called By]- >> blk_remove
+
- >> blk_locate_free
+
+
+mutex_old_owner_release (Thumb, 74 bytes, Stack size 16 bytes, tos_mutex.o(i.mutex_old_owner_release))
+
[Stack]
- Max Depth = 80 + Unknown Stack Size
+
- Call Chain = mutex_old_owner_release ⇒ tos_task_prio_change ⇒ readyqueue_remove ⇒ readyqueue_prio_highest_get ⇒ tos_cpu_clz
+
+
[Calls]- >> tos_task_prio_change
+
+
[Called By]
+
+pend_list_add (Thumb, 76 bytes, Stack size 12 bytes, tos_pend.o(i.pend_list_add))
+
[Stack]
- Max Depth = 12
- Call Chain = pend_list_add
+
+
[Called By]- >> pend_task_block
+
- >> pend_list_adjust
+
+
+tos_list_del (Thumb, 12 bytes, Stack size 0 bytes, tos_pend.o(i.tos_list_del))
+
[Called By]
- >> pend_list_remove
+
- >> pend_list_adjust
+
+
+tos_list_empty (Thumb, 16 bytes, Stack size 0 bytes, tos_pend.o(i.tos_list_empty))
+
[Called By]
- >> pend_is_nopending
+
- >> pend_highest_pending_prio_get
+
+
+tos_list_init (Thumb, 6 bytes, Stack size 0 bytes, tos_pend.o(i.tos_list_init))
+
[Called By]
- >> pend_object_init
+
- >> pend_object_deinit
+
+
+knl_object_init (Thumb, 4 bytes, Stack size 0 bytes, tos_ring_queue.o(i.knl_object_init))
+
[Called By]
+
+knl_object_verify (Thumb, 16 bytes, Stack size 0 bytes, tos_ring_queue.o(i.knl_object_verify))
+
[Called By]
- >> tos_ring_q_is_full
+
- >> tos_ring_q_is_empty
+
- >> tos_ring_q_enqueue
+
- >> tos_ring_q_destroy
+
- >> tos_ring_q_dequeue
+
+
+_list_add (Thumb, 10 bytes, Stack size 0 bytes, tos_sched.o(i._list_add))
+
[Called By]
- >> readyqueue_add_head
+
- >> tos_list_add_tail
+
+
+_list_del (Thumb, 6 bytes, Stack size 0 bytes, tos_sched.o(i._list_del))
+
[Called By]
+
+readyqueue_prio_highest_get (Thumb, 36 bytes, Stack size 16 bytes, tos_sched.o(i.readyqueue_prio_highest_get))
+
[Stack]
- Max Depth = 24 + Unknown Stack Size
+
- Call Chain = readyqueue_prio_highest_get ⇒ tos_cpu_clz
+
+
[Calls]
+
[Called By]
+
+readyqueue_prio_mark (Thumb, 56 bytes, Stack size 0 bytes, tos_sched.o(i.readyqueue_prio_mark))
+
[Called By]
- >> readyqueue_add_tail
+
- >> readyqueue_add_head
+
+
+tos_list_add_tail (Thumb, 18 bytes, Stack size 16 bytes, tos_sched.o(i.tos_list_add_tail))
+
[Stack]
- Max Depth = 16
- Call Chain = tos_list_add_tail
+
+
[Calls]
+
[Called By]
+
+tos_list_empty (Thumb, 16 bytes, Stack size 0 bytes, tos_sched.o(i.tos_list_empty))
+
[Called By]
- >> readyqueue_add_tail
+
- >> readyqueue_add_head
+
- >> readyqueue_remove
+
+
+knl_object_verify (Thumb, 16 bytes, Stack size 0 bytes, tos_sem.o(i.knl_object_verify))
+
[Called By]
- >> tos_sem_pend
+
- >> tos_sem_destroy
+
- >> sem_do_post
+
+
+sem_do_post (Thumb, 140 bytes, Stack size 16 bytes, tos_sem.o(i.sem_do_post))
+
[Stack]
- Max Depth = 112 + Unknown Stack Size
+
- Call Chain = sem_do_post ⇒ pend_wakeup ⇒ pend_wakeup_all ⇒ pend_task_wakeup ⇒ readyqueue_add ⇒ readyqueue_add_tail ⇒ tos_list_add_tail
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> pend_is_nopending
+
- >> knl_sched
+
- >> knl_object_verify
+
- >> pend_wakeup
+
+
[Called By]
+
+knl_idle_entry (Thumb, 10 bytes, Stack size 0 bytes, tos_sys.o(i.knl_idle_entry))
+
[Stack]
- Max Depth = 128 + Unknown Stack Size
+
- Call Chain = knl_idle_entry ⇒ task_free_all ⇒ task_free ⇒ tos_mmheap_free ⇒ blk_merge_prev ⇒ blk_remove ⇒ mapping_insert ⇒ __fls ⇒ generic_fls ⇒ tos_cpu_clz
+
+
[Calls]
+
[Address Reference Count : 1]- tos_sys.o(i.knl_idle_init)
+
+knl_object_verify (Thumb, 16 bytes, Stack size 0 bytes, tos_task.o(i.knl_object_verify))
+
[Called By]
- >> tos_task_prio_change
+
- >> tos_task_destroy
+
+
+task_default_walker (Thumb, 166 bytes, Stack size 16 bytes, tos_task.o(i.task_default_walker))
+
[Stack]
- Max Depth = 40
- Call Chain = task_default_walker ⇒ __2printf
+
+
[Calls]
+
[Address Reference Count : 1]- tos_task.o(i.tos_task_info_display)
+
+task_do_destroy (Thumb, 132 bytes, Stack size 16 bytes, tos_task.o(i.task_do_destroy))
+
[Stack]
- Max Depth = 120 + Unknown Stack Size
+
- Call Chain = task_do_destroy ⇒ task_mutex_release ⇒ mutex_release ⇒ mutex_old_owner_release ⇒ tos_task_prio_change ⇒ readyqueue_remove ⇒ readyqueue_prio_highest_get ⇒ tos_cpu_clz
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> knl_sched
+
- >> tick_list_remove
+
- >> readyqueue_remove
+
- >> pend_list_remove
+
- >> tos_list_empty
+
- >> tos_list_del
+
- >> task_state_is_ready
+
- >> task_reset
+
- >> task_mutex_release
+
- >> knl_is_idle
+
+
[Called By]
+
+task_exit (Thumb, 10 bytes, Stack size 8 bytes, tos_task.o(i.task_exit))
+
[Stack]
- Max Depth = 136 + Unknown Stack Size
+
- Call Chain = task_exit ⇒ tos_task_destroy ⇒ task_do_destroy ⇒ task_mutex_release ⇒ mutex_release ⇒ mutex_old_owner_release ⇒ tos_task_prio_change ⇒ readyqueue_remove ⇒ readyqueue_prio_highest_get ⇒ tos_cpu_clz
+
+
[Calls]
+
[Address Reference Count : 1]- tos_task.o(i.tos_task_create)
+
+task_free (Thumb, 18 bytes, Stack size 8 bytes, tos_task.o(i.task_free))
+
[Stack]
- Max Depth = 112 + Unknown Stack Size
+
- Call Chain = task_free ⇒ tos_mmheap_free ⇒ blk_merge_prev ⇒ blk_remove ⇒ mapping_insert ⇒ __fls ⇒ generic_fls ⇒ tos_cpu_clz
+
+
[Calls]
+
[Called By]
+
+task_highest_pending_prio_get (Thumb, 54 bytes, Stack size 24 bytes, tos_task.o(i.task_highest_pending_prio_get))
+
[Stack]
- Max Depth = 40
- Call Chain = task_highest_pending_prio_get ⇒ pend_highest_pending_prio_get
+
+
[Calls]- >> pend_highest_pending_prio_get
+
+
[Called By]- >> tos_task_prio_change
+
+
+task_mutex_release (Thumb, 46 bytes, Stack size 16 bytes, tos_task.o(i.task_mutex_release))
+
[Stack]
- Max Depth = 104 + Unknown Stack Size
+
- Call Chain = task_mutex_release ⇒ mutex_release ⇒ mutex_old_owner_release ⇒ tos_task_prio_change ⇒ readyqueue_remove ⇒ readyqueue_prio_highest_get ⇒ tos_cpu_clz
+
+
[Calls]
+
[Called By]
+
+task_reset (Thumb, 80 bytes, Stack size 8 bytes, tos_task.o(i.task_reset))
+
[Stack]
- Max Depth = 8
- Call Chain = task_reset
+
+
[Calls]
+
[Called By]- >> task_do_destroy
+
- >> tos_task_create
+
+
+task_state_is_ready (Thumb, 14 bytes, Stack size 0 bytes, tos_task.o(i.task_state_is_ready))
+
[Called By]
- >> tos_task_prio_change
+
- >> task_do_destroy
+
+
+tos_list_add (Thumb, 14 bytes, Stack size 0 bytes, tos_task.o(i.tos_list_add))
+
[Called By]
+
+tos_list_del (Thumb, 12 bytes, Stack size 0 bytes, tos_task.o(i.tos_list_del))
+
[Called By]
- >> task_do_destroy
+
- >> task_free_all
+
+
+tos_list_empty (Thumb, 16 bytes, Stack size 0 bytes, tos_task.o(i.tos_list_empty))
+
[Called By]
- >> tos_task_prio_change
+
- >> task_do_destroy
+
+
+tos_list_init (Thumb, 6 bytes, Stack size 0 bytes, tos_task.o(i.tos_list_init))
+
[Called By]
+
+tick_task_place (Thumb, 196 bytes, Stack size 40 bytes, tos_tick.o(i.tick_task_place))
+
[Stack]
- Max Depth = 48 + Unknown Stack Size
+
- Call Chain = tick_task_place ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
+
[Called By]
+
+tick_task_takeoff (Thumb, 126 bytes, Stack size 16 bytes, tos_tick.o(i.tick_task_takeoff))
+
[Stack]
- Max Depth = 24 + Unknown Stack Size
+
- Call Chain = tick_task_takeoff ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
- >> tos_list_empty
+
+
[Called By]
+
+tos_list_empty (Thumb, 16 bytes, Stack size 0 bytes, tos_tick.o(i.tos_list_empty))
+
[Called By]
- >> tick_update
+
- >> tick_task_takeoff
+
+
+timer_place (Thumb, 136 bytes, Stack size 16 bytes, tos_timer.o(i.timer_place))
+
[Stack]
- Max Depth = 24 + Unknown Stack Size
+
- Call Chain = timer_place ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
+
[Called By]
+
+timer_takeoff (Thumb, 110 bytes, Stack size 24 bytes, tos_timer.o(i.timer_takeoff))
+
[Stack]
- Max Depth = 32 + Unknown Stack Size
+
- Call Chain = timer_takeoff ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tos_cpu_cpsr_save
+
- >> tos_cpu_cpsr_restore
+
+
[Called By]
+
+__NVIC_SetPriority (Thumb, 32 bytes, Stack size 8 bytes, port_c.o(i.__NVIC_SetPriority))
+
[Stack]
- Max Depth = 8
- Call Chain = __NVIC_SetPriority
+
+
[Called By]- >> port_systick_priority_set
+
- >> port_systick_config
+
+
+shell_cmd_do_process (Thumb, 36 bytes, Stack size 16 bytes, tos_shell.o(i.shell_cmd_do_process))
+
[Stack]
- Max Depth = 64
- Call Chain = shell_cmd_do_process ⇒ tos_shell_printf ⇒ vsnprintf
+
+
[Calls]- >> tos_shell_printf
+
- >> shell_cmd_find
+
+
[Called By]
+
+shell_cmd_process (Thumb, 114 bytes, Stack size 16 bytes, tos_shell.o(i.shell_cmd_process))
+
[Stack]
- Max Depth = 80
- Call Chain = shell_cmd_process ⇒ shell_cmd_do_process ⇒ tos_shell_printf ⇒ vsnprintf
+
+
[Calls]- >> __2printf
+
- >> shell_cmd_do_process
+
+
[Called By]
+
+shell_getchar (Thumb, 48 bytes, Stack size 16 bytes, tos_shell.o(i.shell_getchar))
+
[Stack]
- Max Depth = 128 + Unknown Stack Size
+
- Call Chain = shell_getchar ⇒ tos_sem_pend ⇒ pend_task_block ⇒ tick_list_add ⇒ tick_task_place ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tos_chr_fifo_pop
+
- >> tos_sem_pend
+
+
[Called By]
+
+shell_parser (Thumb, 24 bytes, Stack size 0 bytes, tos_shell.o(i.shell_parser))
+
[Stack]
- Max Depth = 144 + Unknown Stack Size
+
- Call Chain = shell_parser ⇒ shell_readline ⇒ shell_getchar ⇒ tos_sem_pend ⇒ pend_task_block ⇒ tick_list_add ⇒ tick_task_place ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> shell_readline
+
- >> shell_prompt
+
- >> shell_cmd_process
+
+
[Address Reference Count : 1]- tos_shell.o(i.tos_shell_init)
+
+shell_prompt (Thumb, 10 bytes, Stack size 8 bytes, tos_shell.o(i.shell_prompt))
+
[Stack]
- Max Depth = 56
- Call Chain = shell_prompt ⇒ tos_shell_printf ⇒ vsnprintf
+
+
[Calls]
+
[Called By]
+
+shell_readline (Thumb, 88 bytes, Stack size 16 bytes, tos_shell.o(i.shell_readline))
+
[Stack]
- Max Depth = 144 + Unknown Stack Size
+
- Call Chain = shell_readline ⇒ shell_getchar ⇒ tos_sem_pend ⇒ pend_task_block ⇒ tick_list_add ⇒ tick_task_place ⇒ tos_cpu_cpsr_save
+
+
[Calls]
+
[Called By]
+
+cmd_help (Thumb, 52 bytes, Stack size 24 bytes, tos_shell_commands.o(i.cmd_help))
+
[Stack]
- Max Depth = 72
- Call Chain = cmd_help ⇒ tos_shell_printf ⇒ vsnprintf
+
+
[Calls]
+
[Address Reference Count : 1]- tos_shell_commands.o(.constdata)
+
+cmd_ps (Thumb, 14 bytes, Stack size 16 bytes, tos_shell_commands.o(i.cmd_ps))
+
[Stack]
- Max Depth = 48 + Unknown Stack Size
+
- Call Chain = cmd_ps ⇒ tos_task_info_display ⇒ tos_task_walkthru ⇒ tos_cpu_cpsr_save
+
+
[Calls]- >> tos_task_info_display
+
+
[Address Reference Count : 1]- tos_shell_commands.o(.constdata)
+
+tos_slist_add_head (Thumb, 8 bytes, Stack size 0 bytes, tos_shell_commands.o(i.tos_slist_add_head))
+
[Called By]
- >> shell_cmd_set_regiser
+
- >> shell_cmd_init
+
+
+tos_slist_contains (Thumb, 26 bytes, Stack size 0 bytes, tos_shell_commands.o(i.tos_slist_contains))
+
[Called By]
- >> shell_cmd_set_regiser
+
+
+errno_knl2cmsis (Thumb, 12 bytes, Stack size 0 bytes, cmsis_os.o(i.errno_knl2cmsis))
+
[Called By]
- >> osKernelStart
+
- >> osKernelInitialize
+
+
+priority_cmsis2knl (Thumb, 18 bytes, Stack size 0 bytes, cmsis_os.o(i.priority_cmsis2knl))
+
[Called By]
+
+_fp_digits (Thumb, 366 bytes, Stack size 64 bytes, printfa.o(i._fp_digits), UNUSED)
+
[Calls]
- >> __aeabi_dmul
+
- >> __aeabi_ddiv
+
- >> __aeabi_dadd
+
- >> __aeabi_d2ulz
+
- >> __aeabi_cdrcmple
+
- >> __aeabi_uldivmod
+
+
[Called By]
+
+_printf_core (Thumb, 1744 bytes, Stack size 136 bytes, printfa.o(i._printf_core), UNUSED)
+
[Calls]
- >> __aeabi_uidivmod
+
- >> _printf_pre_padding
+
- >> _printf_post_padding
+
- >> _fp_digits
+
- >> __aeabi_uldivmod
+
+
[Called By]- >> __0vsnprintf
+
- >> __0printf
+
+
+_printf_post_padding (Thumb, 36 bytes, Stack size 24 bytes, printfa.o(i._printf_post_padding), UNUSED)
+
[Called By]
+
+_printf_pre_padding (Thumb, 46 bytes, Stack size 24 bytes, printfa.o(i._printf_pre_padding), UNUSED)
+
[Called By]
+
+_snputc (Thumb, 22 bytes, Stack size 0 bytes, printfa.o(i._snputc))
+
[Address Reference Count : 1]
- printfa.o(i.__0vsnprintf)
+
+
+Undefined Global Symbols
+
diff --git a/board/TencentOS_tiny_EVB_MX_Plus/KEIL/shell/obj/TencentOS_tiny.sct b/board/TencentOS_tiny_EVB_MX_Plus/KEIL/shell/obj/TencentOS_tiny.sct
new file mode 100644
index 00000000..66acf7f8
--- /dev/null
+++ b/board/TencentOS_tiny_EVB_MX_Plus/KEIL/shell/obj/TencentOS_tiny.sct
@@ -0,0 +1,16 @@
+; *************************************************************
+; *** Scatter-Loading Description File generated by uVision ***
+; *************************************************************
+
+LR_IROM1 0x08000000 0x00040000 { ; load region size_region
+ ER_IROM1 0x08000000 0x00040000 { ; load address = execution address
+ *.o (RESET, +First)
+ *(InRoot$$Sections)
+ .ANY (+RO)
+ .ANY (+XO)
+ }
+ RW_IRAM1 0x20000000 0x00010000 { ; RW data
+ .ANY (+RW +ZI)
+ }
+}
+
diff --git a/board/TencentOS_tiny_EVB_MX_Plus/KEIL/shell/startup_stm32l431xx.s b/board/TencentOS_tiny_EVB_MX_Plus/KEIL/shell/startup_stm32l431xx.s
new file mode 100644
index 00000000..6a5c15a5
--- /dev/null
+++ b/board/TencentOS_tiny_EVB_MX_Plus/KEIL/shell/startup_stm32l431xx.s
@@ -0,0 +1,404 @@
+;********************** COPYRIGHT(c) 2017 STMicroelectronics ******************
+;* File Name : startup_stm32l431xx.s
+;* Author : MCD Application Team
+;* Description : STM32L431xx Ultra Low Power devices vector table for MDK-ARM toolchain.
+;* This module performs:
+;* - Set the initial SP
+;* - Set the initial PC == Reset_Handler
+;* - Set the vector table entries with the exceptions ISR address
+;* - Branches to __main in the C library (which eventually
+;* calls main()).
+;* After Reset the Cortex-M4 processor is in Thread mode,
+;* priority is Privileged, and the Stack is set to Main.
+;* <<< Use Configuration Wizard in Context Menu >>>
+;*******************************************************************************
+;*
+;* Redistribution and use in source and binary forms, with or without modification,
+;* are permitted provided that the following conditions are met:
+;* 1. Redistributions of source code must retain the above copyright notice,
+;* this list of conditions and the following disclaimer.
+;* 2. Redistributions in binary form must reproduce the above copyright notice,
+;* this list of conditions and the following disclaimer in the documentation
+;* and/or other materials provided with the distribution.
+;* 3. Neither the name of STMicroelectronics nor the names of its contributors
+;* may be used to endorse or promote products derived from this software
+;* without specific prior written permission.
+;*
+;* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+;* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+;* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+;* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+;* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+;* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+;* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+;* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+;* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+;*
+;*******************************************************************************
+;
+; Amount of memory (in bytes) allocated for Stack
+; Tailor this value to your application needs
+; Stack Configuration
+; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
+;
+
+Stack_Size EQU 0x100
+
+ AREA STACK, NOINIT, READWRITE, ALIGN=3
+Stack_Mem SPACE Stack_Size
+__initial_sp
+
+
+; Heap Configuration
+; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
+;
+
+Heap_Size EQU 0x100
+
+ AREA HEAP, NOINIT, READWRITE, ALIGN=3
+__heap_base
+Heap_Mem SPACE Heap_Size
+__heap_limit
+
+ PRESERVE8
+ THUMB
+
+
+; Vector Table Mapped to Address 0 at Reset
+ AREA RESET, DATA, READONLY
+ EXPORT __Vectors
+ EXPORT __Vectors_End
+ EXPORT __Vectors_Size
+
+__Vectors DCD __initial_sp ; Top of Stack
+ DCD Reset_Handler ; Reset Handler
+ DCD NMI_Handler ; NMI Handler
+ DCD HardFault_Handler ; Hard Fault Handler
+ DCD MemManage_Handler ; MPU Fault Handler
+ DCD BusFault_Handler ; Bus Fault Handler
+ DCD UsageFault_Handler ; Usage Fault Handler
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD SVC_Handler ; SVCall Handler
+ DCD DebugMon_Handler ; Debug Monitor Handler
+ DCD 0 ; Reserved
+ DCD PendSV_Handler ; PendSV Handler
+ DCD SysTick_Handler ; SysTick Handler
+
+ ; External Interrupts
+ DCD WWDG_IRQHandler ; Window WatchDog
+ DCD PVD_PVM_IRQHandler ; PVD/PVM1/PVM2/PVM3/PVM4 through EXTI Line detection
+ DCD TAMP_STAMP_IRQHandler ; Tamper and TimeStamps through the EXTI line
+ DCD RTC_WKUP_IRQHandler ; RTC Wakeup through the EXTI line
+ DCD FLASH_IRQHandler ; FLASH
+ DCD RCC_IRQHandler ; RCC
+ DCD EXTI0_IRQHandler ; EXTI Line0
+ DCD EXTI1_IRQHandler ; EXTI Line1
+ DCD EXTI2_IRQHandler ; EXTI Line2
+ DCD EXTI3_IRQHandler ; EXTI Line3
+ DCD EXTI4_IRQHandler ; EXTI Line4
+ DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1
+ DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2
+ DCD DMA1_Channel3_IRQHandler ; DMA1 Channel 3
+ DCD DMA1_Channel4_IRQHandler ; DMA1 Channel 4
+ DCD DMA1_Channel5_IRQHandler ; DMA1 Channel 5
+ DCD DMA1_Channel6_IRQHandler ; DMA1 Channel 6
+ DCD DMA1_Channel7_IRQHandler ; DMA1 Channel 7
+ DCD ADC1_IRQHandler ; ADC1
+ DCD CAN1_TX_IRQHandler ; CAN1 TX
+ DCD CAN1_RX0_IRQHandler ; CAN1 RX0
+ DCD CAN1_RX1_IRQHandler ; CAN1 RX1
+ DCD CAN1_SCE_IRQHandler ; CAN1 SCE
+ DCD EXTI9_5_IRQHandler ; External Line[9:5]s
+ DCD TIM1_BRK_TIM15_IRQHandler ; TIM1 Break and TIM15
+ DCD TIM1_UP_TIM16_IRQHandler ; TIM1 Update and TIM16
+ DCD TIM1_TRG_COM_IRQHandler ; TIM1 Trigger and Commutation
+ DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare
+ DCD TIM2_IRQHandler ; TIM2
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD I2C1_EV_IRQHandler ; I2C1 Event
+ DCD I2C1_ER_IRQHandler ; I2C1 Error
+ DCD I2C2_EV_IRQHandler ; I2C2 Event
+ DCD I2C2_ER_IRQHandler ; I2C2 Error
+ DCD SPI1_IRQHandler ; SPI1
+ DCD SPI2_IRQHandler ; SPI2
+ DCD USART1_IRQHandler ; USART1
+ DCD USART2_IRQHandler ; USART2
+ DCD USART3_IRQHandler ; USART3
+ DCD EXTI15_10_IRQHandler ; External Line[15:10]
+ DCD RTC_Alarm_IRQHandler ; RTC Alarm (A and B) through EXTI Line
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD SDMMC1_IRQHandler ; SDMMC1
+ DCD 0 ; Reserved
+ DCD SPI3_IRQHandler ; SPI3
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD TIM6_DAC_IRQHandler ; TIM6 and DAC1&2 underrun errors
+ DCD TIM7_IRQHandler ; TIM7
+ DCD DMA2_Channel1_IRQHandler ; DMA2 Channel 1
+ DCD DMA2_Channel2_IRQHandler ; DMA2 Channel 2
+ DCD DMA2_Channel3_IRQHandler ; DMA2 Channel 3
+ DCD DMA2_Channel4_IRQHandler ; DMA2 Channel 4
+ DCD DMA2_Channel5_IRQHandler ; DMA2 Channel 5
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD COMP_IRQHandler ; COMP Interrupt
+ DCD LPTIM1_IRQHandler ; LP TIM1 interrupt
+ DCD LPTIM2_IRQHandler ; LP TIM2 interrupt
+ DCD 0 ; Reserved
+ DCD DMA2_Channel6_IRQHandler ; DMA2 Channel 6
+ DCD DMA2_Channel7_IRQHandler ; DMA2 Channel 7
+ DCD LPUART1_IRQHandler ; LP UART1 interrupt
+ DCD QUADSPI_IRQHandler ; Quad SPI global interrupt
+ DCD I2C3_EV_IRQHandler ; I2C3 event
+ DCD I2C3_ER_IRQHandler ; I2C3 error
+ DCD SAI1_IRQHandler ; Serial Audio Interface 1 global interrupt
+ DCD 0 ; Reserved
+ DCD SWPMI1_IRQHandler ; Serial Wire Interface 1 global interrupt
+ DCD TSC_IRQHandler ; Touch Sense Controller global interrupt
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD RNG_IRQHandler ; RNG global interrupt
+ DCD FPU_IRQHandler ; FPU
+ DCD CRS_IRQHandler ; CRS interrupt
+
+__Vectors_End
+
+__Vectors_Size EQU __Vectors_End - __Vectors
+
+ AREA |.text|, CODE, READONLY
+
+; Reset handler
+Reset_Handler PROC
+ EXPORT Reset_Handler [WEAK]
+ IMPORT SystemInit
+ IMPORT __main
+
+ LDR R0, =SystemInit
+ BLX R0
+ LDR R0, =__main
+ BX R0
+ ENDP
+
+; Dummy Exception Handlers (infinite loops which can be modified)
+
+NMI_Handler PROC
+ EXPORT NMI_Handler [WEAK]
+ B .
+ ENDP
+HardFault_Handler\
+ PROC
+ EXPORT HardFault_Handler [WEAK]
+ B .
+ ENDP
+MemManage_Handler\
+ PROC
+ EXPORT MemManage_Handler [WEAK]
+ B .
+ ENDP
+BusFault_Handler\
+ PROC
+ EXPORT BusFault_Handler [WEAK]
+ B .
+ ENDP
+UsageFault_Handler\
+ PROC
+ EXPORT UsageFault_Handler [WEAK]
+ B .
+ ENDP
+SVC_Handler PROC
+ EXPORT SVC_Handler [WEAK]
+ B .
+ ENDP
+DebugMon_Handler\
+ PROC
+ EXPORT DebugMon_Handler [WEAK]
+ B .
+ ENDP
+PendSV_Handler PROC
+ EXPORT PendSV_Handler [WEAK]
+ B .
+ ENDP
+SysTick_Handler PROC
+ EXPORT SysTick_Handler [WEAK]
+ B .
+ ENDP
+
+Default_Handler PROC
+
+ EXPORT WWDG_IRQHandler [WEAK]
+ EXPORT PVD_PVM_IRQHandler [WEAK]
+ EXPORT TAMP_STAMP_IRQHandler [WEAK]
+ EXPORT RTC_WKUP_IRQHandler [WEAK]
+ EXPORT FLASH_IRQHandler [WEAK]
+ EXPORT RCC_IRQHandler [WEAK]
+ EXPORT EXTI0_IRQHandler [WEAK]
+ EXPORT EXTI1_IRQHandler [WEAK]
+ EXPORT EXTI2_IRQHandler [WEAK]
+ EXPORT EXTI3_IRQHandler [WEAK]
+ EXPORT EXTI4_IRQHandler [WEAK]
+ EXPORT DMA1_Channel1_IRQHandler [WEAK]
+ EXPORT DMA1_Channel2_IRQHandler [WEAK]
+ EXPORT DMA1_Channel3_IRQHandler [WEAK]
+ EXPORT DMA1_Channel4_IRQHandler [WEAK]
+ EXPORT DMA1_Channel5_IRQHandler [WEAK]
+ EXPORT DMA1_Channel6_IRQHandler [WEAK]
+ EXPORT DMA1_Channel7_IRQHandler [WEAK]
+ EXPORT ADC1_IRQHandler [WEAK]
+ EXPORT CAN1_TX_IRQHandler [WEAK]
+ EXPORT CAN1_RX0_IRQHandler [WEAK]
+ EXPORT CAN1_RX1_IRQHandler [WEAK]
+ EXPORT CAN1_SCE_IRQHandler [WEAK]
+ EXPORT EXTI9_5_IRQHandler [WEAK]
+ EXPORT TIM1_BRK_TIM15_IRQHandler [WEAK]
+ EXPORT TIM1_UP_TIM16_IRQHandler [WEAK]
+ EXPORT TIM1_TRG_COM_IRQHandler [WEAK]
+ EXPORT TIM1_CC_IRQHandler [WEAK]
+ EXPORT TIM2_IRQHandler [WEAK]
+ EXPORT I2C1_EV_IRQHandler [WEAK]
+ EXPORT I2C1_ER_IRQHandler [WEAK]
+ EXPORT I2C2_EV_IRQHandler [WEAK]
+ EXPORT I2C2_ER_IRQHandler [WEAK]
+ EXPORT SPI1_IRQHandler [WEAK]
+ EXPORT SPI2_IRQHandler [WEAK]
+ EXPORT USART1_IRQHandler [WEAK]
+ EXPORT USART2_IRQHandler [WEAK]
+ EXPORT USART3_IRQHandler [WEAK]
+ EXPORT EXTI15_10_IRQHandler [WEAK]
+ EXPORT RTC_Alarm_IRQHandler [WEAK]
+ EXPORT SDMMC1_IRQHandler [WEAK]
+ EXPORT SPI3_IRQHandler [WEAK]
+ EXPORT TIM6_DAC_IRQHandler [WEAK]
+ EXPORT TIM7_IRQHandler [WEAK]
+ EXPORT DMA2_Channel1_IRQHandler [WEAK]
+ EXPORT DMA2_Channel2_IRQHandler [WEAK]
+ EXPORT DMA2_Channel3_IRQHandler [WEAK]
+ EXPORT DMA2_Channel4_IRQHandler [WEAK]
+ EXPORT DMA2_Channel5_IRQHandler [WEAK]
+ EXPORT COMP_IRQHandler [WEAK]
+ EXPORT LPTIM1_IRQHandler [WEAK]
+ EXPORT LPTIM2_IRQHandler [WEAK]
+ EXPORT DMA2_Channel6_IRQHandler [WEAK]
+ EXPORT DMA2_Channel7_IRQHandler [WEAK]
+ EXPORT LPUART1_IRQHandler [WEAK]
+ EXPORT QUADSPI_IRQHandler [WEAK]
+ EXPORT I2C3_EV_IRQHandler [WEAK]
+ EXPORT I2C3_ER_IRQHandler [WEAK]
+ EXPORT SAI1_IRQHandler [WEAK]
+ EXPORT SWPMI1_IRQHandler [WEAK]
+ EXPORT TSC_IRQHandler [WEAK]
+ EXPORT RNG_IRQHandler [WEAK]
+ EXPORT FPU_IRQHandler [WEAK]
+ EXPORT CRS_IRQHandler [WEAK]
+
+WWDG_IRQHandler
+PVD_PVM_IRQHandler
+TAMP_STAMP_IRQHandler
+RTC_WKUP_IRQHandler
+FLASH_IRQHandler
+RCC_IRQHandler
+EXTI0_IRQHandler
+EXTI1_IRQHandler
+EXTI2_IRQHandler
+EXTI3_IRQHandler
+EXTI4_IRQHandler
+DMA1_Channel1_IRQHandler
+DMA1_Channel2_IRQHandler
+DMA1_Channel3_IRQHandler
+DMA1_Channel4_IRQHandler
+DMA1_Channel5_IRQHandler
+DMA1_Channel6_IRQHandler
+DMA1_Channel7_IRQHandler
+ADC1_IRQHandler
+CAN1_TX_IRQHandler
+CAN1_RX0_IRQHandler
+CAN1_RX1_IRQHandler
+CAN1_SCE_IRQHandler
+EXTI9_5_IRQHandler
+TIM1_BRK_TIM15_IRQHandler
+TIM1_UP_TIM16_IRQHandler
+TIM1_TRG_COM_IRQHandler
+TIM1_CC_IRQHandler
+TIM2_IRQHandler
+I2C1_EV_IRQHandler
+I2C1_ER_IRQHandler
+I2C2_EV_IRQHandler
+I2C2_ER_IRQHandler
+SPI1_IRQHandler
+SPI2_IRQHandler
+USART1_IRQHandler
+USART2_IRQHandler
+USART3_IRQHandler
+EXTI15_10_IRQHandler
+RTC_Alarm_IRQHandler
+SDMMC1_IRQHandler
+SPI3_IRQHandler
+TIM6_DAC_IRQHandler
+TIM7_IRQHandler
+DMA2_Channel1_IRQHandler
+DMA2_Channel2_IRQHandler
+DMA2_Channel3_IRQHandler
+DMA2_Channel4_IRQHandler
+DMA2_Channel5_IRQHandler
+COMP_IRQHandler
+LPTIM1_IRQHandler
+LPTIM2_IRQHandler
+DMA2_Channel6_IRQHandler
+DMA2_Channel7_IRQHandler
+LPUART1_IRQHandler
+QUADSPI_IRQHandler
+I2C3_EV_IRQHandler
+I2C3_ER_IRQHandler
+SAI1_IRQHandler
+SWPMI1_IRQHandler
+TSC_IRQHandler
+RNG_IRQHandler
+FPU_IRQHandler
+CRS_IRQHandler
+
+ B .
+
+ ENDP
+
+ ALIGN
+
+;*******************************************************************************
+; User Stack and Heap initialization
+;*******************************************************************************
+ IF :DEF:__MICROLIB
+
+ EXPORT __initial_sp
+ EXPORT __heap_base
+ EXPORT __heap_limit
+
+ ELSE
+
+ IMPORT __use_two_region_memory
+ EXPORT __user_initial_stackheap
+
+__user_initial_stackheap
+
+ LDR R0, = Heap_Mem
+ LDR R1, =(Stack_Mem + Stack_Size)
+ LDR R2, = (Heap_Mem + Heap_Size)
+ LDR R3, = Stack_Mem
+ BX LR
+
+ ALIGN
+
+ ENDIF
+
+ END
+
+;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE*****
diff --git a/components/shell/include/tos_shell.h b/components/shell/include/tos_shell.h
new file mode 100644
index 00000000..2d6c3893
--- /dev/null
+++ b/components/shell/include/tos_shell.h
@@ -0,0 +1,59 @@
+/*----------------------------------------------------------------------------
+ * Tencent is pleased to support the open source community by making TencentOS
+ * available.
+ *
+ * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved.
+ * If you have downloaded a copy of the TencentOS binary from Tencent, please
+ * note that the TencentOS binary is licensed under the BSD 3-Clause License.
+ *
+ * If you have downloaded a copy of the TencentOS source code from Tencent,
+ * please note that TencentOS source code is licensed under the BSD 3-Clause
+ * License, except for the third-party components listed below which are
+ * subject to different license terms. Your integration of TencentOS into your
+ * own projects may require compliance with the BSD 3-Clause License, as well
+ * as the other licenses applicable to the third-party components included
+ * within TencentOS.
+ *---------------------------------------------------------------------------*/
+
+#ifndef _TOS_SHELL_H_
+#define _TOS_SHELL_H_
+
+#include "tos_k.h"
+#include "tos_shell_command.h"
+
+#define SHELL_CMD_ARGV_MAX 16
+#define SHELL_OUTPUT_MAX 256
+#define SHELL_PARSER_TASK_STACK_SIZE 1024
+#define SHELL_PARSER_TASK_PRIO 3
+
+typedef void (*shell_output_t)(const char *str);
+
+typedef struct shell_control_st {
+ k_task_t parser;
+
+ shell_output_t output;
+
+ char *cmd_buffer;
+ int cmd_buffer_size;
+
+ k_sem_t shell_rx_sem;
+ k_chr_fifo_t shell_rx_fifo;
+ uint8_t *shell_rx_fifo_buffer;
+} shell_ctl_t;
+
+#define SHELL_CTL ((shell_ctl_t *)(&shell_ctl))
+
+__API__ int tos_shell_init(char *cmd_buf, int cmd_buf_size, shell_output_t output, shell_cmd_set_t *custom_cmd_set);
+
+__API__ void tos_shell_deinit(void);
+
+__API__ int tos_shell_cmd_set_regiser(const shell_cmd_set_t *cmd_set);
+
+__API__ int tos_shell_cmd_set_unregiser(const shell_cmd_set_t *cmd_set);
+
+__API__ void tos_shell_printf(const char *format, ...);
+
+__API__ void tos_shell_input_byte(uint8_t data);
+
+#endif /* _TOS_SHELL_H_ */
+
diff --git a/components/shell/include/tos_shell_command.h b/components/shell/include/tos_shell_command.h
new file mode 100644
index 00000000..495335f2
--- /dev/null
+++ b/components/shell/include/tos_shell_command.h
@@ -0,0 +1,45 @@
+/*----------------------------------------------------------------------------
+ * Tencent is pleased to support the open source community by making TencentOS
+ * available.
+ *
+ * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved.
+ * If you have downloaded a copy of the TencentOS binary from Tencent, please
+ * note that the TencentOS binary is licensed under the BSD 3-Clause License.
+ *
+ * If you have downloaded a copy of the TencentOS source code from Tencent,
+ * please note that TencentOS source code is licensed under the BSD 3-Clause
+ * License, except for the third-party components listed below which are
+ * subject to different license terms. Your integration of TencentOS into your
+ * own projects may require compliance with the BSD 3-Clause License, as well
+ * as the other licenses applicable to the third-party components included
+ * within TencentOS.
+ *---------------------------------------------------------------------------*/
+
+#ifndef _TOS_SHELL_COMMAND_H_
+#define _TOS_SHELL_COMMAND_H_
+
+#include "tos_k.h"
+
+typedef int (*shell_cmd_handler_t)(int argc, char *argv[]);
+
+typedef struct shell_command_st {
+ const char *name;
+ shell_cmd_handler_t handler;
+ const char *help;
+} shell_cmd_t;
+
+typedef struct shell_command_set_st {
+ k_slist_t list;
+ const shell_cmd_t *const commands;
+} shell_cmd_set_t;
+
+__KERNEL__ int shell_cmd_set_regiser(const shell_cmd_set_t *cmd_set);
+
+__KERNEL__ int shell_cmd_set_unregiser(const shell_cmd_set_t *cmd_set);
+
+__KERNEL__ const shell_cmd_t *shell_cmd_find(const char *name);
+
+__KERNEL__ void shell_cmd_init(shell_cmd_set_t *custom_cmd_set);
+
+#endif /* _TOS_SHELL_COMMAND_H_ */
+
diff --git a/components/shell/tos_shell.c b/components/shell/tos_shell.c
new file mode 100644
index 00000000..88ec9bdd
--- /dev/null
+++ b/components/shell/tos_shell.c
@@ -0,0 +1,220 @@
+/*----------------------------------------------------------------------------
+ * Tencent is pleased to support the open source community by making TencentOS
+ * available.
+ *
+ * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved.
+ * If you have downloaded a copy of the TencentOS binary from Tencent, please
+ * note that the TencentOS binary is licensed under the BSD 3-Clause License.
+ *
+ * If you have downloaded a copy of the TencentOS source code from Tencent,
+ * please note that TencentOS source code is licensed under the BSD 3-Clause
+ * License, except for the third-party components listed below which are
+ * subject to different license terms. Your integration of TencentOS into your
+ * own projects may require compliance with the BSD 3-Clause License, as well
+ * as the other licenses applicable to the third-party components included
+ * within TencentOS.
+ *---------------------------------------------------------------------------*/
+
+#include "tos_shell.h"
+
+__STATIC__ shell_ctl_t shell_ctl;
+
+__STATIC__ k_stack_t shell_parser_task_stack[SHELL_PARSER_TASK_STACK_SIZE];
+
+__STATIC__ int shell_getchar(void)
+{
+ uint8_t chr;
+ k_err_t err;
+
+ if (tos_sem_pend(&SHELL_CTL->shell_rx_sem, TOS_TIME_FOREVER) != K_ERR_NONE) {
+ return -1;
+ }
+
+ err = tos_chr_fifo_pop(&SHELL_CTL->shell_rx_fifo, &chr);
+
+ return err == K_ERR_NONE ? chr : -1;
+}
+
+__STATIC__ int shell_readline(void)
+{
+ int chr, last_chr = 0;
+ char *buf = SHELL_CTL->cmd_buffer;
+
+ while (K_TRUE) {
+ if (buf - SHELL_CTL->cmd_buffer >= (SHELL_CTL->cmd_buffer_size - 1)) {
+ return -1;
+ }
+
+ chr = shell_getchar();
+ if (chr < 0) {
+ return -1;
+ }
+
+ if (chr == '\n' && last_chr == '\r') {
+ *--buf = '\0';
+ return 0;
+ } else if (chr == '\n') {
+ *buf = '\0';
+ return 0;
+ }
+
+ *buf++ = chr;
+ last_chr = chr;
+ }
+}
+
+__STATIC__ void shell_cmd_do_process(int argc, char *argv[])
+{
+ const shell_cmd_t *cmd;
+ static const char *cmd_not_found = "command not found\n";
+
+ cmd = shell_cmd_find(argv[0]);
+ if (!cmd) {
+ tos_shell_printf(cmd_not_found);
+ } else {
+ cmd->handler(argc, argv);
+ }
+}
+
+__STATIC__ void shell_cmd_process(void)
+{
+ int argc = 0;
+ static char *argv[SHELL_CMD_ARGV_MAX];
+ char *pos = SHELL_CTL->cmd_buffer;
+
+ printf("%s\n", pos);
+
+ // left strip
+ while (*pos == ' ' || *pos == '\t') {
+ ++pos;
+ }
+
+ if (!*pos) {
+ return;
+ }
+
+ /* cmd_demo arg0 arg1 arg2 */
+ /* simple, ugly, but works */
+ while (*pos) {
+ argv[argc] = pos;
+ while (*pos != ' ' && *pos != '\t' && *pos) {
+ ++pos;
+ }
+
+ while ((*pos == ' ' || *pos == '\t') && *pos) {
+ *pos++ = '\0';
+ }
+
+ ++argc;
+ }
+
+ shell_cmd_do_process(argc, argv);
+}
+
+__STATIC__ void shell_prompt(void)
+{
+ tos_shell_printf("> ");
+}
+
+__STATIC__ void shell_parser(void *arg)
+{
+ int rc;
+
+ shell_prompt();
+
+ while (K_TRUE) {
+ rc = shell_readline();
+
+ if (!rc) {
+ shell_cmd_process();
+ }
+
+ shell_prompt();
+ }
+}
+
+__API__ int tos_shell_init(char *cmd_buf, int cmd_buf_size, shell_output_t output, shell_cmd_set_t *custom_cmd_set)
+{
+ void *buffer = K_NULL;
+
+ TOS_PTR_SANITY_CHECK_RC(cmd_buf, -1);
+ TOS_PTR_SANITY_CHECK_RC(output, -1);
+
+ memset(SHELL_CTL, 0, sizeof(shell_ctl_t));
+
+ SHELL_CTL->cmd_buffer = cmd_buf;
+ SHELL_CTL->cmd_buffer_size = cmd_buf_size;
+ SHELL_CTL->output = output;
+
+ shell_cmd_init(custom_cmd_set);
+
+ buffer = tos_mmheap_alloc(cmd_buf_size * 2);
+ if (!buffer) {
+ return -1;
+ }
+
+ SHELL_CTL->shell_rx_fifo_buffer = (uint8_t *)buffer;
+ tos_chr_fifo_create(&SHELL_CTL->shell_rx_fifo, buffer, cmd_buf_size * 2);
+
+ if (tos_sem_create(&SHELL_CTL->shell_rx_sem, (k_sem_cnt_t)0u) != K_ERR_NONE) {
+ goto errout0;
+ }
+
+ if (tos_task_create(&SHELL_CTL->parser, "shell_parser", shell_parser,
+ K_NULL, SHELL_PARSER_TASK_PRIO, shell_parser_task_stack,
+ SHELL_PARSER_TASK_STACK_SIZE, 0) != K_ERR_NONE) {
+ goto errout1;
+ }
+
+ return 0;
+
+errout1:
+ tos_sem_destroy(&SHELL_CTL->shell_rx_sem);
+
+errout0:
+ tos_mmheap_free(SHELL_CTL->shell_rx_fifo_buffer);
+ SHELL_CTL->shell_rx_fifo_buffer = K_NULL;
+ tos_chr_fifo_destroy(&SHELL_CTL->shell_rx_fifo);
+
+ return -1;
+}
+
+__API__ void tos_shell_deinit(void)
+{
+ tos_task_destroy(&SHELL_CTL->parser);
+ tos_sem_destroy(&SHELL_CTL->shell_rx_sem);
+
+ tos_mmheap_free(SHELL_CTL->shell_rx_fifo_buffer);
+ SHELL_CTL->shell_rx_fifo_buffer = K_NULL;
+ tos_chr_fifo_destroy(&SHELL_CTL->shell_rx_fifo);
+}
+
+__API__ int tos_shell_cmd_set_regiser(const shell_cmd_set_t *cmd_set)
+{
+ return shell_cmd_set_regiser(cmd_set);
+}
+
+__API__ int tos_shell_cmd_set_unregiser(const shell_cmd_set_t *cmd_set)
+{
+ return shell_cmd_set_unregiser(cmd_set);
+}
+
+__API__ void tos_shell_printf(const char *format, ...)
+{
+ va_list args;
+ static char buffer[SHELL_OUTPUT_MAX];
+
+ va_start(args, format);
+ vsnprintf(buffer, sizeof(buffer), format, args);
+ va_end(args);
+
+ (SHELL_CTL->output)(buffer);
+}
+
+__API__ void tos_shell_input_byte(uint8_t data)
+{
+ if (tos_chr_fifo_push(&SHELL_CTL->shell_rx_fifo, data) == K_ERR_NONE) {
+ tos_sem_post(&SHELL_CTL->shell_rx_sem);
+ }
+}
+
diff --git a/components/shell/tos_shell_commands.c b/components/shell/tos_shell_commands.c
new file mode 100644
index 00000000..e469416c
--- /dev/null
+++ b/components/shell/tos_shell_commands.c
@@ -0,0 +1,101 @@
+/*----------------------------------------------------------------------------
+ * Tencent is pleased to support the open source community by making TencentOS
+ * available.
+ *
+ * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved.
+ * If you have downloaded a copy of the TencentOS binary from Tencent, please
+ * note that the TencentOS binary is licensed under the BSD 3-Clause License.
+ *
+ * If you have downloaded a copy of the TencentOS source code from Tencent,
+ * please note that TencentOS source code is licensed under the BSD 3-Clause
+ * License, except for the third-party components listed below which are
+ * subject to different license terms. Your integration of TencentOS into your
+ * own projects may require compliance with the BSD 3-Clause License, as well
+ * as the other licenses applicable to the third-party components included
+ * within TencentOS.
+ *---------------------------------------------------------------------------*/
+
+#include "tos_shell.h"
+#include "tos_shell_command.h"
+
+__STATIC__ TOS_SLIST_DEFINE(cmd_set_list);
+
+__STATIC__ int cmd_help(int argc, char *argv[])
+{
+ shell_cmd_set_t *cmd_set;
+ const shell_cmd_t *cmd;
+
+ TOS_SLIST_FOR_EACH_ENTRY(cmd_set, shell_cmd_set_t, list, &cmd_set_list) {
+ for (cmd = cmd_set->commands; cmd->name; ++cmd) {
+ tos_shell_printf("%-8s: %s\n", cmd->name, cmd->help);
+ }
+ }
+
+ return 0;
+}
+
+__STATIC__ int cmd_ps(int argc, char *argv[])
+{
+ tos_task_info_display();
+ return 0;
+}
+
+
+__STATIC__ const shell_cmd_t builtin_shell_cmds[] = {
+ { "help", cmd_help, "show help" },
+ { "ps", cmd_ps, "show tasks" },
+ { K_NULL, K_NULL, K_NULL },
+};
+
+__STATIC__ shell_cmd_set_t buildin_shell_cmd_set = {
+ .list = TOS_SLIST_NODE(dummy),
+ .commands = builtin_shell_cmds,
+};
+
+__KERNEL__ int shell_cmd_set_regiser(const shell_cmd_set_t *cmd_set)
+{
+ if (tos_slist_contains((k_slist_t *)&cmd_set->list, &cmd_set_list)) {
+ return -1;
+ }
+
+ tos_slist_add_head((k_slist_t *)&cmd_set->list, &cmd_set_list);
+ return 0;
+}
+
+__KERNEL__ int shell_cmd_set_unregiser(const shell_cmd_set_t *cmd_set)
+{
+ if (!tos_slist_contains((k_slist_t *)&cmd_set->list, &cmd_set_list)) {
+ return -1;
+ }
+
+ tos_slist_del((k_slist_t *)&cmd_set->list, &cmd_set_list);
+ return 0;
+}
+
+__KERNEL__ const shell_cmd_t *shell_cmd_find(const char *name)
+{
+ const shell_cmd_t *cmd;
+ const shell_cmd_set_t *cmd_set;
+
+ TOS_SLIST_FOR_EACH_ENTRY(cmd_set, const shell_cmd_set_t, list, &cmd_set_list) {
+ for (cmd = cmd_set->commands; cmd->name; ++cmd) {
+ if (!strcmp(cmd->name, name)) {
+ return cmd;
+ }
+ }
+ }
+
+ return K_NULL;
+}
+
+__KERNEL__ void shell_cmd_init(shell_cmd_set_t *custom_cmd_set)
+{
+ tos_slist_init(&cmd_set_list);
+
+ tos_slist_add_head(&buildin_shell_cmd_set.list, &cmd_set_list);
+
+ if (custom_cmd_set) {
+ tos_slist_add_head(&custom_cmd_set->list, &cmd_set_list);
+ }
+}
+
diff --git a/examples/event_driven_at_module/at_evtdrv/include/tos_at_evtdrv.h b/examples/event_driven_at_module/at_evtdrv/include/tos_at_evtdrv.h
index 9eaf2377..25656119 100644
--- a/examples/event_driven_at_module/at_evtdrv/include/tos_at_evtdrv.h
+++ b/examples/event_driven_at_module/at_evtdrv/include/tos_at_evtdrv.h
@@ -334,7 +334,7 @@ int tos_at_raw_data_send(at_echo_t *echo, uint32_t timeout, const uint8_t *buf,
*
* @return None
*/
-void tos_at_uart_write_byte(uint8_t data);
+void tos_at_uart_input_byte(uint8_t data);
/**
* @brief Read data from the uart.
diff --git a/examples/event_driven_at_module/at_evtdrv/src/tos_at_evtdrv.c b/examples/event_driven_at_module/at_evtdrv/src/tos_at_evtdrv.c
index 604dbe6a..603ccf0a 100644
--- a/examples/event_driven_at_module/at_evtdrv/src/tos_at_evtdrv.c
+++ b/examples/event_driven_at_module/at_evtdrv/src/tos_at_evtdrv.c
@@ -594,7 +594,7 @@ __API__ void tos_at_deinit(void)
/* To completely decouple the uart intterupt and at agent, we need a more powerful
hal(driver framework), that would be a huge work, we place it in future plans. */
-__API__ void tos_at_uart_write_byte(uint8_t data)
+__API__ void tos_at_uart_input_byte(uint8_t data)
{
if (tos_chr_fifo_push(&AT_AGENT->uart_rx_fifo, data) == K_ERR_NONE) {
tos_evtdrv_event_set(AT_AGENT->at_task_id, EVENT_AT_UART_INCOMING);
diff --git a/examples/shell/shell_sample.c b/examples/shell/shell_sample.c
new file mode 100644
index 00000000..5f48331d
--- /dev/null
+++ b/examples/shell/shell_sample.c
@@ -0,0 +1,88 @@
+#include "tos_shell.h"
+#include "tos_hal.h"
+
+#define CMD_LEN_MAX 128
+char cmd_buf[CMD_LEN_MAX];
+
+hal_uart_t shell_uart;
+
+void uart_output(const char *str)
+{
+ tos_hal_uart_write(&shell_uart, (const uint8_t *)str, strlen(str), 0xFF);
+
+#if 0
+ /* if using c lib printf through uart, a simpler one is: */
+ printf(str);
+#endif
+}
+
+__STATIC__ int cmd_test00(int argc, char *argv[])
+{
+ int i = 0;
+ tos_shell_printf("test00:\n");
+
+ for (i = 0; i < argc; ++i) {
+ tos_shell_printf("argv[%d]: %s\n", i, argv[i]);
+ }
+ return 0;
+}
+
+__STATIC__ int cmd_test01(int argc, char *argv[])
+{
+ tos_shell_printf("test01:\n");
+ return 0;
+}
+
+__STATIC__ int cmd_test10(int argc, char *argv[])
+{
+ int i = 0;
+ tos_shell_printf("test10:\n");
+
+ for (i = 0; i < argc; ++i) {
+ tos_shell_printf("argv[%d]: %s\n", i, argv[i]);
+ }
+ return 0;
+}
+
+__STATIC__ int cmd_test11(int argc, char *argv[])
+{
+ tos_shell_printf("test11:\n");
+ return 0;
+}
+
+__STATIC__ const shell_cmd_t custom_shell_cmds0[] = {
+ { "test00", cmd_test00, "test00 cmd" },
+ { "test01", cmd_test01, "test01 cmd" },
+ { K_NULL, K_NULL, K_NULL }, /* never forget this!!!*/
+};
+
+__STATIC__ shell_cmd_set_t custom_shell_cmd_set0 = {
+ .list = TOS_SLIST_NODE(dummy),
+ .commands = custom_shell_cmds0,
+};
+
+__STATIC__ const shell_cmd_t custom_shell_cmds1[] = {
+ { "test10", cmd_test10, "test10 cmd" },
+ { "test11", cmd_test11, "test11 cmd" },
+ { K_NULL, K_NULL, K_NULL }, /* never forget this!!!*/
+};
+
+__STATIC__ shell_cmd_set_t custom_shell_cmd_set1 = {
+ .list = TOS_SLIST_NODE(dummy),
+ .commands = custom_shell_cmds1,
+};
+
+void application_entry(void *arg)
+{
+ /* if test on ALIENTEK_STM32F429, switch HAL_UART_PORT_2 to HAL_UART_PORT_1 */
+ tos_hal_uart_init(&shell_uart, HAL_UART_PORT_2);
+
+ tos_shell_init(cmd_buf, sizeof(cmd_buf), uart_output, &custom_shell_cmd_set0);
+
+ tos_shell_cmd_set_regiser(&custom_shell_cmd_set1);
+
+ while (1) {
+ tos_task_delay(1000);
+ }
+}
+
diff --git a/kernel/core/include/tos_klib.h b/kernel/core/include/tos_klib.h
index 3e1a3e76..55b88352 100644
--- a/kernel/core/include/tos_klib.h
+++ b/kernel/core/include/tos_klib.h
@@ -51,6 +51,10 @@
} while(0)
#if TOS_CFG_OBJECT_VERIFY_EN > 0u
+
+#define TOS_OBJ_INIT(obj, obj_type) knl_object_init(&obj->knl_obj, obj_type)
+#define TOS_OBJ_DEINIT(obj) knl_object_deinit(&obj->knl_obj)
+
#define TOS_OBJ_VERIFY(obj, obj_type) \
do { \
if (!knl_object_verify(&obj->knl_obj, obj_type)) { \
@@ -66,8 +70,12 @@
} while (0)
#else
+
+#define TOS_OBJ_INIT(obj, obj_type)
+#define TOS_OBJ_DEINIT(obj)
#define TOS_OBJ_VERIFY(obj, obj_type)
#define TOS_OBJ_VERIFY_RC(obj, obj_type, return_code)
+
#endif
#if TOS_CFG_LIBC_PRINTF_EN > 0u
diff --git a/kernel/core/include/tos_slist.h b/kernel/core/include/tos_slist.h
index 413e49bf..262e867e 100644
--- a/kernel/core/include/tos_slist.h
+++ b/kernel/core/include/tos_slist.h
@@ -22,7 +22,7 @@ typedef struct k_slist_node_st {
struct k_slist_node_st *next;
} k_slist_t;
-#define TOS_SLIST_NODE(node) \
+#define TOS_SLIST_NODE(dummy) \
{ K_NULL }
#define TOS_SLIST_DEFINE(slist) \
@@ -164,6 +164,18 @@ __API__ __STATIC_INLINE__ int tos_slist_length(k_slist_t *slist)
return len;
}
+__API__ __STATIC_INLINE__ int tos_slist_contains(k_slist_t *node, k_slist_t *slist)
+{
+ while (slist->next) {
+ if (slist->next == node) {
+ return K_TRUE;
+ }
+
+ slist = slist->next;
+ }
+
+ return K_FALSE;
+}
__API__ __STATIC_INLINE__ int tos_slist_empty(k_slist_t *slist)
{
return !slist->next;
diff --git a/kernel/core/tos_binary_heap.c b/kernel/core/tos_binary_heap.c
index f569a215..5ccd11f8 100644
--- a/kernel/core/tos_binary_heap.c
+++ b/kernel/core/tos_binary_heap.c
@@ -120,19 +120,17 @@ __API__ k_err_t tos_bin_heap_create(k_bin_heap_t *bin_heap, void *pool, size_t i
TOS_PTR_SANITY_CHECK(pool);
TOS_PTR_SANITY_CHECK(cmp);
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_init(&bin_heap->knl_obj, KNL_OBJ_TYPE_BINARY_HEAP);
-#endif
-#if TOS_CFG_MMHEAP_EN > 0u
- knl_object_alloc_set_static(&bin_heap->knl_obj);
-#endif
-
bin_heap->total = 0;
bin_heap->cmp = cmp;
bin_heap->item_size = item_size;
bin_heap->item_cnt = item_cnt;
bin_heap->pool = (uint8_t *)pool;
+ TOS_OBJ_INIT(bin_heap, KNL_OBJ_TYPE_BINARY_HEAP);
+#if TOS_CFG_MMHEAP_EN > 0u
+ knl_object_alloc_set_static(&bin_heap->knl_obj);
+#endif
+
return K_ERR_NONE;
}
@@ -153,9 +151,7 @@ __API__ k_err_t tos_bin_heap_destroy(k_bin_heap_t *bin_heap)
bin_heap->item_cnt = 0;
bin_heap->pool = K_NULL;
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_deinit(&bin_heap->knl_obj);
-#endif
+ TOS_OBJ_DEINIT(bin_heap);
#if TOS_CFG_MMHEAP_EN > 0u
knl_object_alloc_reset(&bin_heap->knl_obj);
#endif
@@ -183,9 +179,7 @@ __API__ k_err_t tos_bin_heap_create_dyn(k_bin_heap_t *bin_heap, size_t item_cnt,
bin_heap->item_cnt = item_cnt;
bin_heap->pool = (uint8_t *)pool;
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_init(&bin_heap->knl_obj, KNL_OBJ_TYPE_BINARY_HEAP);
-#endif
+ TOS_OBJ_INIT(bin_heap, KNL_OBJ_TYPE_BINARY_HEAP);
knl_object_alloc_set_dynamic(&bin_heap->knl_obj);
return K_ERR_NONE;
@@ -208,9 +202,7 @@ __API__ k_err_t tos_bin_heap_destroy_dyn(k_bin_heap_t *bin_heap)
bin_heap->item_cnt = 0;
bin_heap->pool = K_NULL;
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_deinit(&bin_heap->knl_obj);
-#endif
+ TOS_OBJ_DEINIT(bin_heap);
knl_object_alloc_reset(&bin_heap->knl_obj);
return K_ERR_NONE;
diff --git a/kernel/core/tos_char_fifo.c b/kernel/core/tos_char_fifo.c
index c86d837b..4d6cca7f 100644
--- a/kernel/core/tos_char_fifo.c
+++ b/kernel/core/tos_char_fifo.c
@@ -29,9 +29,7 @@ __API__ k_err_t tos_chr_fifo_create(k_chr_fifo_t *chr_fifo, void *buffer, size_t
return err;
}
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_init(&chr_fifo->knl_obj, KNL_OBJ_TYPE_CHAR_FIFO);
-#endif
+ TOS_OBJ_INIT(chr_fifo, KNL_OBJ_TYPE_CHAR_FIFO);
#if TOS_CFG_MMHEAP_EN > 0u
knl_object_alloc_set_static(&chr_fifo->knl_obj);
#endif
@@ -57,9 +55,7 @@ __API__ k_err_t tos_chr_fifo_destroy(k_chr_fifo_t *chr_fifo)
return err;
}
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_deinit(&chr_fifo->knl_obj);
-#endif
+ TOS_OBJ_DEINIT(chr_fifo);
#if TOS_CFG_MMHEAP_EN > 0u
knl_object_alloc_reset(&chr_fifo->knl_obj);
#endif
@@ -80,9 +76,7 @@ __API__ k_err_t tos_chr_fifo_create_dyn(k_chr_fifo_t *chr_fifo, size_t fifo_size
return err;
}
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_init(&chr_fifo->knl_obj, KNL_OBJ_TYPE_CHAR_FIFO);
-#endif
+ TOS_OBJ_INIT(chr_fifo, KNL_OBJ_TYPE_CHAR_FIFO);
knl_object_alloc_set_dynamic(&chr_fifo->knl_obj);
return K_ERR_NONE;
@@ -104,9 +98,7 @@ __API__ k_err_t tos_chr_fifo_destroy_dyn(k_chr_fifo_t *chr_fifo)
return err;
}
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_deinit(&chr_fifo->knl_obj);
-#endif
+ TOS_OBJ_DEINIT(chr_fifo);
knl_object_alloc_reset(&chr_fifo->knl_obj);
return K_ERR_NONE;
diff --git a/kernel/core/tos_completion.c b/kernel/core/tos_completion.c
index 6b19c043..76cc1fc6 100644
--- a/kernel/core/tos_completion.c
+++ b/kernel/core/tos_completion.c
@@ -23,12 +23,9 @@ __API__ k_err_t tos_completion_create(k_completion_t *completion)
{
TOS_PTR_SANITY_CHECK(completion);
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_init(&completion->knl_obj, KNL_OBJ_TYPE_COMPLETION);
-#endif
-
- pend_object_init(&completion->pend_obj);
completion->done = (completion_done_t)0u;
+ pend_object_init(&completion->pend_obj);
+ TOS_OBJ_INIT(completion, KNL_OBJ_TYPE_COMPLETION);
return K_ERR_NONE;
}
@@ -48,9 +45,7 @@ __API__ k_err_t tos_completion_destroy(k_completion_t *completion)
pend_object_deinit(&completion->pend_obj);
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_deinit(&completion->knl_obj);
-#endif
+ TOS_OBJ_DEINIT(completion);
TOS_CPU_INT_ENABLE();
knl_sched();
diff --git a/kernel/core/tos_countdownlatch.c b/kernel/core/tos_countdownlatch.c
index 6092a6f2..99dba491 100644
--- a/kernel/core/tos_countdownlatch.c
+++ b/kernel/core/tos_countdownlatch.c
@@ -23,12 +23,9 @@ __API__ k_err_t tos_countdownlatch_create(k_countdownlatch_t *countdownlatch, k_
{
TOS_PTR_SANITY_CHECK(countdownlatch);
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_init(&countdownlatch->knl_obj, KNL_OBJ_TYPE_COUNTDOWNLATCH);
-#endif
-
- pend_object_init(&countdownlatch->pend_obj);
countdownlatch->count = count;
+ pend_object_init(&countdownlatch->pend_obj);
+ TOS_OBJ_INIT(countdownlatch, KNL_OBJ_TYPE_COUNTDOWNLATCH);
return K_ERR_NONE;
}
@@ -48,9 +45,7 @@ __API__ k_err_t tos_countdownlatch_destroy(k_countdownlatch_t *countdownlatch)
pend_object_deinit(&countdownlatch->pend_obj);
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_deinit(&countdownlatch->knl_obj);
-#endif
+ TOS_OBJ_DEINIT(countdownlatch);
TOS_CPU_INT_ENABLE();
knl_sched();
diff --git a/kernel/core/tos_event.c b/kernel/core/tos_event.c
index 3dd45f72..de000175 100644
--- a/kernel/core/tos_event.c
+++ b/kernel/core/tos_event.c
@@ -23,12 +23,10 @@ __API__ k_err_t tos_event_create(k_event_t *event, k_event_flag_t init_flag)
{
TOS_PTR_SANITY_CHECK(event);
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_init(&event->knl_obj, KNL_OBJ_TYPE_EVENT);
-#endif
-
- pend_object_init(&event->pend_obj);
event->flag = init_flag;
+ pend_object_init(&event->pend_obj);
+ TOS_OBJ_INIT(event, KNL_OBJ_TYPE_EVENT);
+
return K_ERR_NONE;
}
@@ -45,12 +43,11 @@ __API__ k_err_t tos_event_destroy(k_event_t *event)
pend_wakeup_all(&event->pend_obj, PEND_STATE_DESTROY);
}
- pend_object_deinit(&event->pend_obj);
event->flag = (k_event_flag_t)0u;
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_deinit(&event->knl_obj);
-#endif
+ pend_object_deinit(&event->pend_obj);
+
+ TOS_OBJ_DEINIT(event);
TOS_CPU_INT_ENABLE();
knl_sched();
diff --git a/kernel/core/tos_mail_queue.c b/kernel/core/tos_mail_queue.c
index db2f216c..52745b1f 100644
--- a/kernel/core/tos_mail_queue.c
+++ b/kernel/core/tos_mail_queue.c
@@ -32,9 +32,7 @@ __API__ k_err_t tos_mail_q_create(k_mail_q_t *mail_q, void *pool, size_t mail_cn
pend_object_init(&mail_q->pend_obj);
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_init(&mail_q->knl_obj, KNL_OBJ_TYPE_MAIL_QUEUE);
-#endif
+ TOS_OBJ_INIT(mail_q, KNL_OBJ_TYPE_MAIL_QUEUE);
#if TOS_CFG_MMHEAP_EN > 0u
knl_object_alloc_set_static(&mail_q->knl_obj);
#endif
@@ -70,9 +68,7 @@ __API__ k_err_t tos_mail_q_destroy(k_mail_q_t *mail_q)
pend_object_deinit(&mail_q->pend_obj);
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_deinit(&mail_q->knl_obj);
-#endif
+ TOS_OBJ_DEINIT(mail_q);
#if TOS_CFG_MMHEAP_EN > 0u
knl_object_alloc_reset(&mail_q->knl_obj);
#endif
@@ -98,9 +94,7 @@ __API__ k_err_t tos_mail_q_create_dyn(k_mail_q_t *mail_q, size_t mail_cnt, size_
pend_object_init(&mail_q->pend_obj);
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_init(&mail_q->knl_obj, KNL_OBJ_TYPE_MAIL_QUEUE);
-#endif
+ TOS_OBJ_INIT(mail_q, KNL_OBJ_TYPE_MAIL_QUEUE);
knl_object_alloc_set_dynamic(&mail_q->knl_obj);
return K_ERR_NONE;
@@ -132,9 +126,7 @@ __API__ k_err_t tos_mail_q_destroy_dyn(k_mail_q_t *mail_q)
pend_object_deinit(&mail_q->pend_obj);
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_deinit(&mail_q->knl_obj);
-#endif
+ TOS_OBJ_DEINIT(mail_q);
knl_object_alloc_reset(&mail_q->knl_obj);
TOS_CPU_INT_ENABLE();
diff --git a/kernel/core/tos_message_queue.c b/kernel/core/tos_message_queue.c
index f6f32490..ecf10ce5 100644
--- a/kernel/core/tos_message_queue.c
+++ b/kernel/core/tos_message_queue.c
@@ -33,9 +33,7 @@ __API__ k_err_t tos_msg_q_create(k_msg_q_t *msg_q, void *pool, size_t msg_cnt)
pend_object_init(&msg_q->pend_obj);
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_init(&msg_q->knl_obj, KNL_OBJ_TYPE_MESSAGE_QUEUE);
-#endif
+ TOS_OBJ_INIT(msg_q, KNL_OBJ_TYPE_MESSAGE_QUEUE);
#if TOS_CFG_MMHEAP_EN > 0u
knl_object_alloc_set_static(&msg_q->knl_obj);
#endif
@@ -71,9 +69,7 @@ __API__ k_err_t tos_msg_q_destroy(k_msg_q_t *msg_q)
pend_object_deinit(&msg_q->pend_obj);
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_deinit(&msg_q->knl_obj);
-#endif
+ TOS_OBJ_DEINIT(msg_q);
#if TOS_CFG_MMHEAP_EN > 0u
knl_object_alloc_reset(&msg_q->knl_obj);
#endif
@@ -99,9 +95,7 @@ __API__ k_err_t tos_msg_q_create_dyn(k_msg_q_t *msg_q, size_t msg_cnt)
pend_object_init(&msg_q->pend_obj);
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_init(&msg_q->knl_obj, KNL_OBJ_TYPE_MESSAGE_QUEUE);
-#endif
+ TOS_OBJ_INIT(msg_q, KNL_OBJ_TYPE_MESSAGE_QUEUE);
knl_object_alloc_set_dynamic(&msg_q->knl_obj);
return K_ERR_NONE;
@@ -133,9 +127,7 @@ __API__ k_err_t tos_msg_q_destroy_dyn(k_msg_q_t *msg_q)
pend_object_deinit(&msg_q->pend_obj);
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_deinit(&msg_q->knl_obj);
-#endif
+ TOS_OBJ_DEINIT(msg_q);
knl_object_alloc_reset(&msg_q->knl_obj);
TOS_CPU_INT_ENABLE();
diff --git a/kernel/core/tos_mmblk.c b/kernel/core/tos_mmblk.c
index 28525b88..ebda308e 100644
--- a/kernel/core/tos_mmblk.c
+++ b/kernel/core/tos_mmblk.c
@@ -46,15 +46,14 @@ __API__ k_err_t tos_mmblk_pool_create(k_mmblk_pool_t *mbp, void *pool_start, siz
}
*(void **)blk_next = K_NULL;
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_init(&mbp->knl_obj, KNL_OBJ_TYPE_MMBLK_POOL);
-#endif
-
mbp->pool_start = pool_start;
mbp->free_list = pool_start;
mbp->blk_free = blk_num;
mbp->blk_max = blk_num;
mbp->blk_size = blk_size;
+
+ TOS_OBJ_INIT(mbp, KNL_OBJ_TYPE_MMBLK_POOL);
+
return K_ERR_NONE;
}
@@ -69,9 +68,7 @@ __API__ k_err_t tos_mmblk_pool_destroy(k_mmblk_pool_t *mbp)
mbp->blk_max = 0;
mbp->blk_size = 0;
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_deinit(&mbp->knl_obj);
-#endif
+ TOS_OBJ_DEINIT(mbp);
return K_ERR_NONE;
}
diff --git a/kernel/core/tos_mutex.c b/kernel/core/tos_mutex.c
index 4bf33079..e31aa1be 100644
--- a/kernel/core/tos_mutex.c
+++ b/kernel/core/tos_mutex.c
@@ -72,16 +72,14 @@ __API__ k_err_t tos_mutex_create(k_mutex_t *mutex)
TOS_IN_IRQ_CHECK();
TOS_PTR_SANITY_CHECK(mutex);
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_init(&mutex->knl_obj, KNL_OBJ_TYPE_MUTEX);
-#endif
-
pend_object_init(&mutex->pend_obj);
mutex->pend_nesting = (k_nesting_t)0u;
mutex->owner = K_NULL;
mutex->owner_orig_prio = K_TASK_PRIO_INVALID;
tos_list_init(&mutex->owner_anchor);
+ TOS_OBJ_INIT(mutex, KNL_OBJ_TYPE_MUTEX);
+
return K_ERR_NONE;
}
@@ -105,9 +103,7 @@ __API__ k_err_t tos_mutex_destroy(k_mutex_t *mutex)
pend_object_deinit(&mutex->pend_obj);
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_deinit(&mutex->knl_obj);
-#endif
+ TOS_OBJ_DEINIT(mutex);
TOS_CPU_INT_ENABLE();
knl_sched();
diff --git a/kernel/core/tos_priority_mail_queue.c b/kernel/core/tos_priority_mail_queue.c
index a7a8bf55..315cf018 100644
--- a/kernel/core/tos_priority_mail_queue.c
+++ b/kernel/core/tos_priority_mail_queue.c
@@ -40,9 +40,7 @@ __API__ k_err_t tos_prio_mail_q_create(k_prio_mail_q_t *prio_mail_q, void *pool,
prio_mail_q->prio_q_mgr_array = prio_q_mgr_array;
pend_object_init(&prio_mail_q->pend_obj);
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_init(&prio_mail_q->knl_obj, KNL_OBJ_TYPE_PRIORITY_MAIL_QUEUE);
-#endif
+ TOS_OBJ_INIT(prio_mail_q, KNL_OBJ_TYPE_PRIORITY_MAIL_QUEUE);
knl_object_alloc_set_static(&prio_mail_q->knl_obj);
return K_ERR_NONE;
@@ -77,9 +75,7 @@ __API__ k_err_t tos_prio_mail_q_destroy(k_prio_mail_q_t *prio_mail_q)
pend_object_deinit(&prio_mail_q->pend_obj);
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_deinit(&prio_mail_q->knl_obj);
-#endif
+ TOS_OBJ_DEINIT(prio_mail_q);
knl_object_alloc_reset(&prio_mail_q->knl_obj);
TOS_CPU_INT_ENABLE();
@@ -101,9 +97,7 @@ __API__ k_err_t tos_prio_mail_q_create_dyn(k_prio_mail_q_t *prio_mail_q, size_t
pend_object_init(&prio_mail_q->pend_obj);
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_init(&prio_mail_q->knl_obj, KNL_OBJ_TYPE_PRIORITY_MAIL_QUEUE);
-#endif
+ TOS_OBJ_INIT(prio_mail_q, KNL_OBJ_TYPE_PRIORITY_MAIL_QUEUE);
knl_object_alloc_set_dynamic(&prio_mail_q->knl_obj);
return K_ERR_NONE;
@@ -135,9 +129,7 @@ __API__ k_err_t tos_prio_mail_q_destroy_dyn(k_prio_mail_q_t *prio_mail_q)
pend_object_deinit(&prio_mail_q->pend_obj);
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_deinit(&prio_mail_q->knl_obj);
-#endif
+ TOS_OBJ_DEINIT(prio_mail_q);
knl_object_alloc_reset(&prio_mail_q->knl_obj);
TOS_CPU_INT_ENABLE();
diff --git a/kernel/core/tos_priority_message_queue.c b/kernel/core/tos_priority_message_queue.c
index b1f24a14..7a0b1078 100644
--- a/kernel/core/tos_priority_message_queue.c
+++ b/kernel/core/tos_priority_message_queue.c
@@ -40,9 +40,7 @@ __API__ k_err_t tos_prio_msg_q_create(k_prio_msg_q_t *prio_msg_q, void *pool, si
prio_msg_q->prio_q_mgr_array = prio_q_mgr_array;
pend_object_init(&prio_msg_q->pend_obj);
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_init(&prio_msg_q->knl_obj, KNL_OBJ_TYPE_PRIORITY_MESSAGE_QUEUE);
-#endif
+ TOS_OBJ_INIT(prio_msg_q, KNL_OBJ_TYPE_PRIORITY_MESSAGE_QUEUE);
knl_object_alloc_set_static(&prio_msg_q->knl_obj);
return K_ERR_NONE;
@@ -77,9 +75,7 @@ __API__ k_err_t tos_prio_msg_q_destroy(k_prio_msg_q_t *prio_msg_q)
pend_object_deinit(&prio_msg_q->pend_obj);
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_deinit(&prio_msg_q->knl_obj);
-#endif
+ TOS_OBJ_DEINIT(prio_msg_q);
knl_object_alloc_reset(&prio_msg_q->knl_obj);
TOS_CPU_INT_ENABLE();
@@ -101,9 +97,7 @@ __API__ k_err_t tos_prio_msg_q_create_dyn(k_prio_msg_q_t *prio_msg_q, size_t msg
pend_object_init(&prio_msg_q->pend_obj);
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_init(&prio_msg_q->knl_obj, KNL_OBJ_TYPE_PRIORITY_MESSAGE_QUEUE);
-#endif
+ TOS_OBJ_INIT(prio_msg_q, KNL_OBJ_TYPE_PRIORITY_MESSAGE_QUEUE);
knl_object_alloc_set_dynamic(&prio_msg_q->knl_obj);
return K_ERR_NONE;
@@ -138,9 +132,7 @@ __API__ k_err_t tos_prio_msg_q_destroy_dyn(k_prio_msg_q_t *prio_msg_q)
pend_object_deinit(&prio_msg_q->pend_obj);
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_deinit(&prio_msg_q->knl_obj);
-#endif
+ TOS_OBJ_DEINIT(prio_msg_q);
knl_object_alloc_reset(&prio_msg_q->knl_obj);
TOS_CPU_INT_ENABLE();
diff --git a/kernel/core/tos_priority_queue.c b/kernel/core/tos_priority_queue.c
index 9195e776..4d07d43f 100644
--- a/kernel/core/tos_priority_queue.c
+++ b/kernel/core/tos_priority_queue.c
@@ -179,9 +179,7 @@ __API__ k_err_t tos_prio_q_create(k_prio_q_t *prio_q, void *mgr_array, void *poo
prio_q->mgr_pool = (uint8_t *)mgr_array;
prio_q->data_pool = (uint8_t *)pool;
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_init(&prio_q->knl_obj, KNL_OBJ_TYPE_PRIORITY_QUEUE);
-#endif
+ TOS_OBJ_INIT(prio_q, KNL_OBJ_TYPE_PRIORITY_QUEUE);
#if TOS_CFG_MMHEAP_EN > 0u
knl_object_alloc_set_static(&prio_q->knl_obj);
#endif
@@ -209,9 +207,7 @@ __API__ k_err_t tos_prio_q_destroy(k_prio_q_t *prio_q)
prio_q->mgr_pool = K_NULL;
prio_q->data_pool = K_NULL;
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_deinit(&prio_q->knl_obj);
-#endif
+ TOS_OBJ_DEINIT(prio_q);
#if TOS_CFG_MMHEAP_EN > 0u
knl_object_alloc_reset(&prio_q->knl_obj);
#endif
@@ -271,9 +267,7 @@ __API__ k_err_t tos_prio_q_destroy_dyn(k_prio_q_t *prio_q)
prio_q->mgr_pool = K_NULL;
prio_q->data_pool = K_NULL;
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_deinit(&prio_q->knl_obj);
-#endif
+ TOS_OBJ_DEINIT(prio_q);
knl_object_alloc_reset(&prio_q->knl_obj);
return K_ERR_NONE;
diff --git a/kernel/core/tos_ring_queue.c b/kernel/core/tos_ring_queue.c
index 8876f906..67be7af8 100644
--- a/kernel/core/tos_ring_queue.c
+++ b/kernel/core/tos_ring_queue.c
@@ -55,9 +55,7 @@ __STATIC_INLINE__ void ring_q_item_decrease(k_ring_q_t *ring_q)
ring_q->item_size = item_size;
ring_q->item_cnt = item_cnt;
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_init(&ring_q->knl_obj, KNL_OBJ_TYPE_RING_QUEUE);
-#endif
+ TOS_OBJ_INIT(ring_q, KNL_OBJ_TYPE_RING_QUEUE);
#if TOS_CFG_MMHEAP_EN > 0u
knl_object_alloc_set_static(&ring_q->knl_obj);
#endif
@@ -84,9 +82,7 @@ __API__ k_err_t tos_ring_q_destroy(k_ring_q_t *ring_q)
ring_q->item_size = 0u;
ring_q->item_cnt = 0u;
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_deinit(&ring_q->knl_obj);
-#endif
+ TOS_OBJ_DEINIT(ring_q);
#if TOS_CFG_MMHEAP_EN > 0u
knl_object_alloc_reset(&ring_q->knl_obj);
#endif
@@ -115,9 +111,7 @@ __API__ k_err_t tos_ring_q_destroy(k_ring_q_t *ring_q)
ring_q->item_size = item_size;
ring_q->item_cnt = item_cnt;
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_init(&ring_q->knl_obj, KNL_OBJ_TYPE_RING_QUEUE);
-#endif
+ TOS_OBJ_INIT(ring_q, KNL_OBJ_TYPE_RING_QUEUE);
knl_object_alloc_set_dynamic(&ring_q->knl_obj);
return K_ERR_NONE;
@@ -142,9 +136,7 @@ __API__ k_err_t tos_ring_q_destroy_dyn(k_ring_q_t *ring_q)
ring_q->item_size = 0u;
ring_q->item_cnt = 0u;
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_deinit(&ring_q->knl_obj);
-#endif
+ TOS_OBJ_DEINIT(ring_q);
knl_object_alloc_reset(&ring_q->knl_obj);
return K_ERR_NONE;
diff --git a/kernel/core/tos_sem.c b/kernel/core/tos_sem.c
index bb69fa75..19814be2 100644
--- a/kernel/core/tos_sem.c
+++ b/kernel/core/tos_sem.c
@@ -23,13 +23,10 @@ __API__ k_err_t tos_sem_create_max(k_sem_t *sem, k_sem_cnt_t init_count, k_sem_c
{
TOS_PTR_SANITY_CHECK(sem);
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_init(&sem->knl_obj, KNL_OBJ_TYPE_SEMAPHORE);
-#endif
-
- pend_object_init(&sem->pend_obj);
sem->count = init_count;
sem->count_max = max_count;
+ pend_object_init(&sem->pend_obj);
+ TOS_OBJ_INIT(sem, KNL_OBJ_TYPE_SEMAPHORE);
return K_ERR_NONE;
}
@@ -54,9 +51,7 @@ __API__ k_err_t tos_sem_destroy(k_sem_t *sem)
pend_object_deinit(&sem->pend_obj);
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_deinit(&sem->knl_obj);
-#endif
+ TOS_OBJ_DEINIT(sem);
TOS_CPU_INT_ENABLE();
knl_sched();
diff --git a/kernel/core/tos_task.c b/kernel/core/tos_task.c
index 9a98117e..02401ea7 100644
--- a/kernel/core/tos_task.c
+++ b/kernel/core/tos_task.c
@@ -19,10 +19,6 @@
__STATIC_INLINE__ void task_reset(k_task_t *task)
{
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_deinit(&task->knl_obj);
-#endif
-
#if TOS_CFG_TASK_DYNAMIC_CREATE_EN > 0u
knl_object_alloc_reset(&task->knl_obj);
@@ -49,6 +45,7 @@ __STATIC_INLINE__ void task_reset(k_task_t *task)
task->mail_size = 0;
#endif
+ TOS_OBJ_DEINIT(task);
}
__STATIC__ void task_exit(void)
@@ -114,10 +111,7 @@ __API__ k_err_t tos_task_create(k_task_t *task,
task_reset(task);
tos_list_add(&task->stat_list, &k_stat_list);
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_init(&task->knl_obj, KNL_OBJ_TYPE_TASK);
-#endif
-
+ TOS_OBJ_INIT(task, KNL_OBJ_TYPE_TASK);
#if TOS_CFG_TASK_DYNAMIC_CREATE_EN > 0u
knl_object_alloc_set_static(&task->knl_obj);
#endif
diff --git a/kernel/core/tos_timer.c b/kernel/core/tos_timer.c
index 371024a8..568fabd8 100644
--- a/kernel/core/tos_timer.c
+++ b/kernel/core/tos_timer.c
@@ -82,10 +82,6 @@ __STATIC__ void timer_takeoff(k_timer_t *tmr)
__STATIC_INLINE__ void timer_reset(k_timer_t *tmr)
{
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_deinit(&tmr->knl_obj);
-#endif
-
tmr->state = TIMER_STATE_UNUSED;
tmr->delay = (k_tick_t)0u;
tmr->expires = (k_tick_t)0u;
@@ -94,6 +90,8 @@ __STATIC_INLINE__ void timer_reset(k_timer_t *tmr)
tmr->cb = K_NULL;
tmr->cb_arg = K_NULL;
tos_list_init(&tmr->list);
+
+ TOS_OBJ_DEINIT(tmr);
}
__API__ k_err_t tos_timer_create(k_timer_t *tmr,
@@ -127,10 +125,6 @@ __API__ k_err_t tos_timer_create(k_timer_t *tmr,
return K_ERR_TIMER_PERIOD_FOREVER;
}
-#if TOS_CFG_OBJECT_VERIFY_EN > 0u
- knl_object_init(&tmr->knl_obj, KNL_OBJ_TYPE_TIMER);
-#endif
-
tmr->state = TIMER_STATE_STOPPED;
tmr->delay = delay;
tmr->expires = (k_tick_t)0u;
@@ -139,6 +133,9 @@ __API__ k_err_t tos_timer_create(k_timer_t *tmr,
tmr->cb = callback;
tmr->cb_arg = cb_arg;
tos_list_init(&tmr->list);
+
+ TOS_OBJ_INIT(tmr, KNL_OBJ_TYPE_TIMER);
+
return K_ERR_NONE;
}
diff --git a/net/at/include/tos_at.h b/net/at/include/tos_at.h
index afaef871..665b2cb5 100644
--- a/net/at/include/tos_at.h
+++ b/net/at/include/tos_at.h
@@ -362,7 +362,7 @@ __API__ int tos_at_raw_data_send_until(at_echo_t *echo, uint32_t timeout, const
*
* @return None
*/
-__API__ void tos_at_uart_write_byte(uint8_t data);
+__API__ void tos_at_uart_input_byte(uint8_t data);
/**
* @brief A global lock provided by at framework.
diff --git a/net/at/src/tos_at.c b/net/at/src/tos_at.c
index 0298b6d1..95eca8a8 100644
--- a/net/at/src/tos_at.c
+++ b/net/at/src/tos_at.c
@@ -907,7 +907,7 @@ __API__ void tos_at_deinit(void)
/* To completely decouple the uart intterupt and at agent, we need a more powerful
hal(driver framework), that would be a huge work, we place it in future plans. */
-__API__ void tos_at_uart_write_byte(uint8_t data)
+__API__ void tos_at_uart_input_byte(uint8_t data)
{
if (tos_chr_fifo_push(&AT_AGENT->uart_rx_fifo, data) == K_ERR_NONE) {
tos_sem_post(&AT_AGENT->uart_rx_sem);
diff --git a/platform/hal/st/stm32f4xx/src/tos_hal_uart.c b/platform/hal/st/stm32f4xx/src/tos_hal_uart.c
index 051dca5a..151c8551 100644
--- a/platform/hal/st/stm32f4xx/src/tos_hal_uart.c
+++ b/platform/hal/st/stm32f4xx/src/tos_hal_uart.c
@@ -35,12 +35,13 @@ __API__ int tos_hal_uart_write(hal_uart_t *uart, const uint8_t *buf, size_t size
}
uart_handle = (UART_HandleTypeDef *)uart->private_uart;
- (void)HAL_UART_Transmit(uart_handle, buf, size, timeout);
+ (void)HAL_UART_Transmit(uart_handle, (uint8_t *)buf, size, timeout);
+ return 0;
}
__API__ int tos_hal_uart_read(hal_uart_t *uart, const uint8_t *buf, size_t size, uint32_t timeout)
{
-
+ return 0;
}
__API__ int tos_hal_uart_deinit(hal_uart_t *uart)