完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
` 本帖最后由 foxclever 于 2018-1-7 10:56 编辑 1、创建一个“FreeRTOSTestProject”项目文件夹,并在其下创建FreeRTOS、Libraries、Project、User文件夹。 与无操作系统的项目一样User中存放应用文件;Project中存放项目文件;Libraries中存放STM32F1xx标准库文件。而在FreeRTOS文件夹中存放操作系统文件。 将FreeRTOSv9.0.0FreeRTOSSource目录下的6个源文件及include文件夹复制到新建项目的FreeRTOS文件夹。 将FreeRTOSv9.0.0FreeRTOSSourceportableIARARM_CM3目录下的三个文件也复制到新建项目的FreeRTOS文件夹。 将FreeRTOSv9.0.0FreeRTOSSourceportableMemMang目录下的heap_4.c文件复制到新建项目的FreeRTOS文件夹。 对于内存管理的几个文件的大致内容如下:
将FreeRTOSv9.0.0FreeRTOSDemoCORTEX_STM32F103_IAR目录下的FreeRTOSConfig.h文件复制到新建项目的FreeRTOS文件夹。 至此,全部用于移植的文件准备完成。 2、在IAR EWARM中新建workspace,再一个项目,取名为FreeRTOSTest,并添加组: 并向个组中添加相应的文件。 3、配置项目选项 项目的属性选项配置与误操作系统时一样,需要说一下的是在Assembler中的Preprocessor标签下添加$PROJ_DIR$....Userinc路径,因为在会变文件中有对FreeRTOSConfig.h文件的引用。 4、修改FreeRTOSConfig.h配置文件,这个根据需要修改,目前只定义如下3个宏定义,避免去修改启动文件: #define vPortSVCHandler SVC_Handler #define xPortPendSVHandler PendSV_Handler #define xPortSystickHandler SysTick_Handler 如果仅作此修改,编译时会报警说重复定义,所以还需要注释掉stm32f10x_it.c文件中对三个函数的定义。 5、编写测试应用 在main.c文件中添加相应的代码,声明如下函数及代码(我计划4个任务): /*************************************************************************** 函数声明 ***************************************************************************/ static void vTask1(void *pvParameters); static void vTask2(void *pvParameters); static void vTask3(void *pvParameters); static void vTask4(void *pvParameters); static void AppTaskCreate (void); /*************************************************************************** 变量声明 ***************************************************************************/ static TaskHandle_t xHandleTask1 = NULL; static TaskHandle_t xHandleTask2 = NULL; static TaskHandle_t xHandleTask3 = NULL; static TaskHandle_t xHandleTask4 = NULL; 任务创建函数如下: static void AppTaskCreate (void) { xTaskCreate( vTask1, "vTask1",512, NULL,1, &xHandleTask1); xTaskCreate( vTask2, "vTask2",512, NULL,1, &xHandleTask2); xTaskCreate( vTask3, "vTask3",512, NULL,1, &xHandleTask3); xTaskCreate( vTask4, "vTask4",512, NULL,1, &xHandleTask4); } 主函数如下: int main(void) { /* 创建任务 */ AppTaskCreate(); /* 启动任务调度,开始执行任务 */ vTaskStartScheduler(); } 编译无错误4个任务同时运行。移植初步测试成功。 欢迎关注: ` |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-22 09:29 , Processed in 0.657280 second(s), Total 38, Slave 28 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号