STM32F7的emwin + Freertos的移植
1.先打开stm32f7官方资料包。
2.再先建一个文件夹取名STM32F7_EMWIN
3.在新建文件夹里新建如下目录:
4.然后打开官方资料:STM32Cube_FW_F7_V1.1.0
5.向自己新建的FWLIB中添加stm32cubef7\STM32Cube_FW_F7_V1.1.0\Drivers目录下的STM32F7xx_HAL_Driver的两个文件inc 和src。
6.向HARDWARE文件夹中添加\STM32Cube_FW_F7_V1.1.0\Drivers目录下的STM32746G-Discovery里面的全部文件
8.然后再向CORE文件夹中添加STM32Cube_FW_F7_V1.1.0\Drivers\CMSI\include目录下的文件
添加
9.然后向startup 文件夹中添加STM32Cube_FW_F7_V1.1.0\Drivers\CMSIS\Device\ST\STM32F7xx\Source\Templates\arm目录下的startup_stm32f746xx.s文件
10.然后向USER文件夹中添加\STM32Cube_FW_F7_V1.1.0\Projects\STM32746G-Discovery\Templates下的inc 和src 文件夹下的所有文件
还要在STM32Cube_FW_F7_V1.1.0\Drivers\CMSIS\Device\ST\include目录下添加三个文件如图
如图
11.然后向BSP中添加STM32Cube_FW_F7_V1.1.0\Drivers\BSP\的Components文件夹
在\STM32Cube_FW_F7_V1.1.0\Utilities目录下添加Fonts文件
最后BSP目录下如图
13.再向EMWIN目录下新建两个文件夹
向inc文件夹下添加STM32Cube_FW_F7_V1.1.0\Middlewares\ST\STemWin\inc目录下的所有文件
然后再向Config文件夹下添加里面的STM32Cube_FW_F7_V1.1.0\Projects\STM32746G-Discovery\Demonstration\的目录下的GUIConfig.h GUIConfig.c LCDConfig.h LCDConfig.c四个文件
还要在STM32Cube_FW_F7_V1.1.0\Middlewares\ST\STemWin\OS目录下添加GUI_X_OS.c文件
最终Config文件夹中会有五个文件
然后还要向EMWIN文件夹下添加STM32Cube_FW_F7_V1.1.0\Middlewares\ST\STemWin\lib目录下的两个文件STemWin528_CM7_OS_Keil.lib和STemWin528_CM7_OS_Keil_ot.lib
最终EMWIN文件夹下有如图
14.再向FreeRTOS文件夹下新建两个文件夹 Inc 和Src
向Inc文件夹里添夹STM32Cube_FW_F7_V1.1.0\Middlewares\Third_Party\FreeRTOS\Source\include的所有文件15个
然后在添加
STM32Cube_FW_F7_V1.1.0\Middlewares\Third_Party\FreeRTOS\Source\portable\RVDS\ARM_CM7\r0p1下的portmacro.h文件
然后还要在TM32Cube_FW_F7_V1.1.0\Projects\STM32746G-Discovery\Demonstration\Config文件夹下添加FreeRTOSConfig.h
最后FreeRTOS的Inc文件夹下有17个文件
最后再向FreeRTOS 的src文件夹下添加STM32Cube_FW_F7_V1.1.0\Middlewares\Third_Party\FreeRTOS\Source
然后添加TM32Cube_FW_F7_V1.1.0\Middlewares\Third_Party\FreeRTOS\Source\portable\RVDS\ARM_CM7\r0p1目录下的两个文件
要添加的文件就完了看一下都有神马
USER文件夹:
SYSTEM文件夹:
Startup文件夹:
HARDWARE文件夹:
FWlib:
FreeRTOS:
EMWIN:
CORE:
BSP:
好了,肚子好饿呀!
然后我们在RVMDK中建工程。
这是KEIL下分散加载文件
编辑修改成; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************
LR_IROM1 0x08000000 0x00100000 { ; load region size_region
ER_IROM1 0x08000000 0x00100000 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
RW_IRAM1 0x20012000 0x0003C000 { ; RW data
.ANY (+RW +ZI)
}
RW_RAM1 0xC0000000 UNINIT 0x00800000 { ; RW data
* (VRAM, GUI_RAM, GUIDEMO_STACK)
}
}
;LR_QSPI 0x90000000 0xFFFFFF {
;ER_QSPI 0x90000000 0xFFFFFF {
;*.o (.ExtQSPIFlashSection)
;}
;}
自己写了一个开关控制LED的
我先去吃饭了。。。