Browse Source

软件包修改

master
sc 1 month ago
parent
commit
2fd0bf135d
  1. 1514
      .cproject
  2. 2
      .project
  3. 1
      .settings/org.eclipse.core.resources.prefs
  4. 2
      .settings/projcfg.ini
  5. 1
      applications/INI/config.c
  6. 2
      applications/PLC_link.c
  7. 2
      applications/SCCM_link.c
  8. 51
      applications/lvgl/lv__user_gui.c
  9. 4
      applications/lvgl/lv_port_disp.c
  10. 7
      applications/main.c
  11. 3
      applications/sdram/sdram_port.c
  12. 12
      applications/sdram/sdram_port.h
  13. 2
      applications/wdt.c
  14. 4
      cubemx/.mxproject
  15. 29
      cubemx/EWARM/cubemx.ewp
  16. 2
      cubemx/Inc/stm32h7xx_hal_conf.h
  17. 3
      cubemx/Inc/stm32h7xx_it.h
  18. 198
      cubemx/Src/main.c
  19. 184
      cubemx/Src/stm32h7xx_hal_msp.c
  20. 45
      cubemx/Src/stm32h7xx_it.c
  21. 264
      cubemx/cubemx.ioc
  22. 8
      drivers/board.h
  23. 2
      exclude_list.json
  24. 4
      makefile.targets
  25. 15
      packages/LVGL-v8.3.11/env_support/rt-thread/lv_rt_thread_port.c
  26. BIN
      packages/packages.dbsqlite
  27. 96
      rt-thread/components/drivers/include/drivers/lcd.h

1514
.cproject

File diff suppressed because it is too large

2
.project

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>828F</name>
<name>project</name>
<comment />
<projects>
</projects>

1
.settings/org.eclipse.core.resources.prefs

@ -1,3 +1,4 @@
eclipse.preferences.disable_command_length_limit=true
eclipse.preferences.version=1
encoding/<project>=UTF-8
rtt-studio.preferences.STM32CubeMX.exe.path=C\:\\Users\\Administrator\\AppData\\Local\\Programs\\STM32CubeMX\\STM32CubeMX.exe

2
.settings/projcfg.ini

@ -1,5 +1,5 @@
#RT-Thread Studio Project Configuration
#Thu Nov 27 01:44:39 CST 2025
#Wed Dec 03 21:07:10 CST 2025
project_type=rtt
chip_name=STM32H743IITx
cpu_name=None

1
applications/INI/config.c

@ -25,7 +25,6 @@ int read_write_sample(void)
// 初始化INI解析器
INI_File *ini = ini_init();
if (!ini) {
rt_kprintf("1\n");
return -1;
}
// 解析INI文件

2
applications/DATA_uart2.c → applications/PLC_link.c

@ -40,7 +40,6 @@ static void mb_plc_read_regs(mb_inst_t *hinst)
int total = mb_read_input_regs(hinst, addr, nb, regs);
if (total <= 0)
{
LOG_E("modbus read register fail.");
return;
}
u8 regsM[64];
@ -49,7 +48,6 @@ static void mb_plc_read_regs(mb_inst_t *hinst)
int totalM = mb_read_bits(hinst, addrM, nbM, regsM);
if (totalM <= 0)
{
LOG_E("modbus read register fail.");
return;
}
}

2
applications/DATA_uart1.c → applications/SCCM_link.c

@ -21,7 +21,7 @@
static struct rt_semaphore rx_sem;
#define RX_LINE_BUF_SIZE 1024
#define RS485_SAMPLE_SLAVE_SERIAL "uart1"
#define RS485_SAMPLE_SLAVE_SERIAL "uart4"
#define RS485_SAMPLE_SLAVE_BAUDRATE 57600
#define RS485_SAMPLE_MASTER_PARITY 0 //0 -- none parity
#define RS485_SAMPLE_SLAVE_PIN -1 //-1 -- nonuse rs485 mode control

51
applications/lvgl/lv__user_gui.c

@ -7,11 +7,56 @@
* Date Author Notes
* 2025-11-25 Administrator the first version
*/
#include <rtthread.h>
#include <rtdevice.h>
#include <board.h>
#include "lvgl.h"
#define DBG_TAG "gui"
#define DBG_LVL DBG_LOG
#include <rtdbg.h>
#define LCD_BL_PIN GET_PIN(D,12)
#define LCD_RST_PIN GET_PIN(D,11)
void lv_user_gui_init(void)
{
lv_obj_t *label = lv_label_create(lv_scr_act());
lv_label_set_text(label, "Hello LVGL on RT-Thread!");
lv_obj_align(label, LV_ALIGN_CENTER, 0, 0);
// rt_pin_mode(LCD_BL_PIN, PIN_MODE_OUTPUT);
// rt_pin_write( LCD_BL_PIN, PIN_HIGH);
// rt_pin_mIN, ode(LCD_RST_PIN, PIN_MODE_OUTPUT);
// rt_pin_write( LCD_RST_PPIN_LOW);
// 检查 LTDC 是否全局使能
if (LTDC->GCR & LTDC_GCR_LTDCEN)
{
LOG_D("LTDC is ENABLED");
}
else
{
LOG_E("LTDC is NOT enabled!");
}
// 检查图层 0 是否使能
if (LTDC_Layer1->CR & LTDC_LxCR_LEN)
{
LOG_D("Layer 0 is ENABLED");
}
else
{
LOG_E("Layer 0 is NOT enabled!");
}
if (__HAL_RCC_LTDC_IS_CLK_ENABLED())
{
LOG_D("LTDC clock is enabled");
}
else
{
LOG_E("LTDC clock is DISABLED! <-- This is likely the root cause");
}
// lv_obj_t *label = lv_label_create(lv_scr_act());
// lv_label_set_text(label, "Hello LVGL on RT-Thread!");
// lv_obj_align(label, LV_ALIGN_CENTER, 0, 0);
}
//INIT_APP_EXPORT(lv_user_gui_init);

4
applications/lvgl/lv_port_disp.c

@ -17,12 +17,12 @@
*********************/
#ifndef MY_DISP_HOR_RES
#warning Please define or replace the macro MY_DISP_HOR_RES with the actual screen width, default value 320 is used for now.
#define MY_DISP_HOR_RES 800
#define MY_DISP_HOR_RES 1024
#endif
#ifndef MY_DISP_VER_RES
#warning Please define or replace the macro MY_DISP_HOR_RES with the actual screen height, default value 240 is used for now.
#define MY_DISP_VER_RES 480
#define MY_DISP_VER_RES 600
#endif
/**********************

7
applications/main.c

@ -12,7 +12,8 @@
#include <dfs_posix.h>
#include <light/RUN_LED.h>
#include "DB_SQLite.h"
#include "lv__user_gui.h"
#include "lcd.h"
#define DBG_TAG "main"
#define DBG_LVL DBG_LOG
#include <rtdbg.h>
@ -24,5 +25,9 @@ int main(void)
rt_sem_take(mount_sem, rt_tick_from_millisecond(5000)); // 等待挂载完成,最多等待 5 秒
thread_DB_SQLite();
thread_RUN_LED();//运行指示灯线程
lcd_init();
// lv_user_gui_init();
return RT_EOK;
}

3
applications/sdram/sdram_port.c

@ -83,6 +83,7 @@ static void SDRAM_Initialization_Sequence(SDRAM_HandleTypeDef *hsdram, FMC_SDRAM
/* Set the device refresh counter */
HAL_SDRAM_ProgramRefreshRate(hsdram, SDRAM_REFRESH_COUNT);
}
static int SDRAM_Init(void)
{
int result = RT_EOK;
@ -235,7 +236,7 @@ MSH_CMD_EXPORT(sdram_test, sdram test)
/* 从片内 RAM 和 片外 SDRAM 顺序申请测试 */
void malloc_test(void)
{
int size = 50 * 1024; // 50KBytes
int size = 1024 * 1024; // 50KBytes
rt_uint8_t * ptr = RT_NULL;
ptr = rt_malloc(size);
if(ptr != RT_NULL)

12
applications/sdram/sdram_port.h

@ -30,18 +30,22 @@
#define SDCLOCK_PERIOD 2
/* refresh rate counter */
//#define SDRAM_REFRESH_COUNT ((uint32_t)0x02AB)
#define SDRAM_REFRESH_COUNT ((uint32_t)0x1000)
//#define SDRAM_REFRESH_COUNT ((uint32_t)0x1000)
#define SDRAM_REFRESH_COUNT ((uint32_t)0x0396)
#define SDRAM_SIZE ((uint32_t)0x2000000)
/* Timing configuration for W9825G6KH-6 */
/* 90 MHz of SD clock frequency (180MHz/2) */
/* TMRD: 2 Clock cycles */
#define LOADTOACTIVEDELAY 2
/* TXSR: 7x11.90ns */
#define EXITSELFREFRESHDELAY 12
//#define EXITSELFREFRESHDELAY 12
#define EXITSELFREFRESHDELAY 7
/* TRAS: 4x11.90ns */
#define SELFREFRESHTIME 12
//#define SELFREFRESHTIME 12
#define SELFREFRESHTIME 5
/* TRC: 7x11.90ns */
#define ROWCYCLEDELAY 10
//#define ROWCYCLEDELAY 10
#define ROWCYCLEDELAY 7
/* TWR: 2 Clock cycles */
#define WRITERECOVERYTIME 2
/* TRP: 2x11.90ns */

2
applications/wdt.c

@ -69,4 +69,4 @@ static int wdt_sample()
return ret;
}
INIT_APP_EXPORT(wdt_sample);
//INIT_APP_EXPORT(wdt_sample);

4
cubemx/.mxproject

File diff suppressed because one or more lines are too long

29
cubemx/EWARM/cubemx.ewp

@ -1097,19 +1097,7 @@
<name>$PROJ_DIR$/../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c</name>
</file>
<file>
<name>$PROJ_DIR$/../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_fmc.c</name>
</file>
<file>
<name>$PROJ_DIR$/../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_nor.c</name>
</file>
<file>
<name>$PROJ_DIR$/../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_sram.c</name>
</file>
<file>
<name>$PROJ_DIR$/../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_nand.c</name>
</file>
<file>
<name>$PROJ_DIR$/../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_sdram.c</name>
<name>$PROJ_DIR$/../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma2d.c</name>
</file>
<file>
<name>$PROJ_DIR$/../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c</name>
@ -1156,6 +1144,21 @@
<file>
<name>$PROJ_DIR$/../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_exti.c</name>
</file>
<file>
<name>$PROJ_DIR$/../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_fmc.c</name>
</file>
<file>
<name>$PROJ_DIR$/../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_nor.c</name>
</file>
<file>
<name>$PROJ_DIR$/../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_sram.c</name>
</file>
<file>
<name>$PROJ_DIR$/../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_nand.c</name>
</file>
<file>
<name>$PROJ_DIR$/../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_sdram.c</name>
</file>
<file>
<name>$PROJ_DIR$/../Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_iwdg.c</name>
</file>

2
cubemx/Inc/stm32h7xx_hal_conf.h

@ -44,7 +44,7 @@
/* #define HAL_CRYP_MODULE_ENABLED */
/* #define HAL_DAC_MODULE_ENABLED */
/* #define HAL_DCMI_MODULE_ENABLED */
/* #define HAL_DMA2D_MODULE_ENABLED */
#define HAL_DMA2D_MODULE_ENABLED
/* #define HAL_ETH_MODULE_ENABLED */
/* #define HAL_ETH_LEGACY_MODULE_ENABLED */
/* #define HAL_NAND_MODULE_ENABLED */

3
cubemx/Inc/stm32h7xx_it.h

@ -55,9 +55,8 @@ void SVC_Handler(void);
void DebugMon_Handler(void);
void PendSV_Handler(void);
void SysTick_Handler(void);
void DMA1_Stream0_IRQHandler(void);
void USART1_IRQHandler(void);
void SDMMC1_IRQHandler(void);
void LTDC_IRQHandler(void);
void QUADSPI_IRQHandler(void);
/* USER CODE BEGIN EFP */

198
cubemx/Src/main.c

@ -41,6 +41,8 @@
/* Private variables ---------------------------------------------------------*/
DMA2D_HandleTypeDef hdma2d;
IWDG_HandleTypeDef hiwdg1;
LTDC_HandleTypeDef hltdc;
@ -51,9 +53,9 @@ RTC_HandleTypeDef hrtc;
SD_HandleTypeDef hsd1;
UART_HandleTypeDef huart4;
UART_HandleTypeDef huart1;
UART_HandleTypeDef huart2;
DMA_HandleTypeDef hdma_usart1_rx;
SDRAM_HandleTypeDef hsdram1;
@ -63,9 +65,9 @@ SDRAM_HandleTypeDef hsdram1;
/* Private function prototypes -----------------------------------------------*/
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_FMC_Init(void);
static void MX_SDMMC1_SD_Init(void);
static void MX_USART1_UART_Init(void);
@ -74,6 +76,8 @@ static void MX_QUADSPI_Init(void);
static void MX_RTC_Init(void);
static void MX_IWDG1_Init(void);
static void MX_LTDC_Init(void);
static void MX_UART4_Init(void);
static void MX_DMA2D_Init(void);
/* USER CODE BEGIN PFP */
/* USER CODE END PFP */
@ -117,13 +121,15 @@ __WEAK int main(void)
/* Configure the system clock */
SystemClock_Config();
/* Configure the peripherals common clocks */
PeriphCommonClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_DMA_Init();
MX_FMC_Init();
MX_SDMMC1_SD_Init();
MX_USART1_UART_Init();
@ -132,6 +138,8 @@ __WEAK int main(void)
MX_RTC_Init();
MX_IWDG1_Init();
MX_LTDC_Init();
MX_UART4_Init();
MX_DMA2D_Init();
/* USER CODE BEGIN 2 */
/* USER CODE END 2 */
@ -178,7 +186,7 @@ void SystemClock_Config(void)
RCC_OscInitStruct.PLL.PLLM = 4;
RCC_OscInitStruct.PLL.PLLN = 60;
RCC_OscInitStruct.PLL.PLLP = 2;
RCC_OscInitStruct.PLL.PLLQ = 8;
RCC_OscInitStruct.PLL.PLLQ = 6;
RCC_OscInitStruct.PLL.PLLR = 2;
RCC_OscInitStruct.PLL.PLLRGE = RCC_PLL1VCIRANGE_3;
RCC_OscInitStruct.PLL.PLLVCOSEL = RCC_PLL1VCOWIDE;
@ -207,6 +215,64 @@ void SystemClock_Config(void)
}
}
/**
* @brief Peripherals Common Clock Configuration
* @retval None
*/
void PeriphCommonClock_Config(void)
{
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
/** Initializes the peripherals clock
*/
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_CKPER;
PeriphClkInitStruct.CkperClockSelection = RCC_CLKPSOURCE_HSI;
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
{
Error_Handler();
}
}
/**
* @brief DMA2D Initialization Function
* @param None
* @retval None
*/
static void MX_DMA2D_Init(void)
{
/* USER CODE BEGIN DMA2D_Init 0 */
/* USER CODE END DMA2D_Init 0 */
/* USER CODE BEGIN DMA2D_Init 1 */
/* USER CODE END DMA2D_Init 1 */
hdma2d.Instance = DMA2D;
hdma2d.Init.Mode = DMA2D_M2M;
hdma2d.Init.ColorMode = DMA2D_OUTPUT_RGB888;
hdma2d.Init.OutputOffset = 0;
hdma2d.LayerCfg[1].InputOffset = 0;
hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_RGB888;
hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
hdma2d.LayerCfg[1].InputAlpha = 0;
hdma2d.LayerCfg[1].AlphaInverted = DMA2D_REGULAR_ALPHA;
hdma2d.LayerCfg[1].RedBlueSwap = DMA2D_RB_REGULAR;
hdma2d.LayerCfg[1].ChromaSubSampling = DMA2D_NO_CSS;
if (HAL_DMA2D_Init(&hdma2d) != HAL_OK)
{
Error_Handler();
}
if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN DMA2D_Init 2 */
/* USER CODE END DMA2D_Init 2 */
}
/**
* @brief IWDG1 Initialization Function
* @param None
@ -249,7 +315,6 @@ static void MX_LTDC_Init(void)
/* USER CODE END LTDC_Init 0 */
LTDC_LayerCfgTypeDef pLayerCfg = {0};
LTDC_LayerCfgTypeDef pLayerCfg1 = {0};
/* USER CODE BEGIN LTDC_Init 1 */
@ -259,14 +324,14 @@ static void MX_LTDC_Init(void)
hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
hltdc.Init.HorizontalSync = 7;
hltdc.Init.VerticalSync = 3;
hltdc.Init.AccumulatedHBP = 14;
hltdc.Init.AccumulatedVBP = 5;
hltdc.Init.AccumulatedActiveW = 654;
hltdc.Init.AccumulatedActiveH = 485;
hltdc.Init.TotalWidth = 660;
hltdc.Init.TotalHeigh = 487;
hltdc.Init.HorizontalSync = 19;
hltdc.Init.VerticalSync = 2;
hltdc.Init.AccumulatedHBP = 179;
hltdc.Init.AccumulatedVBP = 25;
hltdc.Init.AccumulatedActiveW = 1203;
hltdc.Init.AccumulatedActiveH = 625;
hltdc.Init.TotalWidth = 1363;
hltdc.Init.TotalHeigh = 637;
hltdc.Init.Backcolor.Blue = 0;
hltdc.Init.Backcolor.Green = 0;
hltdc.Init.Backcolor.Red = 0;
@ -275,17 +340,17 @@ static void MX_LTDC_Init(void)
Error_Handler();
}
pLayerCfg.WindowX0 = 0;
pLayerCfg.WindowX1 = 0;
pLayerCfg.WindowX1 = 1024;
pLayerCfg.WindowY0 = 0;
pLayerCfg.WindowY1 = 0;
pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_ARGB8888;
pLayerCfg.Alpha = 0;
pLayerCfg.WindowY1 = 600;
pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB888;
pLayerCfg.Alpha = 255;
pLayerCfg.Alpha0 = 0;
pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_CA;
pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_CA;
pLayerCfg.FBStartAdress = 0;
pLayerCfg.ImageWidth = 0;
pLayerCfg.ImageHeight = 0;
pLayerCfg.FBStartAdress = 0xC0000000;
pLayerCfg.ImageWidth = 1024;
pLayerCfg.ImageHeight = 600;
pLayerCfg.Backcolor.Blue = 0;
pLayerCfg.Backcolor.Green = 0;
pLayerCfg.Backcolor.Red = 0;
@ -293,25 +358,6 @@ static void MX_LTDC_Init(void)
{
Error_Handler();
}
pLayerCfg1.WindowX0 = 0;
pLayerCfg1.WindowX1 = 0;
pLayerCfg1.WindowY0 = 0;
pLayerCfg1.WindowY1 = 0;
pLayerCfg1.PixelFormat = LTDC_PIXEL_FORMAT_ARGB8888;
pLayerCfg1.Alpha = 0;
pLayerCfg1.Alpha0 = 0;
pLayerCfg1.BlendingFactor1 = LTDC_BLENDING_FACTOR1_CA;
pLayerCfg1.BlendingFactor2 = LTDC_BLENDING_FACTOR2_CA;
pLayerCfg1.FBStartAdress = 0;
pLayerCfg1.ImageWidth = 0;
pLayerCfg1.ImageHeight = 0;
pLayerCfg1.Backcolor.Blue = 0;
pLayerCfg1.Backcolor.Green = 0;
pLayerCfg1.Backcolor.Red = 0;
if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg1, 1) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN LTDC_Init 2 */
/* USER CODE END LTDC_Init 2 */
@ -448,6 +494,54 @@ static void MX_SDMMC1_SD_Init(void)
}
/**
* @brief UART4 Initialization Function
* @param None
* @retval None
*/
static void MX_UART4_Init(void)
{
/* USER CODE BEGIN UART4_Init 0 */
/* USER CODE END UART4_Init 0 */
/* USER CODE BEGIN UART4_Init 1 */
/* USER CODE END UART4_Init 1 */
huart4.Instance = UART4;
huart4.Init.BaudRate = 115200;
huart4.Init.WordLength = UART_WORDLENGTH_8B;
huart4.Init.StopBits = UART_STOPBITS_1;
huart4.Init.Parity = UART_PARITY_NONE;
huart4.Init.Mode = UART_MODE_TX_RX;
huart4.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart4.Init.OverSampling = UART_OVERSAMPLING_16;
huart4.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
huart4.Init.ClockPrescaler = UART_PRESCALER_DIV1;
huart4.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
if (HAL_UART_Init(&huart4) != HAL_OK)
{
Error_Handler();
}
if (HAL_UARTEx_SetTxFifoThreshold(&huart4, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK)
{
Error_Handler();
}
if (HAL_UARTEx_SetRxFifoThreshold(&huart4, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK)
{
Error_Handler();
}
if (HAL_UARTEx_DisableFifoMode(&huart4) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN UART4_Init 2 */
/* USER CODE END UART4_Init 2 */
}
/**
* @brief USART1 Initialization Function
* @param None
@ -544,22 +638,6 @@ static void MX_USART2_UART_Init(void)
}
/**
* Enable DMA controller clock
*/
static void MX_DMA_Init(void)
{
/* DMA controller clock enable */
__HAL_RCC_DMA1_CLK_ENABLE();
/* DMA interrupt init */
/* DMA1_Stream0_IRQn interrupt configuration */
HAL_NVIC_SetPriority(DMA1_Stream0_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(DMA1_Stream0_IRQn);
}
/* FMC initialization function */
static void MX_FMC_Init(void)
{
@ -633,6 +711,9 @@ static void MX_GPIO_Init(void)
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0|GPIO_PIN_1, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_11|GPIO_PIN_12, GPIO_PIN_RESET);
/*Configure GPIO pins : PB0 PB1 */
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
@ -640,6 +721,13 @@ static void MX_GPIO_Init(void)
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/*Configure GPIO pins : PD11 PD12 */
GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_12;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
/* USER CODE BEGIN MX_GPIO_Init_2 */
/* USER CODE END MX_GPIO_Init_2 */

184
cubemx/Src/stm32h7xx_hal_msp.c

@ -23,7 +23,6 @@
/* USER CODE BEGIN Includes */
/* USER CODE END Includes */
extern DMA_HandleTypeDef hdma_usart1_rx;
/* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN TD */
@ -77,30 +76,75 @@ void HAL_MspInit(void)
/* USER CODE END MspInit 1 */
}
/**
* @brief DMA2D MSP Initialization
* This function configures the hardware resources used in this example
* @param hdma2d: DMA2D handle pointer
* @retval None
*/
void HAL_DMA2D_MspInit(DMA2D_HandleTypeDef* hdma2d)
{
if(hdma2d->Instance==DMA2D)
{
/* USER CODE BEGIN DMA2D_MspInit 0 */
/* USER CODE END DMA2D_MspInit 0 */
/* Peripheral clock enable */
__HAL_RCC_DMA2D_CLK_ENABLE();
/* USER CODE BEGIN DMA2D_MspInit 1 */
/* USER CODE END DMA2D_MspInit 1 */
}
}
/**
* @brief DMA2D MSP De-Initialization
* This function freeze the hardware resources used in this example
* @param hdma2d: DMA2D handle pointer
* @retval None
*/
void HAL_DMA2D_MspDeInit(DMA2D_HandleTypeDef* hdma2d)
{
if(hdma2d->Instance==DMA2D)
{
/* USER CODE BEGIN DMA2D_MspDeInit 0 */
/* USER CODE END DMA2D_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_DMA2D_CLK_DISABLE();
/* USER CODE BEGIN DMA2D_MspDeInit 1 */
/* USER CODE END DMA2D_MspDeInit 1 */
}
}
/**
* @brief LTDC MSP Initialization
* This function configures the hardware resources used in this example
* @param hltdc: LTDC handle pointer
* @retval None
*/
void HAL_LTDC_MspInit(LTDC_HandleTypeDef* hltdc)
/*void HAL_LTDC_MspInit(LTDC_HandleTypeDef* hltdc)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
if(hltdc->Instance==LTDC)
{
/* USER CODE BEGIN LTDC_MspInit 0 */
// USER CODE BEGIN LTDC_MspInit 0
/* USER CODE END LTDC_MspInit 0 */
// USER CODE END LTDC_MspInit 0
// Initializes the peripherals clock
/** Initializes the peripherals clock
*/
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_LTDC;
PeriphClkInitStruct.PLL3.PLL3M = 32;
PeriphClkInitStruct.PLL3.PLL3N = 129;
PeriphClkInitStruct.PLL3.PLL3P = 2;
PeriphClkInitStruct.PLL3.PLL3Q = 2;
PeriphClkInitStruct.PLL3.PLL3R = 2;
PeriphClkInitStruct.PLL3.PLL3R = 5;
PeriphClkInitStruct.PLL3.PLL3RGE = RCC_PLL3VCIRANGE_1;
PeriphClkInitStruct.PLL3.PLL3VCOSEL = RCC_PLL3VCOWIDE;
PeriphClkInitStruct.PLL3.PLL3FRACN = 0;
@ -109,7 +153,7 @@ void HAL_LTDC_MspInit(LTDC_HandleTypeDef* hltdc)
Error_Handler();
}
/* Peripheral clock enable */
// Peripheral clock enable
__HAL_RCC_LTDC_CLK_ENABLE();
__HAL_RCC_GPIOE_CLK_ENABLE();
@ -119,7 +163,7 @@ void HAL_LTDC_MspInit(LTDC_HandleTypeDef* hltdc)
__HAL_RCC_GPIOH_CLK_ENABLE();
__HAL_RCC_GPIOG_CLK_ENABLE();
__HAL_RCC_GPIOD_CLK_ENABLE();
/**LTDC GPIO Configuration
//LTDC GPIO Configuration
PE5 ------> LTDC_G0
PE6 ------> LTDC_G1
PI9 ------> LTDC_VSYNC
@ -147,8 +191,8 @@ void HAL_LTDC_MspInit(LTDC_HandleTypeDef* hltdc)
PI4 ------> LTDC_B4
PI5 ------> LTDC_B5
PI6 ------> LTDC_B6
PI7 ------> LTDC_B7
*/
//PI7 ------> LTDC_B7
GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_6;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
@ -209,14 +253,17 @@ void HAL_LTDC_MspInit(LTDC_HandleTypeDef* hltdc)
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
/* USER CODE BEGIN LTDC_MspInit 1 */
//LTDC interrupt Init
HAL_NVIC_SetPriority(LTDC_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(LTDC_IRQn);
// USER CODE BEGIN LTDC_MspInit 1
/* USER CODE END LTDC_MspInit 1 */
// USER CODE END LTDC_MspInit 1
}
}
*/
/**
* @brief LTDC MSP De-Initialization
* This function freeze the hardware resources used in this example
@ -281,6 +328,8 @@ void HAL_LTDC_MspDeInit(LTDC_HandleTypeDef* hltdc)
HAL_GPIO_DeInit(GPIOD, GPIO_PIN_6);
/* LTDC interrupt DeInit */
HAL_NVIC_DisableIRQ(LTDC_IRQn);
/* USER CODE BEGIN LTDC_MspDeInit 1 */
/* USER CODE END LTDC_MspDeInit 1 */
@ -307,7 +356,7 @@ void HAL_QSPI_MspInit(QSPI_HandleTypeDef* hqspi)
/** Initializes the peripherals clock
*/
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_QSPI;
PeriphClkInitStruct.QspiClockSelection = RCC_QSPICLKSOURCE_PLL;
PeriphClkInitStruct.QspiClockSelection = RCC_QSPICLKSOURCE_CLKP;
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
{
Error_Handler();
@ -481,7 +530,7 @@ void HAL_SD_MspInit(SD_HandleTypeDef* hsd)
PeriphClkInitStruct.PLL2.PLL2N = 200;
PeriphClkInitStruct.PLL2.PLL2P = 2;
PeriphClkInitStruct.PLL2.PLL2Q = 2;
PeriphClkInitStruct.PLL2.PLL2R = 4;
PeriphClkInitStruct.PLL2.PLL2R = 2;
PeriphClkInitStruct.PLL2.PLL2RGE = RCC_PLL2VCIRANGE_1;
PeriphClkInitStruct.PLL2.PLL2VCOSEL = RCC_PLL2VCOWIDE;
PeriphClkInitStruct.PLL2.PLL2FRACN = 0;
@ -578,7 +627,41 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
if(huart->Instance==USART1)
if(huart->Instance==UART4)
{
/* USER CODE BEGIN UART4_MspInit 0 */
/* USER CODE END UART4_MspInit 0 */
/** Initializes the peripherals clock
*/
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_UART4;
PeriphClkInitStruct.Usart234578ClockSelection = RCC_USART234578CLKSOURCE_D2PCLK1;
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
{
Error_Handler();
}
/* Peripheral clock enable */
__HAL_RCC_UART4_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
/**UART4 GPIO Configuration
PA0 ------> UART4_TX
PA1 ------> UART4_RX
*/
GPIO_InitStruct.Pin = 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.Alternate = GPIO_AF8_UART4;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/* USER CODE BEGIN UART4_MspInit 1 */
/* USER CODE END UART4_MspInit 1 */
}
else if(huart->Instance==USART1)
{
/* USER CODE BEGIN USART1_MspInit 0 */
@ -596,40 +679,18 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart)
/* Peripheral clock enable */
__HAL_RCC_USART1_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
/**USART1 GPIO Configuration
PB14 ------> USART1_TX
PB15 ------> USART1_RX
PA9 ------> USART1_TX
PA10 ------> USART1_RX
*/
GPIO_InitStruct.Pin = GPIO_PIN_14|GPIO_PIN_15;
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_LOW;
GPIO_InitStruct.Alternate = GPIO_AF4_USART1;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/* USART1 DMA Init */
/* USART1_RX Init */
hdma_usart1_rx.Instance = DMA1_Stream0;
hdma_usart1_rx.Init.Request = DMA_REQUEST_USART1_RX;
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_CIRCULAR;
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(huart,hdmarx,hdma_usart1_rx);
GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/* USART1 interrupt Init */
HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(USART1_IRQn);
/* USER CODE BEGIN USART1_MspInit 1 */
/* USER CODE END USART1_MspInit 1 */
@ -687,7 +748,25 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart)
*/
void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
{
if(huart->Instance==USART1)
if(huart->Instance==UART4)
{
/* USER CODE BEGIN UART4_MspDeInit 0 */
/* USER CODE END UART4_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_UART4_CLK_DISABLE();
/**UART4 GPIO Configuration
PA0 ------> UART4_TX
PA1 ------> UART4_RX
*/
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_0|GPIO_PIN_1);
/* USER CODE BEGIN UART4_MspDeInit 1 */
/* USER CODE END UART4_MspDeInit 1 */
}
else if(huart->Instance==USART1)
{
/* USER CODE BEGIN USART1_MspDeInit 0 */
@ -696,16 +775,11 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
__HAL_RCC_USART1_CLK_DISABLE();
/**USART1 GPIO Configuration
PB14 ------> USART1_TX
PB15 ------> USART1_RX
PA9 ------> USART1_TX
PA10 ------> USART1_RX
*/
HAL_GPIO_DeInit(GPIOB, GPIO_PIN_14|GPIO_PIN_15);
/* USART1 DMA DeInit */
HAL_DMA_DeInit(huart->hdmarx);
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
/* USART1 interrupt DeInit */
HAL_NVIC_DisableIRQ(USART1_IRQn);
/* USER CODE BEGIN USART1_MspDeInit 1 */
/* USER CODE END USART1_MspDeInit 1 */
@ -749,7 +823,7 @@ static void HAL_FMC_MspInit(void){
/** Initializes the peripherals clock
*/
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_FMC;
PeriphClkInitStruct.FmcClockSelection = RCC_FMCCLKSOURCE_D1HCLK;
PeriphClkInitStruct.FmcClockSelection = RCC_FMCCLKSOURCE_PLL;
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
{
Error_Handler();

45
cubemx/Src/stm32h7xx_it.c

@ -55,10 +55,9 @@
/* USER CODE END 0 */
/* External variables --------------------------------------------------------*/
extern LTDC_HandleTypeDef hltdc;
extern QSPI_HandleTypeDef hqspi;
extern SD_HandleTypeDef hsd1;
extern DMA_HandleTypeDef hdma_usart1_rx;
extern UART_HandleTypeDef huart1;
/* USER CODE BEGIN EV */
/* USER CODE END EV */
@ -201,34 +200,6 @@ void SysTick_Handler(void)
/* please refer to the startup file (startup_stm32h7xx.s). */
/******************************************************************************/
/**
* @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_usart1_rx);
/* USER CODE BEGIN DMA1_Stream0_IRQn 1 */
/* USER CODE END DMA1_Stream0_IRQn 1 */
}
/**
* @brief This function handles USART1 global interrupt.
*/
void USART1_IRQHandler(void)
{
/* USER CODE BEGIN USART1_IRQn 0 */
/* USER CODE END USART1_IRQn 0 */
HAL_UART_IRQHandler(&huart1);
/* USER CODE BEGIN USART1_IRQn 1 */
/* USER CODE END USART1_IRQn 1 */
}
/**
* @brief This function handles SDMMC1 global interrupt.
*/
@ -243,6 +214,20 @@ void SDMMC1_IRQHandler(void)
/* USER CODE END SDMMC1_IRQn 1 */
}
/**
* @brief This function handles LTDC global interrupt.
*/
void LTDC_IRQHandler(void)
{
/* USER CODE BEGIN LTDC_IRQn 0 */
/* USER CODE END LTDC_IRQn 0 */
HAL_LTDC_IRQHandler(&hltdc);
/* USER CODE BEGIN LTDC_IRQn 1 */
/* USER CODE END LTDC_IRQn 1 */
}
/**
* @brief This function handles QUADSPI global interrupt.
*/

264
cubemx/cubemx.ioc

@ -34,26 +34,8 @@ CORTEX_M7.Size_S-Cortex_Memory_Protection_Unit_Region4_Settings_S=MPU_REGION_SIZ
CORTEX_M7.Size_Spec=MPU_REGION_SIZE_512KB
CORTEX_M7.SubRegionDisable_Spec=0x0
CORTEX_M7.default_mode_Activation=1
Dma.Request0=USART1_RX
Dma.RequestsNb=1
Dma.USART1_RX.0.Direction=DMA_PERIPH_TO_MEMORY
Dma.USART1_RX.0.EventEnable=DISABLE
Dma.USART1_RX.0.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.USART1_RX.0.Instance=DMA1_Stream0
Dma.USART1_RX.0.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.USART1_RX.0.MemInc=DMA_MINC_ENABLE
Dma.USART1_RX.0.Mode=DMA_CIRCULAR
Dma.USART1_RX.0.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.USART1_RX.0.PeriphInc=DMA_PINC_DISABLE
Dma.USART1_RX.0.Polarity=HAL_DMAMUX_REQ_GEN_RISING
Dma.USART1_RX.0.Priority=DMA_PRIORITY_LOW
Dma.USART1_RX.0.RequestNumber=1
Dma.USART1_RX.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber
Dma.USART1_RX.0.SignalID=NONE
Dma.USART1_RX.0.SyncEnable=DISABLE
Dma.USART1_RX.0.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT
Dma.USART1_RX.0.SyncRequestNumber=1
Dma.USART1_RX.0.SyncSignalID=NONE
DMA2D.ColorMode=DMA2D_OUTPUT_RGB888
DMA2D.IPParameters=ColorMode
FMC.CASLatency1=FMC_SDRAM_CAS_LATENCY_2
FMC.ColumnBitsNumber1=FMC_SDRAM_COLUMN_BITS_NUM_9
FMC.IPParameters=ColumnBitsNumber1,CASLatency1
@ -62,16 +44,36 @@ GPIO.groupedBy=
IWDG1.IPParameters=Prescaler
IWDG1.Prescaler=IWDG_PRESCALER_32
KeepUserPlacement=false
LTDC.ActiveH=600
LTDC.ActiveW=1024
LTDC.Alpha_L0=255
LTDC.FBStartAdress_L0=0xC0000000
LTDC.HBP=160
LTDC.HFP=160
LTDC.HSync=20
LTDC.IPParameters=HSync,ActiveW,ActiveH,HBP,HFP,VSync,VBP,VFP,WindowX1_L0,WindowY1_L0,WindowX1_L1,WindowY1_L1,Layers,Alpha_L0,FBStartAdress_L0,ImageWidth_L0,ImageHeight_L0,PixelFormat_L0
LTDC.ImageHeight_L0=600
LTDC.ImageWidth_L0=1024
LTDC.Layers=0
LTDC.PixelFormat_L0=LTDC_PIXEL_FORMAT_RGB888
LTDC.VBP=23
LTDC.VFP=12
LTDC.VSync=3
LTDC.WindowX1_L0=1024
LTDC.WindowX1_L1=1024
LTDC.WindowY1_L0=600
LTDC.WindowY1_L1=600
MMTAppRegionsCount=0
MMTConfigApplied=false
Mcu.CPN=STM32H743IIT6
Mcu.Family=STM32H7
Mcu.IP0=CORTEX_M7
Mcu.IP1=DMA
Mcu.IP1=DMA2D
Mcu.IP10=SDMMC1
Mcu.IP11=SYS
Mcu.IP12=USART1
Mcu.IP13=USART2
Mcu.IP12=UART4
Mcu.IP13=USART1
Mcu.IP14=USART2
Mcu.IP2=FMC
Mcu.IP3=IWDG1
Mcu.IP4=LTDC
@ -80,7 +82,7 @@ Mcu.IP6=NVIC
Mcu.IP7=QUADSPI
Mcu.IP8=RCC
Mcu.IP9=RTC
Mcu.IPNb=14
Mcu.IPNb=15
Mcu.Name=STM32H743IITx
Mcu.Package=LQFP176
Mcu.Pin0=PE5
@ -91,99 +93,104 @@ Mcu.Pin12=PF8
Mcu.Pin13=PF9
Mcu.Pin14=PF10
Mcu.Pin15=PC0
Mcu.Pin16=PA2
Mcu.Pin17=PH2
Mcu.Pin18=PH3
Mcu.Pin19=PA3
Mcu.Pin16=PA0
Mcu.Pin17=PA1
Mcu.Pin18=PA2
Mcu.Pin19=PH2
Mcu.Pin2=PI9
Mcu.Pin20=PB0
Mcu.Pin21=PB1
Mcu.Pin22=PB2
Mcu.Pin23=PF11
Mcu.Pin24=PF12
Mcu.Pin25=PF13
Mcu.Pin26=PF14
Mcu.Pin27=PF15
Mcu.Pin28=PG0
Mcu.Pin29=PG1
Mcu.Pin20=PH3
Mcu.Pin21=PA3
Mcu.Pin22=PB0
Mcu.Pin23=PB1
Mcu.Pin24=PB2
Mcu.Pin25=PF11
Mcu.Pin26=PF12
Mcu.Pin27=PF13
Mcu.Pin28=PF14
Mcu.Pin29=PF15
Mcu.Pin3=PI10
Mcu.Pin30=PE7
Mcu.Pin31=PE8
Mcu.Pin32=PE9
Mcu.Pin33=PE10
Mcu.Pin34=PE11
Mcu.Pin35=PE12
Mcu.Pin36=PE13
Mcu.Pin37=PE14
Mcu.Pin38=PE15
Mcu.Pin39=PH8
Mcu.Pin30=PG0
Mcu.Pin31=PG1
Mcu.Pin32=PE7
Mcu.Pin33=PE8
Mcu.Pin34=PE9
Mcu.Pin35=PE10
Mcu.Pin36=PE11
Mcu.Pin37=PE12
Mcu.Pin38=PE13
Mcu.Pin39=PE14
Mcu.Pin4=PF0
Mcu.Pin40=PH9
Mcu.Pin41=PH10
Mcu.Pin42=PH11
Mcu.Pin43=PH12
Mcu.Pin44=PB14
Mcu.Pin45=PB15
Mcu.Pin40=PE15
Mcu.Pin41=PH8
Mcu.Pin42=PH9
Mcu.Pin43=PH10
Mcu.Pin44=PH11
Mcu.Pin45=PH12
Mcu.Pin46=PD8
Mcu.Pin47=PD9
Mcu.Pin48=PD10
Mcu.Pin49=PD14
Mcu.Pin49=PD11
Mcu.Pin5=PF1
Mcu.Pin50=PD15
Mcu.Pin51=PG2
Mcu.Pin52=PG4
Mcu.Pin53=PG5
Mcu.Pin54=PG6
Mcu.Pin55=PG7
Mcu.Pin56=PG8
Mcu.Pin57=PC8
Mcu.Pin58=PC9
Mcu.Pin59=PA8
Mcu.Pin50=PD12
Mcu.Pin51=PD14
Mcu.Pin52=PD15
Mcu.Pin53=PG2
Mcu.Pin54=PG4
Mcu.Pin55=PG5
Mcu.Pin56=PG6
Mcu.Pin57=PG7
Mcu.Pin58=PG8
Mcu.Pin59=PC8
Mcu.Pin6=PF2
Mcu.Pin60=PH13
Mcu.Pin61=PH14
Mcu.Pin62=PH15
Mcu.Pin63=PI0
Mcu.Pin64=PI1
Mcu.Pin65=PI2
Mcu.Pin66=PC10
Mcu.Pin67=PC11
Mcu.Pin68=PC12
Mcu.Pin69=PD0
Mcu.Pin60=PC9
Mcu.Pin61=PA8
Mcu.Pin62=PA9
Mcu.Pin63=PA10
Mcu.Pin64=PH13
Mcu.Pin65=PH14
Mcu.Pin66=PH15
Mcu.Pin67=PI0
Mcu.Pin68=PI1
Mcu.Pin69=PI2
Mcu.Pin7=PF3
Mcu.Pin70=PD1
Mcu.Pin71=PD2
Mcu.Pin72=PD5
Mcu.Pin73=PD6
Mcu.Pin74=PG12
Mcu.Pin75=PG13
Mcu.Pin76=PG14
Mcu.Pin77=PG15
Mcu.Pin78=PB6
Mcu.Pin79=PE0
Mcu.Pin70=PC10
Mcu.Pin71=PC11
Mcu.Pin72=PC12
Mcu.Pin73=PD0
Mcu.Pin74=PD1
Mcu.Pin75=PD2
Mcu.Pin76=PD5
Mcu.Pin77=PD6
Mcu.Pin78=PG12
Mcu.Pin79=PG13
Mcu.Pin8=PF4
Mcu.Pin80=PE1
Mcu.Pin81=PI4
Mcu.Pin82=PI5
Mcu.Pin83=PI6
Mcu.Pin84=PI7
Mcu.Pin85=VP_IWDG1_VS_IWDG
Mcu.Pin86=VP_RTC_VS_RTC_Activate
Mcu.Pin87=VP_RTC_VS_RTC_Calendar
Mcu.Pin88=VP_SYS_VS_Systick
Mcu.Pin89=VP_MEMORYMAP_VS_MEMORYMAP
Mcu.Pin80=PG14
Mcu.Pin81=PG15
Mcu.Pin82=PB6
Mcu.Pin83=PE0
Mcu.Pin84=PE1
Mcu.Pin85=PI4
Mcu.Pin86=PI5
Mcu.Pin87=PI6
Mcu.Pin88=PI7
Mcu.Pin89=VP_DMA2D_VS_DMA2D
Mcu.Pin9=PF5
Mcu.PinsNb=90
Mcu.Pin90=VP_IWDG1_VS_IWDG
Mcu.Pin91=VP_RTC_VS_RTC_Activate
Mcu.Pin92=VP_RTC_VS_RTC_Calendar
Mcu.Pin93=VP_SYS_VS_Systick
Mcu.Pin94=VP_MEMORYMAP_VS_MEMORYMAP
Mcu.PinsNb=95
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32H743IITx
MxCube.Version=6.15.0
MxDb.Version=DB.6.0.150
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.DMA1_Stream0_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.ForceEnableDMAVector=true
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.LTDC_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
@ -192,22 +199,25 @@ NVIC.QUADSPI_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.SDMMC1_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:false\:true\:false
NVIC.USART1_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
PA0.Mode=Asynchronous
PA0.Signal=UART4_TX
PA1.Mode=Asynchronous
PA1.Signal=UART4_RX
PA10.Mode=Asynchronous
PA10.Signal=USART1_RX
PA2.Mode=RGB888
PA2.Signal=LTDC_R1
PA3.Mode=Asynchronous
PA3.Signal=USART2_RX
PA8.Mode=RGB888
PA8.Signal=LTDC_B3
PA9.Mode=Asynchronous
PA9.Signal=USART1_TX
PB0.Locked=true
PB0.Signal=GPIO_Output
PB1.Locked=true
PB1.Signal=GPIO_Output
PB14.Mode=Asynchronous
PB14.Signal=USART1_TX
PB15.Mode=Asynchronous
PB15.Signal=USART1_RX
PB2.Locked=true
PB2.Mode=Single Bank 1
PB2.Signal=QUADSPI_CLK
@ -228,6 +238,10 @@ PC9.Signal=SDMMC1_D1
PD0.Signal=FMC_D2_DA2
PD1.Signal=FMC_D3_DA3
PD10.Signal=FMC_D15_DA15
PD11.Locked=true
PD11.Signal=GPIO_Output
PD12.Locked=true
PD12.Signal=GPIO_Output
PD14.Signal=FMC_D0_DA0
PD15.Signal=FMC_D1_DA1
PD2.Mode=SD_4_bits_Wide_bus
@ -380,7 +394,7 @@ ProjectManager.ToolChainLocation=
ProjectManager.UAScriptAfterPath=
ProjectManager.UAScriptBeforePath=
ProjectManager.UnderRoot=false
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_FMC_Init-FMC-false-HAL-true,5-MX_SDMMC1_SD_Init-SDMMC1-false-HAL-true,6-MX_USART1_UART_Init-USART1-false-HAL-true,7-MX_USART2_UART_Init-USART2-false-HAL-true,8-MX_QUADSPI_Init-QUADSPI-false-HAL-true,9-MX_RTC_Init-RTC-false-HAL-true,10-MX_IWDG1_Init-IWDG1-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_FMC_Init-FMC-false-HAL-true,4-MX_SDMMC1_SD_Init-SDMMC1-false-HAL-true,5-MX_USART1_UART_Init-USART1-false-HAL-true,6-MX_USART2_UART_Init-USART2-false-HAL-true,7-MX_QUADSPI_Init-QUADSPI-false-HAL-true,8-MX_RTC_Init-RTC-false-HAL-true,9-MX_IWDG1_Init-IWDG1-false-HAL-true,10-MX_LTDC_Init-LTDC-false-HAL-true,11-MX_UART4_Init-UART4-false-HAL-true,12-MX_DMA2D_Init-DMA2D-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true
RCC.ADCFreq_Value=200000000
RCC.AHB12Freq_Value=240000000
RCC.AHB4Freq_Value=240000000
@ -398,7 +412,7 @@ RCC.D1PPRE=RCC_APB3_DIV2
RCC.D2PPRE1=RCC_APB1_DIV2
RCC.D2PPRE2=RCC_APB2_DIV2
RCC.D3PPRE=RCC_APB4_DIV2
RCC.DFSDMACLkFreq_Value=120000000
RCC.DFSDMACLkFreq_Value=160000000
RCC.DFSDMFreq_Value=120000000
RCC.DIVM1=4
RCC.DIVN1=60
@ -406,16 +420,17 @@ RCC.DIVN2=200
RCC.DIVP1Freq_Value=480000000
RCC.DIVP2Freq_Value=200000000
RCC.DIVP3Freq_Value=129000000
RCC.DIVQ1=8
RCC.DIVQ1Freq_Value=120000000
RCC.DIVQ1=6
RCC.DIVQ1Freq_Value=160000000
RCC.DIVQ2Freq_Value=200000000
RCC.DIVQ3Freq_Value=129000000
RCC.DIVR1Freq_Value=480000000
RCC.DIVR2=4
RCC.DIVR2Freq_Value=100000000
RCC.DIVR3Freq_Value=129000000
RCC.FDCANFreq_Value=120000000
RCC.FMCFreq_Value=240000000
RCC.DIVR2Freq_Value=200000000
RCC.DIVR3=5
RCC.DIVR3Freq_Value=51600000
RCC.FDCANFreq_Value=160000000
RCC.FMCCLockSelection=RCC_FMCCLKSOURCE_PLL
RCC.FMCFreq_Value=160000000
RCC.FamilyName=M
RCC.HCLK3ClockFreq_Value=240000000
RCC.HCLKFreq_Value=240000000
@ -423,29 +438,30 @@ RCC.HPRE=RCC_HCLK_DIV2
RCC.HRTIMFreq_Value=240000000
RCC.I2C123Freq_Value=120000000
RCC.I2C4Freq_Value=120000000
RCC.IPParameters=ADCFreq_Value,AHB12Freq_Value,AHB4Freq_Value,APB1Freq_Value,APB2Freq_Value,APB3Freq_Value,APB4Freq_Value,AXIClockFreq_Value,CECFreq_Value,CKPERFreq_Value,CortexFreq_Value,CpuClockFreq_Value,D1CPREFreq_Value,D1PPRE,D2PPRE1,D2PPRE2,D3PPRE,DFSDMACLkFreq_Value,DFSDMFreq_Value,DIVM1,DIVN1,DIVN2,DIVP1Freq_Value,DIVP2Freq_Value,DIVP3Freq_Value,DIVQ1,DIVQ1Freq_Value,DIVQ2Freq_Value,DIVQ3Freq_Value,DIVR1Freq_Value,DIVR2,DIVR2Freq_Value,DIVR3Freq_Value,FDCANFreq_Value,FMCFreq_Value,FamilyName,HCLK3ClockFreq_Value,HCLKFreq_Value,HPRE,HRTIMFreq_Value,I2C123Freq_Value,I2C4Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPTIM345Freq_Value,LPUART1Freq_Value,LTDCFreq_Value,MCO1PinFreq_Value,MCO2PinFreq_Value,PLL2FRACN,PLL3FRACN,PLLFRACN,QSPICLockSelection,QSPIFreq_Value,RNGFreq_Value,RTCFreq_Value,SAI1Freq_Value,SAI23Freq_Value,SAI4AFreq_Value,SAI4BFreq_Value,SDMMC1CLockSelection,SDMMCFreq_Value,SPDIFRXFreq_Value,SPI123Freq_Value,SPI45Freq_Value,SPI6Freq_Value,SWPMI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,Tim1OutputFreq_Value,Tim2OutputFreq_Value,TraceFreq_Value,USART16Freq_Value,USART234578Freq_Value,USBFreq_Value,VCO1OutputFreq_Value,VCO2OutputFreq_Value,VCO3OutputFreq_Value,VCOInput1Freq_Value,VCOInput2Freq_Value,VCOInput3Freq_Value
RCC.IPParameters=ADCFreq_Value,AHB12Freq_Value,AHB4Freq_Value,APB1Freq_Value,APB2Freq_Value,APB3Freq_Value,APB4Freq_Value,AXIClockFreq_Value,CECFreq_Value,CKPERFreq_Value,CortexFreq_Value,CpuClockFreq_Value,D1CPREFreq_Value,D1PPRE,D2PPRE1,D2PPRE2,D3PPRE,DFSDMACLkFreq_Value,DFSDMFreq_Value,DIVM1,DIVN1,DIVN2,DIVP1Freq_Value,DIVP2Freq_Value,DIVP3Freq_Value,DIVQ1,DIVQ1Freq_Value,DIVQ2Freq_Value,DIVQ3Freq_Value,DIVR1Freq_Value,DIVR2Freq_Value,DIVR3,DIVR3Freq_Value,FDCANFreq_Value,FMCCLockSelection,FMCFreq_Value,FamilyName,HCLK3ClockFreq_Value,HCLKFreq_Value,HPRE,HRTIMFreq_Value,I2C123Freq_Value,I2C4Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPTIM345Freq_Value,LPUART1Freq_Value,LTDCFreq_Value,MCO1PinFreq_Value,MCO2PinFreq_Value,PLL2FRACN,PLL2_VCI_Range-AdvancedSettings,PLL3FRACN,PLLFRACN,QSPICLockSelection,QSPIFreq_Value,RNGFreq_Value,RTCFreq_Value,SAI1Freq_Value,SAI23Freq_Value,SAI4AFreq_Value,SAI4BFreq_Value,SDMMC1CLockSelection,SDMMCFreq_Value,SPDIFRXFreq_Value,SPI123Freq_Value,SPI45Freq_Value,SPI6Freq_Value,SWPMI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,Tim1OutputFreq_Value,Tim2OutputFreq_Value,TraceFreq_Value,USART16Freq_Value,USART234578Freq_Value,USBFreq_Value,VCO1OutputFreq_Value,VCO2OutputFreq_Value,VCO3OutputFreq_Value,VCOInput1Freq_Value,VCOInput2Freq_Value,VCOInput3Freq_Value
RCC.LPTIM1Freq_Value=120000000
RCC.LPTIM2Freq_Value=120000000
RCC.LPTIM345Freq_Value=120000000
RCC.LPUART1Freq_Value=120000000
RCC.LTDCFreq_Value=129000000
RCC.LTDCFreq_Value=51600000
RCC.MCO1PinFreq_Value=64000000
RCC.MCO2PinFreq_Value=480000000
RCC.PLL2FRACN=0
RCC.PLL2_VCI_Range-AdvancedSettings=RCC_PLL2VCIRANGE_3
RCC.PLL3FRACN=0
RCC.PLLFRACN=0
RCC.QSPICLockSelection=RCC_QSPICLKSOURCE_PLL
RCC.QSPIFreq_Value=120000000
RCC.QSPICLockSelection=RCC_QSPICLKSOURCE_CLKP
RCC.QSPIFreq_Value=64000000
RCC.RNGFreq_Value=48000000
RCC.RTCFreq_Value=32000
RCC.SAI1Freq_Value=120000000
RCC.SAI23Freq_Value=120000000
RCC.SAI4AFreq_Value=120000000
RCC.SAI4BFreq_Value=120000000
RCC.SAI1Freq_Value=160000000
RCC.SAI23Freq_Value=160000000
RCC.SAI4AFreq_Value=160000000
RCC.SAI4BFreq_Value=160000000
RCC.SDMMC1CLockSelection=RCC_SDMMCCLKSOURCE_PLL2
RCC.SDMMCFreq_Value=100000000
RCC.SPDIFRXFreq_Value=120000000
RCC.SPI123Freq_Value=120000000
RCC.SDMMCFreq_Value=200000000
RCC.SPDIFRXFreq_Value=160000000
RCC.SPI123Freq_Value=160000000
RCC.SPI45Freq_Value=120000000
RCC.SPI6Freq_Value=120000000
RCC.SWPMI1Freq_Value=120000000
@ -456,7 +472,7 @@ RCC.Tim2OutputFreq_Value=240000000
RCC.TraceFreq_Value=64000000
RCC.USART16Freq_Value=120000000
RCC.USART234578Freq_Value=120000000
RCC.USBFreq_Value=120000000
RCC.USBFreq_Value=160000000
RCC.VCO1OutputFreq_Value=960000000
RCC.VCO2OutputFreq_Value=400000000
RCC.VCO3OutputFreq_Value=258000000
@ -541,6 +557,8 @@ USART1.IPParameters=VirtualMode-Asynchronous
USART1.VirtualMode-Asynchronous=VM_ASYNC
USART2.IPParameters=VirtualMode-Asynchronous
USART2.VirtualMode-Asynchronous=VM_ASYNC
VP_DMA2D_VS_DMA2D.Mode=DMA2D_Activate
VP_DMA2D_VS_DMA2D.Signal=DMA2D_VS_DMA2D
VP_IWDG1_VS_IWDG.Mode=IWDG_Activate
VP_IWDG1_VS_IWDG.Signal=IWDG1_VS_IWDG
VP_MEMORYMAP_VS_MEMORYMAP.Mode=CurAppReg

8
drivers/board.h

@ -92,8 +92,8 @@ extern "C"
*/
#define BSP_USING_UART1
//#define BSP_UART1_RX_USING_DMA
#define BSP_UART1_TX_PIN "PB14"
#define BSP_UART1_RX_PIN "PB15"
#define BSP_UART1_TX_PIN "PA9"
#define BSP_UART1_RX_PIN "PA10"
#define BSP_USING_UART2
//#define BSP_UART2_RX_USING_DMA
@ -104,6 +104,10 @@ extern "C"
#define BSP_UART3_TX_PIN "PB10"
#define BSP_UART3_RX_PIN "PB11"
#define BSP_USING_UART4
#define BSP_UART4_TX_PIN "PA0"
#define BSP_UART4_RX_PIN "PA1"
/*-------------------------- UART CONFIG END --------------------------*/
/*-------------------------- I2C CONFIG BEGIN --------------------------*/

2
exclude_list.json

@ -1 +1 @@
[{"config_name":"Debug","exclude_files":["packages/sqlite-v3.19.3/dbhelper.c","packages/sqlite-v3.19.3/rtthread_vfs.c"]}]
[{"config_name":"Debug","exclude_files":["packages/sqlite-v3.19.3/dbhelper.c","packages/sqlite-v3.19.3/rtthread_vfs.c","drivers/drv_ltdc.c"]}]

4
makefile.targets

@ -1,6 +1,6 @@
clean2:
-$(RM) $(CC_DEPS)$(C++_DEPS)$(C_UPPER_DEPS)$(CXX_DEPS)$(SECONDARY_FLASH)$(SECONDARY_SIZE)$(ASM_DEPS)$(S_UPPER_DEPS)$(C_DEPS)$(CPP_DEPS)
-$(RM) $(OBJS) *.elf
@$(file > clean, $(OBJS) $(C_DEPS) $(CPP_DEPS)) project_cleaner.exe clean
-$(RM) $(CC_DEPS) $(C++_DEPS) $(C_UPPER_DEPS) $(CXX_DEPS) $(SECONDARY_FLASH) $(SECONDARY_SIZE) $(ASM_DEPS) $(S_UPPER_DEPS) *.elf
-@echo ' '
*.elf: $(wildcard ../linkscripts/STM32H743IITx/link.lds)

15
packages/LVGL-v8.3.11/env_support/rt-thread/lv_rt_thread_port.c

@ -13,7 +13,6 @@
#include <lvgl.h>
#include <rtthread.h>
#include <rtdef.h>
#define DBG_TAG "LVGL"
#define DBG_LVL DBG_INFO
@ -31,12 +30,14 @@ extern void lv_port_disp_init(void);
extern void lv_port_indev_init(void);
extern void lv_user_gui_init(void);
static struct rt_thread lvgl_thread;
#ifdef rt_align
rt_align(RT_ALIGN_SIZE)
#else
ALIGN(RT_ALIGN_SIZE)
#endif
static rt_uint8_t lvgl_thread_stack[PKG_LVGL_THREAD_STACK_SIZE];
#if LV_USE_LOG
static void lv_rt_log(const char *buf)
@ -63,18 +64,12 @@ static void lvgl_thread_entry(void *parameter)
}
}
extern struct rt_memheap sdram_heap; //
static struct rt_thread lvgl_thread;
static void *db_lvgl_stack __attribute__((aligned(4)))= RT_NULL ;
static int lvgl_thread_init(void)
{
rt_err_t err;
db_lvgl_stack = rt_memheap_alloc(&sdram_heap, PKG_LVGL_THREAD_STACK_SIZE);
err = rt_thread_init(&lvgl_thread, "LVGL", lvgl_thread_entry, RT_NULL,
db_lvgl_stack, PKG_LVGL_THREAD_STACK_SIZE, PKG_LVGL_THREAD_PRIO, 10);
&lvgl_thread_stack[0], sizeof(lvgl_thread_stack), PKG_LVGL_THREAD_PRIO, 10);
if(err != RT_EOK)
{
LOG_E("Failed to create LVGL thread");
@ -84,6 +79,6 @@ static int lvgl_thread_init(void)
return 0;
}
INIT_APP_EXPORT(lvgl_thread_init);
INIT_ENV_EXPORT(lvgl_thread_init);
#endif /*__RTTHREAD__*/

BIN
packages/packages.dbsqlite

Binary file not shown.

96
rt-thread/components/drivers/include/drivers/lcd.h

@ -11,102 +11,6 @@
#ifndef RT_LCD_H__
#define RT_LCD_H__
/* ioctls
0x46 is 'F' */
#define FBIOGET_VSCREENINFO 0x4600
#define FBIOPUT_VSCREENINFO 0x4601
#define FBIOGET_FSCREENINFO 0x4602
#define FBIOGET_PIXELINFO 0x4603
#define FBIOGETCMAP 0x4604
#define FBIOPUTCMAP 0x4605
#define FBIOPAN_DISPLAY 0x4606
#define FBIO_CURSOR 0x4608
/* #define FBIOGET_MONITORSPEC 0x460C */
/* #define FBIOPUT_MONITORSPEC 0x460D */
/* #define FBIOSWITCH_MONIBIT 0x460E */
#define FBIOGET_CON2FBMAP 0x460F
#define FBIOPUT_CON2FBMAP 0x4610
#define FBIOBLANK 0x4611 /* arg: 0 or vesa level + 1 */
#define FBIOGET_VBLANK 0x4612
#define FBIO_ALLOC 0x4613
#define FBIO_FREE 0x4614
#define FBIOGET_GLYPH 0x4615
#define FBIOGET_HWCINFO 0x4616
#define FBIOPUT_MODEINFO 0x4617
#define FBIOGET_DISPINFO 0x4618
#define FBIO_WAITFORVSYNC 0x4620
struct fb_bitfield
{
uint32_t offset; /* beginning of bitfield */
uint32_t length; /* length of bitfield */
uint32_t msb_right; /* != 0 : Most significant bit is */
/* right */
};
struct fb_var_screeninfo
{
uint32_t xres; /* visible resolution */
uint32_t yres;
uint32_t xres_virtual; /* virtual resolution */
uint32_t yres_virtual;
uint32_t xoffset; /* offset from virtual to visible */
uint32_t yoffset; /* resolution */
uint32_t bits_per_pixel; /* guess what */
uint32_t grayscale; /* 0 = color, 1 = grayscale, */
/* >1 = FOURCC */
struct fb_bitfield red; /* bitfield in fb mem if true color, */
struct fb_bitfield green; /* else only length is significant */
struct fb_bitfield blue;
struct fb_bitfield transp; /* transparency */
uint32_t nonstd; /* != 0 Non standard pixel format */
uint32_t activate; /* see FB_ACTIVATE_* */
uint32_t height; /* height of picture in mm */
uint32_t width; /* width of picture in mm */
uint32_t accel_flags; /* (OBSOLETE) see fb_info.flags */
/* Timing: All values in pixclocks, except pixclock (of course) */
uint32_t pixclock; /* pixel clock in ps (pico seconds) */
uint32_t left_margin; /* time from sync to picture */
uint32_t right_margin; /* time from picture to sync */
uint32_t upper_margin; /* time from sync to picture */
uint32_t lower_margin;
uint32_t hsync_len; /* length of horizontal sync */
uint32_t vsync_len; /* length of vertical sync */
uint32_t sync; /* see FB_SYNC_* */
uint32_t vmode; /* see FB_VMODE_* */
uint32_t rotate; /* angle we rotate counter clockwise */
uint32_t colorspace; /* colorspace for FOURCC-based modes */
uint32_t reserved[4]; /* Reserved for future compatibility */
};
struct fb_fix_screeninfo
{
char id[16]; /* identification string eg "TT Builtin" */
unsigned long smem_start; /* Start of frame buffer mem */
/* (physical address) */
uint32_t smem_len; /* Length of frame buffer mem */
uint32_t type; /* see FB_TYPE_* */
uint32_t type_aux; /* Interleave for interleaved Planes */
uint32_t visual; /* see FB_VISUAL_* */
uint16_t xpanstep; /* zero if no hardware panning */
uint16_t ypanstep; /* zero if no hardware panning */
uint16_t ywrapstep; /* zero if no hardware ywrap */
uint32_t line_length; /* length of a line in bytes */
unsigned long mmio_start; /* Start of Memory Mapped I/O */
/* (physical address) */
uint32_t mmio_len; /* Length of Memory Mapped I/O */
uint32_t accel; /* Indicate to driver which */
/* specific chip/card we have */
uint16_t capabilities; /* see FB_CAP_* */
uint16_t reserved[2]; /* Reserved for future compatibility */
};
#endif

Loading…
Cancel
Save