欢迎来到天天文库
浏览记录
ID:38283973
大小:102.97 KB
页数:3页
时间:2019-05-29
《在MDK中为STM32移植FreeRTOS》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、在MDK中为STM32移植FreeRTOS/*****************************************************************************FreeRTOS版本是V7.0.1。STM32本人用的是大容量的stm32f103zgt6,故启动文件使用startup_stm32f10x_hd.s。固件库版本V3.5.0。编译环境用的是MDKVerson:4.22。注:用户在移植FreeRTOS操作系统前最好先移植好STM32的固件库,调试好确保固件库能成功运行后,再进行操作系统的移植。***************************
2、**************************************************/1、在Project里新建一个文件夹并命名为FreeRTOS。复制FreeRTOS解压包里的Source文件夹里的croutine.c,timers.c,list.c,queue.c,tasks.c以及Source->portable->RVDS->ARM_CM3->port.c以及Source->portable->MemMang->heap_2.c到自建的FreeRTOS文件夹。按新建FreeRTOS组并添加相应文件。如下图:2、在FreeRTOS文件夹里再新建一个文件夹include
3、。在include里面加入如下文件:①FreeRTOS解压包里的Source文件下include文件夹中的所有.h文件;②Source->portable->RVDS->ARM_CM3->portmacro.h;③FreeRTOS解压缩包里的Demo文件下找到CORTEX_STM32F103_Keil文件夹(用户根据自己的开发平台选择相应文件夹),找到FreeRTOSConfig.h文件加入到include中。Include文件夹里所有.h文件如下:3、菜单栏找到Project->optionsfortarget->C/C++->IncludePaths中加入上述的include文件夹。如
4、下图:4、在main文件头部#include以下头文件:FreeRTOS.h、task.h、queue.h、list.h、portable.h、freertosconfig.h5、打开启动文件startup_stm32f10x_hd.s(用户请根据所用芯片容量选择相应的启动文件)。在__heap_limit下面添加:PRESERVE8THUMBIMPORTxPortPendSVHandlerIMPORTxPortSysTickHandlerIMPORTvPortSVCHandler找到DCDSVC_Handler将其屏蔽掉,改成DCDvPortSVCHandler。找到DCDPendSV_
5、Handler将其屏蔽掉,改成DCDxPortPendSVHandler。找到DCDSysTick_Handler将其屏蔽掉,改成DCDxPortSysTickHandler。至此FreeRTOS移植完毕。在main中创建任务后启动任务调度器就可以运行了。除了启动文件上的少许改动外,其他程序均不需要用户自己去修改。因为制作FreeRTOS的工程师们已经为我们作了这些工作。另外网上广泛流传着一篇由广州伟研电子公司写的《FreeRTOS在STM32的移植》的文章,该文章中介绍到的所有程序其实都不需要用户自己去改的。另外该文章中提到一个叫PORTASM.S的以汇编写成的文件,在stm32的移植中
6、我们不需要用到此文件,此文件的内容已经用__asm语句内嵌到了port.c文件中了。
此文档下载收益归作者所有