stm32f429上移植ucosiii
- 建立文件夹:选择一个裸机工程,在user文件夹下建立如下文件夹,APP文件夹,表示系统应用层文件夹,BSP文件夹表示板级支持包文件夹,uc-cpu文件夹表示和cpu有关文件,uc-lib表示系统的库文件,ucos-iii表示ucos的源码文件夹,如图1。
图1 移植文件夹建立
- 文件拷贝,
将部分文件拷贝到APP文件夹下,打开下载好的官方移植文件夹并进入到文件夹Micrium_STM32F429II-SK_OS3\Micrium\Examples\ST\STM32F429II-SK\OS3,然后将图中所框选的文件拷贝到APP文件夹下,如图2;
图2 APP文件拷贝
将部分文件拷贝到BSP文件夹下,打开下载好的官方移植文件夹并进入到文件夹Micrium_STM32F429II-SK_OS3\Micrium\Examples\ST\STM32F429II-SK\BSP,然后将图中所框选的文件拷贝到BSP文件夹下,如图3;
图3 BSP文件拷贝
将部分文件拷贝到uc-cpu文件夹下,打开下载好的官方移植文件夹并进入到文件夹Micrium_STM32F429II-SK_OS3\Micrium\Software\uC-CPU,然后将图中所框选的文件拷贝到uc-cpu文件夹下,如图4;
图4 uc-cpu文件拷贝
将部分文件拷贝到uc-lib文件夹下,打开下载好的官方移植文件夹并进入到文件夹Micrium_STM32F429II-SK_OS3\Micrium\Software\uC-LIB,然后将图中所框选的文件拷贝到uc-lib文件夹下,如图5;
图5 uc-lib文件拷贝
将部分文件拷贝到ucos-iii文件夹下,打开下载好的官方移植文件夹并进入到文件夹Micrium_STM32F429II-SK_OS3\Micrium\Software\ucos-iii,然后将图中所框选的文件拷贝到ucos-iii文件夹下,如图6;
图5 ucos-iii文件拷贝
删除main.c文件。
- 打开工程,先移除废弃文件,然后点击工具栏中的工程结构(三个方片),建立相应的文件夹工程结构,添加如下的五个文件夹(APP,BSP,UC-CPU,UC-BSP,UCOS-III)如图6所示。
图6 建立文件结构
接着向对应文件下添加对应的工程文件,在APP文件夹下添加对应于User\APP文件夹下的所有.c文件,如图7所示。
图7 添加APP文件结构
在BSP文件夹下添加对应于User\BSP文件夹下的所有.c文件、User\BSP\Key文件夹下所有.c文件,User\BSP\Led文件夹下所有.c文件,User\BSP\usart文件夹下所有.c文件,如图8所示。
图8 添加BSP文件结构
在uc-cpu文件夹下添加对应文件,添加User\uC-CPU文件夹下所有.c文件、添加User\uC-CPU\ARM-Cortex-M4\RealView文件夹下所有的.c和.asm文件,如图9所示。
图9 添加uc-cpu文件结构
在uc-lib文件夹下添加对应文件,添加User\uC-LIB文件夹下所有.c文件、添加User\uC-LIB\Ports\ARM-Cortex-M4\RealView文件夹下所有的.c和.asm文件,如图10所示。
图10 添加uc-lib文件结构
在ucos-iii文件夹下添加对应文件,添加User\uCOS-III\Source文件夹下所有.c文件、添加User\uCOS-III\Ports\ARM-Cortex-M4\Generic\RealView文件夹下所有的.c和.asm文件,如图11所示。
图11 添加ucos-iii文件结构
添加完成后点击OK。
- 把对应的文件夹头文件路径加入到工程,点击工具栏中的编译属性菜单(魔术棒),然后选择C/C++那一栏,在include paths中添加对应的头文件目录,如图12所示。
图12 添加头文件目录
添加完毕后点击OK。
- 修改startup_stm32f429_439xx.s文件,在启动文件中修改PendSV_Handler和SysTick_Handler分布改为OS_CPU_PendSV_Handler和OS_CPU_SysTickHandler。如图13所示。
图12 修改PendSV_Handler与SysTick_Handler
在跳入main后增加一段浮点运行函数,如图13所示。
图13 增加浮点运算处理
- 修改bsp.h和bsp.c文件,先修改bsp.h文件,头文件修改,增加板级支持包中的头文件,并且保留三个函数的声明,其他可删除,如图14所示。
图14 bsp.h文件修改
再修改bsp.c文件,删掉ucos-iii自带的STM32板载驱动的宏定义,删掉uc-iii自带的STM32板载驱动函数,清空板载初始化函数的全部定义体,改用裸机驱动函数,删掉其他无关代码,如图15所示。
图15 修改bsp.c文件
7,修改app.c文件,主要是增加自己的任务等。