24 changed files with 593 additions and 380 deletions
-
35.cproject
-
42.mxproject
-
4.settings/stm32cubeide.project.prefs
-
30Core/Inc/FreeRTOSConfig.h
-
76Core/Inc/stm32f4xx_hal_conf.h
-
88Core/Src/freertos.c
-
256Core/Src/usart.c.bak
-
2Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.c
-
2Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.h
-
2STM32F407VETX_FLASH.ld
-
2a8000_protocol
-
6a8000_subboard.ioc
-
2sdk
-
6usrc/main.cpp
-
3usrc/project_configs.h
-
9usrc/public_service/gins.c
-
7usrc/public_service/gins.h
-
7usrc/public_service/stm32irq.c
-
21usrc/subboards/subboard30_shake_module/pri_board.h
-
89usrc/subboards/subboard30_shake_module/subboard30_shake_module.cpp
-
73usrc/subboards/subboard30_shake_module/subboard30_shake_module_board.c
-
21usrc/subboards/subboard30_shake_module/subboard30_shake_module_board.h
-
135usrc/sysmgr/sys_mgr.cpp
-
49usrc/sysmgr/sys_mgr.hpp
42
.mxproject
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -1,6 +1,6 @@ |
|||||
2F62501ED4689FB349E356AB974DBE57=E20EF8A1CFA8D2AA5E7713614514A9E1 |
|
||||
|
2F62501ED4689FB349E356AB974DBE57=04980315A9C90A386CC08C1FEA19B581 |
||||
635E684B79701B039C64EA45C3F84D30=C8B026EBE17C208F17FB66CE4235156C |
635E684B79701B039C64EA45C3F84D30=C8B026EBE17C208F17FB66CE4235156C |
||||
66BE74F758C12D739921AEA421D593D3=1 |
66BE74F758C12D739921AEA421D593D3=1 |
||||
8DF89ED150041C4CBC7CB9A9CAA90856=E20EF8A1CFA8D2AA5E7713614514A9E1 |
|
||||
|
8DF89ED150041C4CBC7CB9A9CAA90856=04980315A9C90A386CC08C1FEA19B581 |
||||
DC22A860405A8BF2F2C095E5B6529F12=EC6C4D369FD4F7EABFE17B3222B5F3A0 |
DC22A860405A8BF2F2C095E5B6529F12=EC6C4D369FD4F7EABFE17B3222B5F3A0 |
||||
eclipse.preferences.version=1 |
eclipse.preferences.version=1 |
@ -1,256 +0,0 @@ |
|||||
/* USER CODE BEGIN Header */ |
|
||||
/** |
|
||||
****************************************************************************** |
|
||||
* @file usart.c |
|
||||
* @brief This file provides code for the configuration |
|
||||
* of the USART instances. |
|
||||
****************************************************************************** |
|
||||
* @attention |
|
||||
* |
|
||||
* Copyright (c) 2023 STMicroelectronics. |
|
||||
* All rights reserved. |
|
||||
* |
|
||||
* This software is licensed under terms that can be found in the LICENSE file |
|
||||
* in the root directory of this software component. |
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS. |
|
||||
* |
|
||||
****************************************************************************** |
|
||||
*/ |
|
||||
/* USER CODE END Header */ |
|
||||
/* Includes ------------------------------------------------------------------*/ |
|
||||
#include "usart.h" |
|
||||
|
|
||||
/* USER CODE BEGIN 0 */ |
|
||||
|
|
||||
/* USER CODE END 0 */ |
|
||||
|
|
||||
UART_HandleTypeDef huart1; |
|
||||
UART_HandleTypeDef huart3; |
|
||||
DMA_HandleTypeDef hdma_usart1_rx; |
|
||||
DMA_HandleTypeDef hdma_usart3_rx; |
|
||||
DMA_HandleTypeDef hdma_usart3_tx; |
|
||||
|
|
||||
/* USART1 init function */ |
|
||||
|
|
||||
void MX_USART1_UART_Init(void) |
|
||||
{ |
|
||||
|
|
||||
/* USER CODE BEGIN USART1_Init 0 */ |
|
||||
|
|
||||
/* USER CODE END USART1_Init 0 */ |
|
||||
|
|
||||
/* USER CODE BEGIN USART1_Init 1 */ |
|
||||
|
|
||||
/* USER CODE END USART1_Init 1 */ |
|
||||
huart1.Instance = USART1; |
|
||||
huart1.Init.BaudRate = 460800; |
|
||||
huart1.Init.WordLength = UART_WORDLENGTH_8B; |
|
||||
huart1.Init.StopBits = UART_STOPBITS_1; |
|
||||
huart1.Init.Parity = UART_PARITY_NONE; |
|
||||
huart1.Init.Mode = UART_MODE_TX_RX; |
|
||||
huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; |
|
||||
huart1.Init.OverSampling = UART_OVERSAMPLING_16; |
|
||||
if (HAL_UART_Init(&huart1) != HAL_OK) |
|
||||
{ |
|
||||
Error_Handler(); |
|
||||
} |
|
||||
/* USER CODE BEGIN USART1_Init 2 */ |
|
||||
|
|
||||
/* USER CODE END USART1_Init 2 */ |
|
||||
|
|
||||
} |
|
||||
/* USART3 init function */ |
|
||||
|
|
||||
void MX_USART3_UART_Init(void) |
|
||||
{ |
|
||||
|
|
||||
/* USER CODE BEGIN USART3_Init 0 */ |
|
||||
|
|
||||
/* USER CODE END USART3_Init 0 */ |
|
||||
|
|
||||
/* USER CODE BEGIN USART3_Init 1 */ |
|
||||
|
|
||||
/* USER CODE END USART3_Init 1 */ |
|
||||
huart3.Instance = USART3; |
|
||||
huart3.Init.BaudRate = 1000000; |
|
||||
huart3.Init.WordLength = UART_WORDLENGTH_8B; |
|
||||
huart3.Init.StopBits = UART_STOPBITS_1; |
|
||||
huart3.Init.Parity = UART_PARITY_NONE; |
|
||||
huart3.Init.Mode = UART_MODE_TX_RX; |
|
||||
huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE; |
|
||||
huart3.Init.OverSampling = UART_OVERSAMPLING_16; |
|
||||
if (HAL_UART_Init(&huart3) != HAL_OK) |
|
||||
{ |
|
||||
Error_Handler(); |
|
||||
} |
|
||||
/* USER CODE BEGIN USART3_Init 2 */ |
|
||||
|
|
||||
/* USER CODE END USART3_Init 2 */ |
|
||||
|
|
||||
} |
|
||||
|
|
||||
void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle) |
|
||||
{ |
|
||||
|
|
||||
GPIO_InitTypeDef GPIO_InitStruct = {0}; |
|
||||
if(uartHandle->Instance==USART1) |
|
||||
{ |
|
||||
/* USER CODE BEGIN USART1_MspInit 0 */ |
|
||||
|
|
||||
/* USER CODE END USART1_MspInit 0 */ |
|
||||
/* USART1 clock enable */ |
|
||||
__HAL_RCC_USART1_CLK_ENABLE(); |
|
||||
|
|
||||
__HAL_RCC_GPIOA_CLK_ENABLE(); |
|
||||
/**USART1 GPIO Configuration |
|
||||
PA9 ------> USART1_TX |
|
||||
PA10 ------> USART1_RX |
|
||||
*/ |
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10; |
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; |
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL; |
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; |
|
||||
GPIO_InitStruct.Alternate = GPIO_AF7_USART1; |
|
||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); |
|
||||
|
|
||||
/* USART1 DMA Init */ |
|
||||
/* USART1_RX Init */ |
|
||||
hdma_usart1_rx.Instance = DMA2_Stream2; |
|
||||
hdma_usart1_rx.Init.Channel = DMA_CHANNEL_4; |
|
||||
hdma_usart1_rx.Init.Direction = DMA_PERIPH_TO_MEMORY; |
|
||||
hdma_usart1_rx.Init.PeriphInc = DMA_PINC_DISABLE; |
|
||||
hdma_usart1_rx.Init.MemInc = DMA_MINC_ENABLE; |
|
||||
hdma_usart1_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; |
|
||||
hdma_usart1_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; |
|
||||
hdma_usart1_rx.Init.Mode = DMA_NORMAL; |
|
||||
hdma_usart1_rx.Init.Priority = DMA_PRIORITY_LOW; |
|
||||
hdma_usart1_rx.Init.FIFOMode = DMA_FIFOMODE_DISABLE; |
|
||||
if (HAL_DMA_Init(&hdma_usart1_rx) != HAL_OK) |
|
||||
{ |
|
||||
Error_Handler(); |
|
||||
} |
|
||||
|
|
||||
__HAL_LINKDMA(uartHandle,hdmarx,hdma_usart1_rx); |
|
||||
|
|
||||
/* USART1 interrupt Init */ |
|
||||
HAL_NVIC_SetPriority(USART1_IRQn, 5, 0); |
|
||||
HAL_NVIC_EnableIRQ(USART1_IRQn); |
|
||||
/* USER CODE BEGIN USART1_MspInit 1 */ |
|
||||
|
|
||||
/* USER CODE END USART1_MspInit 1 */ |
|
||||
} |
|
||||
else if(uartHandle->Instance==USART3) |
|
||||
{ |
|
||||
/* USER CODE BEGIN USART3_MspInit 0 */ |
|
||||
|
|
||||
/* USER CODE END USART3_MspInit 0 */ |
|
||||
/* USART3 clock enable */ |
|
||||
__HAL_RCC_USART3_CLK_ENABLE(); |
|
||||
|
|
||||
__HAL_RCC_GPIOB_CLK_ENABLE(); |
|
||||
/**USART3 GPIO Configuration |
|
||||
PB10 ------> USART3_TX |
|
||||
PB11 ------> USART3_RX |
|
||||
*/ |
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11; |
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; |
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL; |
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; |
|
||||
GPIO_InitStruct.Alternate = GPIO_AF7_USART3; |
|
||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); |
|
||||
|
|
||||
/* USART3 DMA Init */ |
|
||||
/* USART3_RX Init */ |
|
||||
hdma_usart3_rx.Instance = DMA1_Stream1; |
|
||||
hdma_usart3_rx.Init.Channel = DMA_CHANNEL_4; |
|
||||
hdma_usart3_rx.Init.Direction = DMA_PERIPH_TO_MEMORY; |
|
||||
hdma_usart3_rx.Init.PeriphInc = DMA_PINC_DISABLE; |
|
||||
hdma_usart3_rx.Init.MemInc = DMA_MINC_ENABLE; |
|
||||
hdma_usart3_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; |
|
||||
hdma_usart3_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; |
|
||||
hdma_usart3_rx.Init.Mode = DMA_NORMAL; |
|
||||
hdma_usart3_rx.Init.Priority = DMA_PRIORITY_LOW; |
|
||||
hdma_usart3_rx.Init.FIFOMode = DMA_FIFOMODE_DISABLE; |
|
||||
if (HAL_DMA_Init(&hdma_usart3_rx) != HAL_OK) |
|
||||
{ |
|
||||
Error_Handler(); |
|
||||
} |
|
||||
|
|
||||
__HAL_LINKDMA(uartHandle,hdmarx,hdma_usart3_rx); |
|
||||
|
|
||||
/* USART3_TX Init */ |
|
||||
hdma_usart3_tx.Instance = DMA1_Stream3; |
|
||||
hdma_usart3_tx.Init.Channel = DMA_CHANNEL_4; |
|
||||
hdma_usart3_tx.Init.Direction = DMA_MEMORY_TO_PERIPH; |
|
||||
hdma_usart3_tx.Init.PeriphInc = DMA_PINC_DISABLE; |
|
||||
hdma_usart3_tx.Init.MemInc = DMA_MINC_ENABLE; |
|
||||
hdma_usart3_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; |
|
||||
hdma_usart3_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; |
|
||||
hdma_usart3_tx.Init.Mode = DMA_NORMAL; |
|
||||
hdma_usart3_tx.Init.Priority = DMA_PRIORITY_LOW; |
|
||||
hdma_usart3_tx.Init.FIFOMode = DMA_FIFOMODE_DISABLE; |
|
||||
if (HAL_DMA_Init(&hdma_usart3_tx) != HAL_OK) |
|
||||
{ |
|
||||
Error_Handler(); |
|
||||
} |
|
||||
|
|
||||
__HAL_LINKDMA(uartHandle,hdmatx,hdma_usart3_tx); |
|
||||
|
|
||||
/* USER CODE BEGIN USART3_MspInit 1 */ |
|
||||
|
|
||||
/* USER CODE END USART3_MspInit 1 */ |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle) |
|
||||
{ |
|
||||
|
|
||||
if(uartHandle->Instance==USART1) |
|
||||
{ |
|
||||
/* USER CODE BEGIN USART1_MspDeInit 0 */ |
|
||||
|
|
||||
/* USER CODE END USART1_MspDeInit 0 */ |
|
||||
/* Peripheral clock disable */ |
|
||||
__HAL_RCC_USART1_CLK_DISABLE(); |
|
||||
|
|
||||
/**USART1 GPIO Configuration |
|
||||
PA9 ------> USART1_TX |
|
||||
PA10 ------> USART1_RX |
|
||||
*/ |
|
||||
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10); |
|
||||
|
|
||||
/* USART1 DMA DeInit */ |
|
||||
HAL_DMA_DeInit(uartHandle->hdmarx); |
|
||||
|
|
||||
/* USART1 interrupt Deinit */ |
|
||||
HAL_NVIC_DisableIRQ(USART1_IRQn); |
|
||||
/* USER CODE BEGIN USART1_MspDeInit 1 */ |
|
||||
|
|
||||
/* USER CODE END USART1_MspDeInit 1 */ |
|
||||
} |
|
||||
else if(uartHandle->Instance==USART3) |
|
||||
{ |
|
||||
/* USER CODE BEGIN USART3_MspDeInit 0 */ |
|
||||
|
|
||||
/* USER CODE END USART3_MspDeInit 0 */ |
|
||||
/* Peripheral clock disable */ |
|
||||
__HAL_RCC_USART3_CLK_DISABLE(); |
|
||||
|
|
||||
/**USART3 GPIO Configuration |
|
||||
PB10 ------> USART3_TX |
|
||||
PB11 ------> USART3_RX |
|
||||
*/ |
|
||||
HAL_GPIO_DeInit(GPIOB, GPIO_PIN_10|GPIO_PIN_11); |
|
||||
|
|
||||
/* USART3 DMA DeInit */ |
|
||||
HAL_DMA_DeInit(uartHandle->hdmarx); |
|
||||
HAL_DMA_DeInit(uartHandle->hdmatx); |
|
||||
/* USER CODE BEGIN USART3_MspDeInit 1 */ |
|
||||
|
|
||||
/* USER CODE END USART3_MspDeInit 1 */ |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/* USER CODE BEGIN 1 */ |
|
||||
|
|
||||
/* USER CODE END 1 */ |
|
@ -1 +1 @@ |
|||||
Subproject commit 232ed7c739e2ee86fe127f6364648a0d50378391 |
|
||||
|
Subproject commit 05207cdd53d36969e7d605aa65f3fa34af819e6e |
@ -1 +1 @@ |
|||||
Subproject commit faf6a7ee02b3b4d2efa1231430a64ed982ac0f84 |
|
||||
|
Subproject commit f59bc6e7b8cbaa2a0d57ec2141fa933b202eda5b |
@ -0,0 +1,21 @@ |
|||||
|
#pragma once |
||||
|
|
||||
|
#define TMC_MOTOR_SPI hspi1 |
||||
|
// JL_CSN |
||||
|
#define MOTOR1_CSN PA4 |
||||
|
#define MOTOR1_ENN PE3 |
||||
|
#define MOTOR1_SPI_MODE_SELECT PinNull |
||||
|
#define MOTOR1_REFL PD13 |
||||
|
#define MOTOR1_REFR PD14 |
||||
|
// SL_CSN |
||||
|
#define MOTOR2_CSN PA8 |
||||
|
#define MOTOR2_ENN PE6 |
||||
|
#define MOTOR2_SPI_MODE_SELECT PinNull |
||||
|
#define MOTOR2_REFL PD11 |
||||
|
#define MOTOR2_REFR PD12 |
||||
|
// CL_CSN |
||||
|
#define MOTOR3_CSN PA15 |
||||
|
#define MOTOR3_ENN PE7 |
||||
|
#define MOTOR3_SPI_MODE_SELECT PinNull |
||||
|
#define MOTOR3_REFL PD9 |
||||
|
#define MOTOR3_REFR PD10 |
@ -0,0 +1,135 @@ |
|||||
|
#include "sys_mgr.hpp"
|
||||
|
#include "sdk/os/zos.hpp"
|
||||
|
#include "project_configs.h"
|
||||
|
|
||||
|
#include <stdlib.h>
|
||||
|
#include <string.h>
|
||||
|
|
||||
|
using namespace iflytop; |
||||
|
|
||||
|
#define TAG "SysMgr"
|
||||
|
|
||||
|
|
||||
|
extern "C" { |
||||
|
|
||||
|
/***********************************************************************************************************************
|
||||
|
* STM32_CODE_ERROR * |
||||
|
***********************************************************************************************************************/ |
||||
|
void SysMgr_on_Error_Handler() { |
||||
|
ZLOGE(TAG, "Error_Handler\n"); |
||||
|
while (1) { |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
void SysMgr_on_assert_failed(uint8_t* file, uint32_t line) { |
||||
|
ZLOGE(TAG, "ASSERT: %s [%s:%d]\n", file, line); |
||||
|
while (1) { |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/***********************************************************************************************************************
|
||||
|
* STM32_ERROR_IRQ * |
||||
|
***********************************************************************************************************************/ |
||||
|
void SysMgr_on_NMI_Handler(void) { ZLOGI(TAG, "on NMI_Handler"); } |
||||
|
void SysMgr_on_HardFault_Handler(void) { ZLOGI(TAG, "on HardFault_Handler"); } |
||||
|
void SysMgr_on_MemManage_Handler(void) { ZLOGI(TAG, "on MemManage_Handler"); } |
||||
|
void SysMgr_on_BusFault_Handler(void) { ZLOGI(TAG, "on BusFault_Handler"); } |
||||
|
void SysMgr_on_UsageFault_Handler(void) { ZLOGI(TAG, "on UsageFault_Handler"); } |
||||
|
|
||||
|
/***********************************************************************************************************************
|
||||
|
* FREERTOS_ERROR * |
||||
|
***********************************************************************************************************************/ |
||||
|
void vApplicationStackOverflowHook(xTaskHandle xTask, signed char* pcTaskName) { |
||||
|
ZLOGE(TAG, "StackOverflowHook: %s\n", pcTaskName); |
||||
|
__disable_irq(); |
||||
|
while (1) { |
||||
|
} |
||||
|
} |
||||
|
void vApplicationMallocFailedHook(void) { |
||||
|
ZLOGE(TAG, "MallocFailedHook\n"); |
||||
|
__disable_irq(); |
||||
|
while (1) { |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
SysMgr* SysMgr::ins() { |
||||
|
static SysMgr s_ins; |
||||
|
return &s_ins; |
||||
|
} |
||||
|
// void SysMgr::regTaskId(osThreadId id) {
|
||||
|
// m_task[m_ntask].Id = id;
|
||||
|
// m_ntask++;
|
||||
|
// }
|
||||
|
size_t SysMgr::osGetSysRunTime() { return HAL_GetTick(); } |
||||
|
UBaseType_t uxTaskGetSystemState(TaskStatus_t* const pxTaskStatusArray, const UBaseType_t uxArraySize, uint32_t* const pulTotalRunTime); |
||||
|
|
||||
|
void SysMgr::initedFinished() { //
|
||||
|
static TaskStatus_t pxTaskStatusArray[SDK_MAX_TASK + 1]; |
||||
|
UBaseType_t uxArraySize = SDK_MAX_TASK + 1; |
||||
|
uint32_t pulTotalRunTime; |
||||
|
m_ntask = uxTaskGetSystemState(pxTaskStatusArray, uxArraySize, &pulTotalRunTime); |
||||
|
for (int i = 0; i < m_ntask; i++) { |
||||
|
m_task[i].Id = pxTaskStatusArray[i].xHandle; |
||||
|
} |
||||
|
ZASSERT_INFO(m_ntask < SDK_MAX_TASK, "task num is too large, please increase SDK_MAX_TASK"); |
||||
|
} |
||||
|
|
||||
|
size_t SysMgr::osGetMinimumEverFreeHeapSize() { return ::xPortGetMinimumEverFreeHeapSize(); } |
||||
|
size_t SysMgr::osGetFreeHeapSize() { return ::xPortGetFreeHeapSize(); } |
||||
|
size_t SysMgr::osGetTotalHeapSize() { return configTOTAL_HEAP_SIZE; } |
||||
|
int32_t SysMgr::getTaskNum() { return m_ntask; } |
||||
|
|
||||
|
void SysMgr::dumpSysInfo() { |
||||
|
zos_log("---------------Heap Info--------------\n"); |
||||
|
zos_log("MinimumEverFreeHeapSize: %d\n", osGetMinimumEverFreeHeapSize()); |
||||
|
zos_log("FreeHeapSize : %d\n", osGetFreeHeapSize()); |
||||
|
zos_log("TotalHeapSize : %d\n", osGetTotalHeapSize()); |
||||
|
zos_log(""); |
||||
|
|
||||
|
zos_log("---------------Task Info--------------\n"); |
||||
|
static char buf[40 * SDK_MAX_TASK]; // 40一个任务,最多支持10个任务
|
||||
|
vTaskList(buf); |
||||
|
zos_log("Name State Priority Stack Num\n"); |
||||
|
zlog_raw(buf); |
||||
|
zos_log("- TaskInfoEnd -\n"); |
||||
|
} |
||||
|
|
||||
|
uint32_t SysMgr::osTaskStackRemainingSize(osThreadId id) { return uxTaskGetStackHighWaterMark(id); } |
||||
|
const char* SysMgr::osTaskName(osThreadId id) { return pcTaskGetName(id); } |
||||
|
|
||||
|
osThreadId SysMgr::osGetId(int offset) { |
||||
|
if (offset < m_ntask) { |
||||
|
return m_task[offset].Id; |
||||
|
} |
||||
|
return NULL; |
||||
|
} |
||||
|
|
||||
|
void SysMgr::osTaskName(osThreadId id, char* name, int bufsize) { |
||||
|
strncpy(name, pcTaskGetName(id), bufsize); |
||||
|
name[bufsize - 1] = 0; |
||||
|
} |
||||
|
void SysMgr::osTaskStackRemainingSize(osThreadId id, uint16_t* remainsize) { *remainsize = uxTaskGetStackHighWaterMark(id); } |
||||
|
void SysMgr::osTaskPriority(osThreadId id, uint16_t* priority) { *priority = uxTaskPriorityGet(id); } |
||||
|
void SysMgr::osTaskGetState(osThreadId id, char* state) { |
||||
|
eTaskState task_state = eTaskGetState(id); |
||||
|
switch (task_state) { |
||||
|
case eRunning: |
||||
|
*state = 'X'; |
||||
|
break; |
||||
|
case eReady: |
||||
|
*state = 'R'; |
||||
|
break; |
||||
|
case eBlocked: |
||||
|
*state = 'B'; |
||||
|
break; |
||||
|
case eSuspended: |
||||
|
*state = 'S'; |
||||
|
break; |
||||
|
case eDeleted: |
||||
|
*state = 'D'; |
||||
|
break; |
||||
|
default: |
||||
|
*state = '?'; |
||||
|
break; |
||||
|
} |
||||
|
} |
@ -0,0 +1,49 @@ |
|||||
|
#pragma once
|
||||
|
#include "cmsis_os.h"
|
||||
|
|
||||
|
namespace iflytop { |
||||
|
class ZTaskInfo { |
||||
|
public: |
||||
|
osThreadId Id; |
||||
|
}; |
||||
|
|
||||
|
class SysMgr { |
||||
|
private: |
||||
|
/* data */ |
||||
|
|
||||
|
public: |
||||
|
ZTaskInfo m_task[30] = {0}; |
||||
|
int m_ntask = 0; |
||||
|
|
||||
|
static SysMgr* ins(); |
||||
|
void initedFinished(); |
||||
|
|
||||
|
void dumpSysInfo(); |
||||
|
|
||||
|
size_t osGetSysRunTime(); |
||||
|
|
||||
|
/***********************************************************************************************************************
|
||||
|
* HeapMgr * |
||||
|
***********************************************************************************************************************/ |
||||
|
size_t osGetMinimumEverFreeHeapSize(); |
||||
|
size_t osGetFreeHeapSize(); |
||||
|
size_t osGetTotalHeapSize(); |
||||
|
|
||||
|
/***********************************************************************************************************************
|
||||
|
* TaskInfo * |
||||
|
***********************************************************************************************************************/ |
||||
|
|
||||
|
osThreadId osGetId(int offset); |
||||
|
|
||||
|
uint32_t osTaskStackRemainingSize(osThreadId id); |
||||
|
const char* osTaskName(osThreadId id); |
||||
|
|
||||
|
void osTaskName(osThreadId id, char* name, int bufsize); |
||||
|
void osTaskStackRemainingSize(osThreadId id, uint16_t* remainsize); |
||||
|
void osTaskPriority(osThreadId id, uint16_t* priority); |
||||
|
void osTaskGetState(osThreadId id, char* state); |
||||
|
|
||||
|
int32_t getTaskNum(); |
||||
|
}; |
||||
|
|
||||
|
} // namespace iflytop
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue