1.打开MDK5软件,新建MDK工程,将新建工程文件保存在Project_Stm32f407/mdk文件夹下,并将工程命名为freertos_M4,选择MCU型号为STM32F407ZG,新建工程文件的步骤如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/c3cead210effe0967d99ee07d3103078.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1a16dbf4579e9687053c43f4361db3f2.png)
![](https://i-blog.csdnimg.cn/blog_migrate/be0aadf74b54136065a252301a3922d6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/813c547833dea3aacc8e1a2a352c2fb1.png)
2.MDK5工程文件目录列表的搭建,配置MDK工程文件目录,具体步骤如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/f2ee654ed56cedef5071ceba2fa4b5dd.png)
![](https://i-blog.csdnimg.cn/blog_migrate/6bedcc64b10ed8c48cb2beea486496fa.png)
![](https://i-blog.csdnimg.cn/blog_migrate/e768114886cec1ce1bc280d5fc13b1ce.png)
3.首先添加Startup,将 \Project_Stm32f407\cmsis\arm目录下的startup_stm32f40_41xxx.s添加到Startup目录。
![](https://i-blog.csdnimg.cn/blog_migrate/00c58e85e249e007d9e853223ba55100.png)
4.然后添加FWLib的所有接口的库文件,将Project_Stm32f407\fwlib\src目录下的所有c源文件添加到工程目录的FWLib目录(注意:仅需要添加c源文件,不需要添加.h头文件)。
![](https://i-blog.csdnimg.cn/blog_migrate/c79caf769c6b7ceccce7dabe207747f8.png)
5.CMSIS目录添加STM32F4架构相关系统的源文件,将Project_Stm32f407\user目录下除main.c外,其他.C源文件均添加到CMSIS目录下。
![](https://i-blog.csdnimg.cn/blog_migrate/bff4d8ffe5db4adc7fc477e966119959.png)
6.然后将Project_Stm32f407/user目录的 main.c的文件添加到USER目录下。
![](https://i-blog.csdnimg.cn/blog_migrate/2e970581f7bb6f921fc75522c39c6c74.png)
7.然后将Project_Stm32f407\freertos目录的 .c的文件添加到freertos_core目录下。
![](https://i-blog.csdnimg.cn/blog_migrate/ae3432d69b302340995378f76de4a4d4.png)
8.然后将Project_Stm32f407\freertos\portable\MemMang目录的 heap_4.c的文件和Project_Stm32f407\freertos\portable\RVDS\ARM_CM4F目录的port.c添加到freertos_port目录下。
![](https://i-blog.csdnimg.cn/blog_migrate/0163f2a124e72c9e7ce7f7ee2b9f431c.png)
9.STM32工程文件配置设置,具体步骤如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/6aa44eb434f0cbbe93ff7fdef5c924bc.png)
![](https://i-blog.csdnimg.cn/blog_migrate/711d515b14ff775aea84191738237260.png)
10.main.c修改如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/7831af9aaa3d5262bd0e34f83c0c45ae.png)
11.将FWLib目录下的stm32f4xx_fmc.c删除。
![](https://i-blog.csdnimg.cn/blog_migrate/6ad222c5d04b6bde6c6da3340f14a2b9.png)
12.将stm32f4xx_it.c中的main.h的头文件进行注释,如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/2745a13b039506cf62c29414fdbd0e63.png)
13.FreeRTOSConfig.h头文件修改如下所示:
![](https://i-blog.csdnimg.cn/blog_migrate/57d578d58e6cb3796f034b91d0dcb019.png)
14.注释掉stm32f4xx_it.c中的PendSV_Handler(),SVC_Handler(),SysTick_Handler()这三个函数。如下图:
![](https://i-blog.csdnimg.cn/blog_migrate/518ed1623e5c6fe28f231784004612ca.png)
15.FreeRTOSConfig.h头文件hook宏定义修改为零,如下所示:
![](https://i-blog.csdnimg.cn/blog_migrate/07cb1a7e0adec7fcee1bde49604235f6.png)
16.编译程序,发现程序不再报错,说明freertos在mdk上移植配置成功,后续将进行freertos应用软件的编写。
![](https://i-blog.csdnimg.cn/blog_migrate/acb8eb07705c8ab8542b6b40069ffcd1.png)