Working LVGL.
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
This commit is contained in:
parent
37bfc7094a
commit
68f07b8895
|
@ -14,7 +14,7 @@ steps:
|
|||
- mkdir build
|
||||
- cd build
|
||||
- cmake -DCMAKE_TOOLCHAIN_FILE=arm-none-eabi.cmake ..
|
||||
- make
|
||||
- make STM32H750XB_Hello_RAM.elf
|
||||
|
||||
image_pull_secrets:
|
||||
- pull-secret
|
||||
|
|
|
@ -28,6 +28,7 @@ set(C_SOURCES
|
|||
"Core/Src/user_lvgl_impl.c"
|
||||
"Core/Src/user_printf_impl.c"
|
||||
"Core/Src/tasks/user_hello_task.c"
|
||||
"Core/Src/tasks/user_lvgl_task.c"
|
||||
"Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c"
|
||||
"Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c"
|
||||
"Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c"
|
||||
|
|
|
@ -320,11 +320,11 @@ typedef void * lv_indev_drv_user_data_t; /*Type of user data in the i
|
|||
* LV_LOG_LEVEL_ERROR Only critical issue, when the system may fail
|
||||
* LV_LOG_LEVEL_NONE Do not log anything
|
||||
*/
|
||||
# define LV_LOG_LEVEL LV_LOG_LEVEL_INFO
|
||||
#define LV_LOG_LEVEL LV_LOG_LEVEL_INFO
|
||||
|
||||
/* 1: Print the log with 'printf';
|
||||
* 0: user need to register a callback with `lv_log_register_print_cb`*/
|
||||
# define LV_LOG_PRINTF 0
|
||||
#define LV_LOG_PRINTF 0
|
||||
#endif /*LV_USE_LOG*/
|
||||
|
||||
/*=================
|
||||
|
@ -386,7 +386,7 @@ typedef void * lv_indev_drv_user_data_t; /*Type of user data in the i
|
|||
#define LV_FONT_MONTSERRAT_18 0
|
||||
#define LV_FONT_MONTSERRAT_20 0
|
||||
#define LV_FONT_MONTSERRAT_22 0
|
||||
#define LV_FONT_MONTSERRAT_24 0
|
||||
#define LV_FONT_MONTSERRAT_24 1
|
||||
#define LV_FONT_MONTSERRAT_26 0
|
||||
#define LV_FONT_MONTSERRAT_28 0
|
||||
#define LV_FONT_MONTSERRAT_30 0
|
||||
|
@ -477,10 +477,10 @@ typedef void * lv_font_user_data_t;
|
|||
#define LV_THEME_DEFAULT_COLOR_PRIMARY lv_color_hex(0x01a2b1)
|
||||
#define LV_THEME_DEFAULT_COLOR_SECONDARY lv_color_hex(0x44d1b6)
|
||||
#define LV_THEME_DEFAULT_FLAG LV_THEME_MATERIAL_FLAG_LIGHT
|
||||
#define LV_THEME_DEFAULT_FONT_SMALL &lv_font_montserrat_14
|
||||
#define LV_THEME_DEFAULT_FONT_NORMAL &lv_font_montserrat_14
|
||||
#define LV_THEME_DEFAULT_FONT_SUBTITLE &lv_font_montserrat_14
|
||||
#define LV_THEME_DEFAULT_FONT_TITLE &lv_font_montserrat_14
|
||||
#define LV_THEME_DEFAULT_FONT_SMALL &lv_font_montserrat_24
|
||||
#define LV_THEME_DEFAULT_FONT_NORMAL &lv_font_montserrat_24
|
||||
#define LV_THEME_DEFAULT_FONT_SUBTITLE &lv_font_montserrat_24
|
||||
#define LV_THEME_DEFAULT_FONT_TITLE &lv_font_montserrat_24
|
||||
|
||||
/*=================
|
||||
* Text settings
|
||||
|
|
|
@ -56,6 +56,7 @@ void DebugMon_Handler(void);
|
|||
void PVD_AVD_IRQHandler(void);
|
||||
void FLASH_IRQHandler(void);
|
||||
void RCC_IRQHandler(void);
|
||||
void DMA1_Stream0_IRQHandler(void);
|
||||
void TIM2_IRQHandler(void);
|
||||
void TIM3_IRQHandler(void);
|
||||
void USART1_IRQHandler(void);
|
||||
|
|
|
@ -6,5 +6,7 @@
|
|||
#include "lvgl.h"
|
||||
|
||||
void user_lvgl_impl_log_cb(lv_log_level_t level, const char *file, uint32_t line, const char *fn_name, const char *dsc);
|
||||
void user_lvgl_impl_flush_cb(lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p);
|
||||
void user_lvgl_impl_clean_dcache_cb(lv_disp_drv_t *disp_drv);
|
||||
|
||||
#endif
|
|
@ -3,10 +3,23 @@
|
|||
|
||||
#include "cmsis_os2.h"
|
||||
|
||||
#define USER_LVGL_EVENT_FLAG_READY 0x00000001
|
||||
|
||||
void user_tasks_init(void);
|
||||
|
||||
extern osThreadId_t g_user_hello_task_handle;
|
||||
extern osThreadAttr_t g_user_hello_task_attributes;
|
||||
void user_hello_task(void * argument);
|
||||
|
||||
void user_hello_task(void *argument);
|
||||
|
||||
extern osThreadId_t g_user_lvgl_task_handle;
|
||||
extern osThreadAttr_t g_user_lvgl_task_attributes;
|
||||
|
||||
extern osMutexId_t g_user_lvgl_mutex_handle;
|
||||
extern osMutexAttr_t g_user_lvgl_mutex_attributes;
|
||||
|
||||
extern osEventFlagsId_t g_user_lvgl_event_handle;
|
||||
|
||||
void user_lvgl_task(void *argument);
|
||||
|
||||
#endif
|
|
@ -53,6 +53,7 @@ TIM_HandleTypeDef htim3;
|
|||
|
||||
UART_HandleTypeDef huart1;
|
||||
|
||||
DMA_HandleTypeDef hdma_memtomem_dma1_stream0;
|
||||
SDRAM_HandleTypeDef hsdram1;
|
||||
|
||||
/* Definitions for defaultTask */
|
||||
|
@ -71,6 +72,7 @@ void SystemClock_Config(void);
|
|||
void PeriphCommonClock_Config(void);
|
||||
static void MPU_Config(void);
|
||||
static void MX_GPIO_Init(void);
|
||||
static void MX_DMA_Init(void);
|
||||
static void MX_RTC_Init(void);
|
||||
static void MX_TIM3_Init(void);
|
||||
static void MX_TIM2_Init(void);
|
||||
|
@ -128,6 +130,7 @@ int main(void)
|
|||
|
||||
/* Initialize all configured peripherals */
|
||||
MX_GPIO_Init();
|
||||
MX_DMA_Init();
|
||||
MX_RTC_Init();
|
||||
MX_TIM3_Init();
|
||||
MX_TIM2_Init();
|
||||
|
@ -261,7 +264,7 @@ void PeriphCommonClock_Config(void)
|
|||
PeriphClkInitStruct.PLL3.PLL3N = 172;
|
||||
PeriphClkInitStruct.PLL3.PLL3P = 2;
|
||||
PeriphClkInitStruct.PLL3.PLL3Q = 4;
|
||||
PeriphClkInitStruct.PLL3.PLL3R = 10;
|
||||
PeriphClkInitStruct.PLL3.PLL3R = 6;
|
||||
PeriphClkInitStruct.PLL3.PLL3RGE = RCC_PLL3VCIRANGE_0;
|
||||
PeriphClkInitStruct.PLL3.PLL3VCOSEL = RCC_PLL3VCOMEDIUM;
|
||||
PeriphClkInitStruct.PLL3.PLL3FRACN = 1762;
|
||||
|
@ -568,6 +571,43 @@ static void MX_USART1_UART_Init(void)
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable DMA controller clock
|
||||
* Configure DMA for memory to memory transfers
|
||||
* hdma_memtomem_dma1_stream0
|
||||
*/
|
||||
static void MX_DMA_Init(void)
|
||||
{
|
||||
|
||||
/* DMA controller clock enable */
|
||||
__HAL_RCC_DMA1_CLK_ENABLE();
|
||||
|
||||
/* Configure DMA request hdma_memtomem_dma1_stream0 on DMA1_Stream0 */
|
||||
hdma_memtomem_dma1_stream0.Instance = DMA1_Stream0;
|
||||
hdma_memtomem_dma1_stream0.Init.Request = DMA_REQUEST_MEM2MEM;
|
||||
hdma_memtomem_dma1_stream0.Init.Direction = DMA_MEMORY_TO_MEMORY;
|
||||
hdma_memtomem_dma1_stream0.Init.PeriphInc = DMA_PINC_ENABLE;
|
||||
hdma_memtomem_dma1_stream0.Init.MemInc = DMA_MINC_ENABLE;
|
||||
hdma_memtomem_dma1_stream0.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;
|
||||
hdma_memtomem_dma1_stream0.Init.MemDataAlignment = DMA_MDATAALIGN_WORD;
|
||||
hdma_memtomem_dma1_stream0.Init.Mode = DMA_NORMAL;
|
||||
hdma_memtomem_dma1_stream0.Init.Priority = DMA_PRIORITY_LOW;
|
||||
hdma_memtomem_dma1_stream0.Init.FIFOMode = DMA_FIFOMODE_ENABLE;
|
||||
hdma_memtomem_dma1_stream0.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL;
|
||||
hdma_memtomem_dma1_stream0.Init.MemBurst = DMA_MBURST_SINGLE;
|
||||
hdma_memtomem_dma1_stream0.Init.PeriphBurst = DMA_PBURST_SINGLE;
|
||||
if (HAL_DMA_Init(&hdma_memtomem_dma1_stream0) != HAL_OK)
|
||||
{
|
||||
Error_Handler( );
|
||||
}
|
||||
|
||||
/* DMA interrupt init */
|
||||
/* DMA1_Stream0_IRQn interrupt configuration */
|
||||
HAL_NVIC_SetPriority(DMA1_Stream0_IRQn, 5, 0);
|
||||
HAL_NVIC_EnableIRQ(DMA1_Stream0_IRQn);
|
||||
|
||||
}
|
||||
|
||||
/* FMC initialization function */
|
||||
static void MX_FMC_Init(void)
|
||||
{
|
||||
|
|
|
@ -151,7 +151,7 @@ void HAL_LTDC_MspInit(LTDC_HandleTypeDef* hltdc)
|
|||
|GPIO_PIN_7|GPIO_PIN_2|GPIO_PIN_0|GPIO_PIN_1;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_MEDIUM;
|
||||
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
|
||||
HAL_GPIO_Init(GPIOK, &GPIO_InitStruct);
|
||||
|
||||
|
@ -161,14 +161,14 @@ void HAL_LTDC_MspInit(LTDC_HandleTypeDef* hltdc)
|
|||
|GPIO_PIN_5|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_MEDIUM;
|
||||
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
|
||||
HAL_GPIO_Init(GPIOJ, &GPIO_InitStruct);
|
||||
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_MEDIUM;
|
||||
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
|
||||
HAL_GPIO_Init(GPIOI, &GPIO_InitStruct);
|
||||
|
||||
|
|
|
@ -56,6 +56,7 @@
|
|||
/* USER CODE END 0 */
|
||||
|
||||
/* External variables --------------------------------------------------------*/
|
||||
extern DMA_HandleTypeDef hdma_memtomem_dma1_stream0;
|
||||
extern SDRAM_HandleTypeDef hsdram1;
|
||||
extern LTDC_HandleTypeDef hltdc;
|
||||
extern TIM_HandleTypeDef htim2;
|
||||
|
@ -207,6 +208,20 @@ void RCC_IRQHandler(void)
|
|||
/* USER CODE END RCC_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles DMA1 stream0 global interrupt.
|
||||
*/
|
||||
void DMA1_Stream0_IRQHandler(void)
|
||||
{
|
||||
/* USER CODE BEGIN DMA1_Stream0_IRQn 0 */
|
||||
|
||||
/* USER CODE END DMA1_Stream0_IRQn 0 */
|
||||
HAL_DMA_IRQHandler(&hdma_memtomem_dma1_stream0);
|
||||
/* USER CODE BEGIN DMA1_Stream0_IRQn 1 */
|
||||
|
||||
/* USER CODE END DMA1_Stream0_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles TIM2 global interrupt.
|
||||
*/
|
||||
|
|
|
@ -6,10 +6,6 @@
|
|||
|
||||
#include "user_tasks.h"
|
||||
|
||||
// SDRAM BANK 2, default mapping
|
||||
#define SDRAM_START 0xD0000000
|
||||
#define SDRAM_END 0xD4000000
|
||||
|
||||
osThreadId_t g_user_hello_task_handle;
|
||||
osThreadAttr_t g_user_hello_task_attributes = {
|
||||
.name = "HELO",
|
||||
|
@ -17,10 +13,26 @@ osThreadAttr_t g_user_hello_task_attributes = {
|
|||
.priority = (osPriority_t) osPriorityNormal,
|
||||
};
|
||||
|
||||
void user_hello_task(void * argument) {
|
||||
LV_LOG_INFO("Hello task initialized.");
|
||||
void user_hello_task(void *argument) {
|
||||
LV_LOG_INFO("Hello task started.");
|
||||
if(osMutexAcquire(g_user_lvgl_mutex_handle, osWaitForever) == osOK) {
|
||||
lv_obj_t * label1 = lv_label_create(lv_scr_act(), NULL);
|
||||
lv_label_set_long_mode(label1, LV_LABEL_LONG_BREAK); /*Break the long lines*/
|
||||
lv_label_set_recolor(label1, true); /*Enable re-coloring by commands in the text*/
|
||||
lv_label_set_align(label1, LV_LABEL_ALIGN_CENTER); /*Center aligned lines*/
|
||||
lv_label_set_text(label1, "#0000ff Re-color# #ff00ff words# #ff0000 of a# label "
|
||||
"and wrap long text automatically.");
|
||||
lv_obj_set_width(label1, 200);
|
||||
lv_obj_align(label1, NULL, LV_ALIGN_CENTER, 0, -30);
|
||||
|
||||
lv_obj_t * label2 = lv_label_create(lv_scr_act(), NULL);
|
||||
lv_label_set_long_mode(label2, LV_LABEL_LONG_SROLL_CIRC); /*Circular scroll*/
|
||||
lv_obj_set_width(label2, 200);
|
||||
lv_label_set_text(label2, "It is a circularly scrolling text. ");
|
||||
lv_obj_align(label2, NULL, LV_ALIGN_CENTER, 0, 40);
|
||||
osMutexRelease(g_user_lvgl_mutex_handle);
|
||||
}
|
||||
for(;;) {
|
||||
LV_LOG_INFO("Hello world @%ld.", osKernelGetTickCount());
|
||||
osDelay(1000);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,89 @@
|
|||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "lvgl.h"
|
||||
|
||||
#include "user_lvgl_impl.h"
|
||||
|
||||
#include "user_tasks.h"
|
||||
|
||||
osThreadId_t g_user_lvgl_tick_handle;
|
||||
osThreadAttr_t g_user_lvgl_tick_attributes = {
|
||||
.name = "LV_TICK",
|
||||
.stack_size = 128 * 4,
|
||||
.priority = (osPriority_t) osPriorityAboveNormal
|
||||
};
|
||||
|
||||
osThreadId_t g_user_lvgl_task_handle;
|
||||
osThreadAttr_t g_user_lvgl_task_attributes = {
|
||||
.name = "LV_TASK",
|
||||
.stack_size = 384 * 4,
|
||||
.priority = (osPriority_t) osPriorityBelowNormal
|
||||
};
|
||||
|
||||
osMutexId_t g_user_lvgl_mutex_handle;
|
||||
osMutexAttr_t g_user_lvgl_mutex_attributes = {
|
||||
.name = "LV_MUTX",
|
||||
.attr_bits = osMutexRecursive | osMutexPrioInherit,
|
||||
.cb_mem = NULL,
|
||||
.cb_size = 0U
|
||||
};
|
||||
|
||||
osEventFlagsId_t g_user_lvgl_event_handle;
|
||||
|
||||
lv_disp_buf_t g_user_lvgl_disp_buf;
|
||||
lv_disp_t *g_user_lvgl_disp;
|
||||
|
||||
void user_lvgl_tick(void *argument) {
|
||||
for(;;) {
|
||||
if(osMutexAcquire(g_user_lvgl_mutex_handle, 1000) == osOK) {
|
||||
lv_tick_inc(27);
|
||||
osMutexRelease(g_user_lvgl_mutex_handle);
|
||||
} else {
|
||||
LV_LOG_INFO("Lock mutex failed.");
|
||||
}
|
||||
osDelay(27);
|
||||
}
|
||||
}
|
||||
|
||||
void user_lvgl_task(void *argument) {
|
||||
|
||||
g_user_lvgl_mutex_handle = osMutexNew(&g_user_lvgl_mutex_attributes);
|
||||
if(g_user_lvgl_mutex_handle == NULL) {
|
||||
osThreadExit();
|
||||
}
|
||||
|
||||
lv_init();
|
||||
lv_log_register_print_cb(user_lvgl_impl_log_cb);
|
||||
|
||||
lv_disp_buf_init(&g_user_lvgl_disp_buf, (void *)0xD0100000, (void *)0xD0300000, 800 * 480);
|
||||
|
||||
lv_disp_drv_t disp_drv;
|
||||
lv_disp_drv_init(&disp_drv);
|
||||
disp_drv.buffer = &g_user_lvgl_disp_buf;
|
||||
disp_drv.flush_cb = user_lvgl_impl_flush_cb;
|
||||
disp_drv.clean_dcache_cb = user_lvgl_impl_clean_dcache_cb;
|
||||
|
||||
g_user_lvgl_disp = lv_disp_drv_register(&disp_drv);
|
||||
|
||||
g_user_lvgl_tick_handle = osThreadNew(user_lvgl_tick, NULL, &g_user_lvgl_tick_attributes);
|
||||
if(g_user_lvgl_tick_handle == NULL) {
|
||||
LV_LOG_ERROR("Failed to create tick thread.");
|
||||
osThreadExit();
|
||||
}
|
||||
|
||||
LV_LOG_INFO("LVGL initialized at %ld, stack avail: %ldbytes.", osKernelGetTickCount(), osThreadGetStackSpace(g_user_lvgl_task_handle));
|
||||
|
||||
osEventFlagsSet(g_user_lvgl_event_handle, USER_LVGL_EVENT_FLAG_READY);
|
||||
|
||||
for(;;) {
|
||||
if(osMutexAcquire(g_user_lvgl_mutex_handle, 1000) == osOK) {
|
||||
lv_task_handler();
|
||||
osMutexRelease(g_user_lvgl_mutex_handle);
|
||||
} else {
|
||||
LV_LOG_INFO("Lock mutex failed.");
|
||||
}
|
||||
osDelay(25);
|
||||
}
|
||||
}
|
|
@ -1,14 +1,29 @@
|
|||
#include "stm32h7xx_hal.h"
|
||||
|
||||
#include "printf.h"
|
||||
|
||||
#include "user_lvgl_impl.h"
|
||||
|
||||
extern LTDC_HandleTypeDef hltdc;
|
||||
|
||||
void user_lvgl_impl_log_cb(lv_log_level_t level, const char *file, uint32_t line, const char *fn_name, const char *dsc) {
|
||||
if(level == LV_LOG_LEVEL_ERROR) printf("\033[31m [ERROR] ");
|
||||
if(level == LV_LOG_LEVEL_WARN) printf("\033[33m [ WARN] ");
|
||||
if(level == LV_LOG_LEVEL_INFO) printf("\033[34m [ INFO] ");
|
||||
if(level == LV_LOG_LEVEL_TRACE) printf("\033[36m [TRACE] ");
|
||||
if(level == LV_LOG_LEVEL_ERROR) printf("\033[31m[ERROR] ");
|
||||
if(level == LV_LOG_LEVEL_WARN) printf("\033[33m[ WARN] ");
|
||||
if(level == LV_LOG_LEVEL_INFO) printf("\033[34m[ INFO] ");
|
||||
if(level == LV_LOG_LEVEL_TRACE) printf("\033[36m[TRACE] ");
|
||||
|
||||
printf("%s:%d, %s(): %s", file, line, fn_name, dsc);
|
||||
|
||||
printf("\033[m\r\n");
|
||||
}
|
||||
|
||||
void user_lvgl_impl_flush_cb(lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p) {
|
||||
if(HAL_LTDC_SetAddress(&hltdc, (uint32_t)color_p, LTDC_LAYER_1) != HAL_OK) {
|
||||
printf("Set LTDC address error.\r\n");
|
||||
}
|
||||
lv_disp_flush_ready(disp_drv);
|
||||
}
|
||||
|
||||
void user_lvgl_impl_clean_dcache_cb(lv_disp_drv_t *disp_drv) {
|
||||
SCB_CleanInvalidateDCache_by_Addr((uint32_t *)0xD0100000, 0x00400000);
|
||||
}
|
|
@ -1,12 +1,22 @@
|
|||
#include "lvgl.h"
|
||||
|
||||
#include "user_lvgl_impl.h"
|
||||
#include "main.h"
|
||||
|
||||
#include "user_tasks.h"
|
||||
|
||||
void user_tasks_init(void) {
|
||||
lv_init();
|
||||
lv_log_register_print_cb(user_lvgl_impl_log_cb);
|
||||
// Create LVGL event flag.
|
||||
g_user_lvgl_event_handle = osEventFlagsNew(NULL);
|
||||
if(g_user_lvgl_event_handle == NULL) {
|
||||
osThreadExit();
|
||||
}
|
||||
|
||||
g_user_lvgl_task_handle = osThreadNew(user_lvgl_task, NULL, &g_user_lvgl_task_attributes);
|
||||
if(g_user_lvgl_task_handle == NULL) Error_Handler();
|
||||
|
||||
// Wait here to make sure LVGL is initialized.
|
||||
osEventFlagsWait(g_user_lvgl_event_handle, USER_LVGL_EVENT_FLAG_READY, 0U, osWaitForever);
|
||||
|
||||
g_user_hello_task_handle = osThreadNew(user_hello_task, NULL, &g_user_hello_task_attributes);
|
||||
if(g_user_hello_task_handle == NULL) Error_Handler();
|
||||
}
|
2
Makefile
2
Makefile
|
@ -1,5 +1,5 @@
|
|||
##########################################################################################################################
|
||||
# File automatically-generated by tool: [projectgenerator] version: [3.13.0-B3] date: [Wed Mar 03 00:08:05 CST 2021]
|
||||
# File automatically-generated by tool: [projectgenerator] version: [3.13.0-B3] date: [Wed Mar 03 23:47:59 CST 2021]
|
||||
##########################################################################################################################
|
||||
|
||||
# ------------------------------------------------
|
||||
|
|
|
@ -4,6 +4,9 @@
|
|||
Fire H750XB board
|
||||
|
||||
## Build System
|
||||
|
||||
[![Build Status](https://ci.minori.work/api/badges/STM32_Projects/STM32H750XB_Hello/status.svg)](https://ci.minori.work/STM32_Projects/STM32H750XB_Hello)
|
||||
|
||||
CMake v3.10+
|
||||
|
||||
Build Instructions
|
||||
|
|
|
@ -33,6 +33,29 @@ CORTEX_M7.Size-Cortex_Memory_Protection_Unit_Region3_Settings=MPU_REGION_SIZE_64
|
|||
CORTEX_M7.TypeExtField-Cortex_Memory_Protection_Unit_Region1_Settings=MPU_TEX_LEVEL1
|
||||
CORTEX_M7.TypeExtField-Cortex_Memory_Protection_Unit_Region2_Settings=MPU_TEX_LEVEL1
|
||||
CORTEX_M7.TypeExtField-Cortex_Memory_Protection_Unit_Region3_Settings=MPU_TEX_LEVEL1
|
||||
Dma.MEMTOMEM.0.Direction=DMA_MEMORY_TO_MEMORY
|
||||
Dma.MEMTOMEM.0.EventEnable=DISABLE
|
||||
Dma.MEMTOMEM.0.FIFOMode=DMA_FIFOMODE_ENABLE
|
||||
Dma.MEMTOMEM.0.FIFOThreshold=DMA_FIFO_THRESHOLD_FULL
|
||||
Dma.MEMTOMEM.0.Instance=DMA1_Stream0
|
||||
Dma.MEMTOMEM.0.MemBurst=DMA_MBURST_SINGLE
|
||||
Dma.MEMTOMEM.0.MemDataAlignment=DMA_MDATAALIGN_WORD
|
||||
Dma.MEMTOMEM.0.MemInc=DMA_MINC_ENABLE
|
||||
Dma.MEMTOMEM.0.Mode=DMA_NORMAL
|
||||
Dma.MEMTOMEM.0.PeriphBurst=DMA_PBURST_SINGLE
|
||||
Dma.MEMTOMEM.0.PeriphDataAlignment=DMA_PDATAALIGN_WORD
|
||||
Dma.MEMTOMEM.0.PeriphInc=DMA_PINC_ENABLE
|
||||
Dma.MEMTOMEM.0.Polarity=HAL_DMAMUX_REQ_GEN_RISING
|
||||
Dma.MEMTOMEM.0.Priority=DMA_PRIORITY_LOW
|
||||
Dma.MEMTOMEM.0.RequestNumber=1
|
||||
Dma.MEMTOMEM.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,FIFOThreshold,MemBurst,PeriphBurst,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber
|
||||
Dma.MEMTOMEM.0.SignalID=NONE
|
||||
Dma.MEMTOMEM.0.SyncEnable=DISABLE
|
||||
Dma.MEMTOMEM.0.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT
|
||||
Dma.MEMTOMEM.0.SyncRequestNumber=1
|
||||
Dma.MEMTOMEM.0.SyncSignalID=NONE
|
||||
Dma.Request0=MEMTOMEM
|
||||
Dma.RequestsNb=1
|
||||
FMC.CASLatency1=FMC_SDRAM_CAS_LATENCY_2
|
||||
FMC.ColumnBitsNumber1=FMC_SDRAM_COLUMN_BITS_NUM_9
|
||||
FMC.ExitSelfRefreshDelay1=5
|
||||
|
@ -77,17 +100,18 @@ LTDC.WindowY1_L0=479
|
|||
Mcu.Family=STM32H7
|
||||
Mcu.IP0=CORTEX_M7
|
||||
Mcu.IP1=DEBUG
|
||||
Mcu.IP10=TIM3
|
||||
Mcu.IP11=USART1
|
||||
Mcu.IP2=FMC
|
||||
Mcu.IP3=FREERTOS
|
||||
Mcu.IP4=LTDC
|
||||
Mcu.IP5=NVIC
|
||||
Mcu.IP6=RCC
|
||||
Mcu.IP7=RTC
|
||||
Mcu.IP8=SYS
|
||||
Mcu.IP9=TIM2
|
||||
Mcu.IPNb=12
|
||||
Mcu.IP10=TIM2
|
||||
Mcu.IP11=TIM3
|
||||
Mcu.IP12=USART1
|
||||
Mcu.IP2=DMA
|
||||
Mcu.IP3=FMC
|
||||
Mcu.IP4=FREERTOS
|
||||
Mcu.IP5=LTDC
|
||||
Mcu.IP6=NVIC
|
||||
Mcu.IP7=RCC
|
||||
Mcu.IP8=RTC
|
||||
Mcu.IP9=SYS
|
||||
Mcu.IPNb=13
|
||||
Mcu.Name=STM32H750XBHx
|
||||
Mcu.Package=TFBGA240
|
||||
Mcu.Pin0=PI6
|
||||
|
@ -201,6 +225,7 @@ Mcu.UserName=STM32H750XBHx
|
|||
MxCube.Version=6.2.0
|
||||
MxDb.Version=DB.6.0.20
|
||||
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
||||
NVIC.DMA1_Stream0_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true
|
||||
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
||||
NVIC.FLASH_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true
|
||||
NVIC.FMC_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true
|
||||
|
@ -367,15 +392,23 @@ PI1.Locked=true
|
|||
PI1.Signal=FMC_D25
|
||||
PI10.Locked=true
|
||||
PI10.Signal=FMC_D31
|
||||
PI12.GPIOParameters=GPIO_Speed
|
||||
PI12.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
|
||||
PI12.Locked=true
|
||||
PI12.Mode=RGB888
|
||||
PI12.Signal=LTDC_HSYNC
|
||||
PI13.GPIOParameters=GPIO_Speed
|
||||
PI13.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
|
||||
PI13.Locked=true
|
||||
PI13.Mode=RGB888
|
||||
PI13.Signal=LTDC_VSYNC
|
||||
PI14.GPIOParameters=GPIO_Speed
|
||||
PI14.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
|
||||
PI14.Locked=true
|
||||
PI14.Mode=RGB888
|
||||
PI14.Signal=LTDC_CLK
|
||||
PI15.GPIOParameters=GPIO_Speed
|
||||
PI15.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
|
||||
PI15.Locked=true
|
||||
PI15.Mode=RGB888
|
||||
PI15.Signal=LTDC_R0
|
||||
|
@ -393,75 +426,123 @@ PI7.Locked=true
|
|||
PI7.Signal=FMC_D29
|
||||
PI9.Locked=true
|
||||
PI9.Signal=FMC_D30
|
||||
PJ0.GPIOParameters=GPIO_Speed
|
||||
PJ0.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
|
||||
PJ0.Locked=true
|
||||
PJ0.Mode=RGB888
|
||||
PJ0.Signal=LTDC_R1
|
||||
PJ1.GPIOParameters=GPIO_Speed
|
||||
PJ1.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
|
||||
PJ1.Locked=true
|
||||
PJ1.Mode=RGB888
|
||||
PJ1.Signal=LTDC_R2
|
||||
PJ10.GPIOParameters=GPIO_Speed
|
||||
PJ10.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
|
||||
PJ10.Locked=true
|
||||
PJ10.Mode=RGB888
|
||||
PJ10.Signal=LTDC_G3
|
||||
PJ11.GPIOParameters=GPIO_Speed
|
||||
PJ11.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
|
||||
PJ11.Locked=true
|
||||
PJ11.Mode=RGB888
|
||||
PJ11.Signal=LTDC_G4
|
||||
PJ12.GPIOParameters=GPIO_Speed
|
||||
PJ12.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
|
||||
PJ12.Locked=true
|
||||
PJ12.Mode=RGB888
|
||||
PJ12.Signal=LTDC_B0
|
||||
PJ13.GPIOParameters=GPIO_Speed
|
||||
PJ13.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
|
||||
PJ13.Locked=true
|
||||
PJ13.Mode=RGB888
|
||||
PJ13.Signal=LTDC_B1
|
||||
PJ14.GPIOParameters=GPIO_Speed
|
||||
PJ14.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
|
||||
PJ14.Locked=true
|
||||
PJ14.Mode=RGB888
|
||||
PJ14.Signal=LTDC_B2
|
||||
PJ15.GPIOParameters=GPIO_Speed
|
||||
PJ15.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
|
||||
PJ15.Locked=true
|
||||
PJ15.Mode=RGB888
|
||||
PJ15.Signal=LTDC_B3
|
||||
PJ2.GPIOParameters=GPIO_Speed
|
||||
PJ2.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
|
||||
PJ2.Locked=true
|
||||
PJ2.Mode=RGB888
|
||||
PJ2.Signal=LTDC_R3
|
||||
PJ3.GPIOParameters=GPIO_Speed
|
||||
PJ3.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
|
||||
PJ3.Locked=true
|
||||
PJ3.Mode=RGB888
|
||||
PJ3.Signal=LTDC_R4
|
||||
PJ4.GPIOParameters=GPIO_Speed
|
||||
PJ4.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
|
||||
PJ4.Locked=true
|
||||
PJ4.Mode=RGB888
|
||||
PJ4.Signal=LTDC_R5
|
||||
PJ5.GPIOParameters=GPIO_Speed
|
||||
PJ5.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
|
||||
PJ5.Locked=true
|
||||
PJ5.Mode=RGB888
|
||||
PJ5.Signal=LTDC_R6
|
||||
PJ6.GPIOParameters=GPIO_Speed
|
||||
PJ6.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
|
||||
PJ6.Locked=true
|
||||
PJ6.Mode=RGB888
|
||||
PJ6.Signal=LTDC_R7
|
||||
PJ7.GPIOParameters=GPIO_Speed
|
||||
PJ7.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
|
||||
PJ7.Locked=true
|
||||
PJ7.Mode=RGB888
|
||||
PJ7.Signal=LTDC_G0
|
||||
PJ8.GPIOParameters=GPIO_Speed
|
||||
PJ8.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
|
||||
PJ8.Locked=true
|
||||
PJ8.Mode=RGB888
|
||||
PJ8.Signal=LTDC_G1
|
||||
PJ9.GPIOParameters=GPIO_Speed
|
||||
PJ9.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
|
||||
PJ9.Locked=true
|
||||
PJ9.Mode=RGB888
|
||||
PJ9.Signal=LTDC_G2
|
||||
PK0.GPIOParameters=GPIO_Speed
|
||||
PK0.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
|
||||
PK0.Locked=true
|
||||
PK0.Mode=RGB888
|
||||
PK0.Signal=LTDC_G5
|
||||
PK1.GPIOParameters=GPIO_Speed
|
||||
PK1.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
|
||||
PK1.Locked=true
|
||||
PK1.Mode=RGB888
|
||||
PK1.Signal=LTDC_G6
|
||||
PK2.GPIOParameters=GPIO_Speed
|
||||
PK2.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
|
||||
PK2.Locked=true
|
||||
PK2.Mode=RGB888
|
||||
PK2.Signal=LTDC_G7
|
||||
PK3.GPIOParameters=GPIO_Speed
|
||||
PK3.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
|
||||
PK3.Locked=true
|
||||
PK3.Mode=RGB888
|
||||
PK3.Signal=LTDC_B4
|
||||
PK4.GPIOParameters=GPIO_Speed
|
||||
PK4.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
|
||||
PK4.Locked=true
|
||||
PK4.Mode=RGB888
|
||||
PK4.Signal=LTDC_B5
|
||||
PK5.GPIOParameters=GPIO_Speed
|
||||
PK5.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
|
||||
PK5.Locked=true
|
||||
PK5.Mode=RGB888
|
||||
PK5.Signal=LTDC_B6
|
||||
PK6.GPIOParameters=GPIO_Speed
|
||||
PK6.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
|
||||
PK6.Locked=true
|
||||
PK6.Mode=RGB888
|
||||
PK6.Signal=LTDC_B7
|
||||
PK7.GPIOParameters=GPIO_Speed
|
||||
PK7.GPIO_Speed=GPIO_SPEED_FREQ_MEDIUM
|
||||
PK7.Locked=true
|
||||
PK7.Mode=RGB888
|
||||
PK7.Signal=LTDC_DE
|
||||
|
@ -494,7 +575,7 @@ ProjectManager.StackSize=0x400
|
|||
ProjectManager.TargetToolchain=Makefile
|
||||
ProjectManager.ToolChainLocation=
|
||||
ProjectManager.UnderRoot=false
|
||||
ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_RTC_Init-RTC-false-HAL-true,4-MX_TIM3_Init-TIM3-false-HAL-true,5-MX_TIM2_Init-TIM2-false-HAL-true,6-MX_FMC_Init-FMC-false-HAL-true,7-MX_USART1_UART_Init-USART1-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true
|
||||
ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-MX_DMA_Init-DMA-false-HAL-true,3-SystemClock_Config-RCC-false-HAL-false,4-MX_RTC_Init-RTC-false-HAL-true,5-MX_TIM3_Init-TIM3-false-HAL-true,6-MX_TIM2_Init-TIM2-false-HAL-true,7-MX_FMC_Init-FMC-false-HAL-true,8-MX_USART1_UART_Init-USART1-false-HAL-true,9-MX_LTDC_Init-LTDC-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true
|
||||
RCC.ADCFreq_Value=133000000
|
||||
RCC.AHB12Freq_Value=60000000
|
||||
RCC.AHB4Freq_Value=60000000
|
||||
|
@ -526,8 +607,8 @@ RCC.DIVQ3=4
|
|||
RCC.DIVQ3Freq_Value=43053771.97265625
|
||||
RCC.DIVR1Freq_Value=120000000
|
||||
RCC.DIVR2Freq_Value=133000000
|
||||
RCC.DIVR3=10
|
||||
RCC.DIVR3Freq_Value=17221508.7890625
|
||||
RCC.DIVR3=6
|
||||
RCC.DIVR3Freq_Value=28702514.6484375
|
||||
RCC.EnbaleCSS=true
|
||||
RCC.FDCANFreq_Value=120000000
|
||||
RCC.FMCCLockSelection=RCC_FMCCLKSOURCE_PLL2
|
||||
|
@ -544,7 +625,7 @@ RCC.LPTIM1Freq_Value=60000000
|
|||
RCC.LPTIM2Freq_Value=60000000
|
||||
RCC.LPTIM345Freq_Value=60000000
|
||||
RCC.LPUART1Freq_Value=60000000
|
||||
RCC.LTDCFreq_Value=17221508.7890625
|
||||
RCC.LTDCFreq_Value=28702514.6484375
|
||||
RCC.MCO1PinFreq_Value=64000000
|
||||
RCC.MCO2PinFreq_Value=120000000
|
||||
RCC.PLL3FRACN=1762
|
||||
|
|
Loading…
Reference in New Issue