丹凤千字科普:句柄数过高怎么解决(详细资料介绍)

背景介绍:
由于STM32价格较高,而且CubeMx功能强大,移植难度几乎为零。我将为大家分享一个国产单片机HC32F072的FreeRTOS RTOS移植过程,后续其他单片机的移植也可以参考此过程。
环境说明:
开发IDE:MDK-ARM Plus ver 5.34
MCU:国产华大单片机 HC32F072,主频48Mhz,使用Core M0+内核,RAM 16KB,ROM 128KB
RTOS:FreeRTOS V10.4.3
移植步骤:
一、准备
二、FreeRTOS源码处理
在最小系统的source目录下新建一个FreeRTOS目录,用于存放RTOS源码。
拷贝FreeRTOS源码解压后的路径下FreeRTOS-LTSFreeRTOSFreeRTOS-Kernel的所有内容到本地的source/FreeRTOS目录下。
在source/FreeRTOS目录下再新建一个source目录,将source/FreeRTOS目录下的所有.c文件剪切到source/FreeRTOS/source目录下。
分析portable目录中的keil文件夹,因为我们使用的就是keil编译器。里面的内容其实跟RVDS里面的内容是一样的,所以我们只需要分析RVDS文件夹里面的内容即可。RVDS里面包含了各种处理器相关的文件夹,与CPU内核相关。FreeRTOS要想运行在一个单片机上面,它们就必须关联在一起。MemMang文件夹下存放的是跟内存管理相关的源文件,一般情况我们都选用heap4方式。
三、添加工程
打开keil,通过Manage -> project Items -> Groups添加三个工程目录,分别为FreeRTOS/src、FreeRTOS/port和FreeRTOS/config。点击OK。
在Project栏中选中相应的目录,右击->Add Existing File to Group ...添加相应的.c文件。
添加头文件路径在options -> c/c++ -> include paths -> ...中,添加相应的路径。
四、裁剪
六、使用
创建一个简单的闪烁点灯任务,注意这是一个死循环,并通过RTOS延时API vTaskDelay()函数实现延时效果。在main函数中创建一个点灯任务,并启动任务调度。编译并下载到单片机中即可完成RTOS的移植。
HC32F072+FreeRTOS源码可以在github上下载。
完成以上步骤后,你就成功地将FreeRTOS移植到了国产单片机HC32F072上。希望这个分享能对你有所帮助,记得点赞哦! ^-^。
