0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何让FreeRTOS系统直接在芯片上运行?

5RJg_mcuworld 来源:未知 作者:胡薇 2018-09-12 14:13 次阅读

为满足大家的好奇心,本文将讲述几个步骤可以让FreeRTOS系统直接在芯片上运行,提供可以直接运行的Demo工程给大家,方便大家直接拿来修改测试。

为什么不先讲述源代码?

相信很多朋友开始学习的时候都是参看别人写好的,可以直接使用的源代码。在正确代码工程的基础上,我们可以展开很多测试,从而可以知道为什么这样才可以运行。

整个FreeRTOS工程源代码里面的内容牵涉到许多东西,而只需要简单几个步骤就能将代码运行起来,看到效果。如果我一一给你们讲述源代码,估计没怎么讲述几条,大家都晕了,不知道为什么这个地方是这样。

所以,给你看写好源代码工程,让你们自己测试,并分析才是最好的。

移植几个步骤

源代码里面的内容有很少变动,本篇文章不具体讲述,只讲述移植的几个步骤,最终让代码工程可以运行在板子上。只需要如下简单几步即可:

1.提取源码添加到工程

上一篇文章讲述了下载FreeRTOS源码中各个目录及文件的意思,也大概讲述了一下需要提取源码。

主要提取:Source目录+FreeRTOSConfig.h

(里面有部分内容未使用,为了不让大家感觉文件比较多,或者杂,我删除了)

将这些源码添加到自己的工程(之前讲述并建立好的STM32工程),具体提取的源码和添加到工程中的效果,请下载代码查看。

2.添加路径

我们添加源码到工程,有部分头文件include需要添加到工程。因此,我们需要添加相应路径。

.c源代码添加路径的方法见文章:

1.MDK-ARM_新建软件工程详细过程

2.EWARM_新建软件工程详细过程

这里主要想提醒的是:在IAR工程中有个汇编文件portasm.s包含了,需要我们添加所在文件下的路径。

注意:是在EWARM的Project -> Options -> Assembler -> Preprocessor中添加。

3.创建自己任务和添加相应代码

我们创建四个任务,还是使用比较经典的LED灯任务。

void AppTaskCreate(void)

{

xTaskCreate(vAppTask1, "Task1", TASK1_STACK_SIZE, NULL, TASK1_PRIORITY, NULL);

xTaskCreate(vAppTask2, "Task2", TASK2_STACK_SIZE, NULL, TASK2_PRIORITY, NULL);

xTaskCreate(vAppTask3, "Task3", TASK3_STACK_SIZE, NULL, TASK3_PRIORITY, NULL);

xTaskCreate(vAppTask4, "Task4", TASK4_STACK_SIZE, NULL, TASK4_PRIORITY, NULL);

}

void vAppTask1(void *pvParameters)

{

for(;;)

{

LED1_TOGGLE;

vTaskDelay(50);

}

}

我新建了app_task.c和app_task.h文件添加任务的源代码。

4.修改FreeRTOSConfig.h配置文件

这个文件是必须配置的,而且根据实际情况而定。我们系统的裁剪也与该文件有关,类似于UCOS中的os_cfg.h文件。

比如:主频、系统滴答、系统堆栈大小等。

#define configCPU_CLOCK_HZ ((unsigned long)72000000)

#define configTICK_RATE_HZ ((TickType_t)100)

#define configTOTAL_HEAP_SIZE ((size_t)(4 * 1024))

本文不讲述具体内容。后期详细分析FreeRTOSConfig.h中的每一个参数

至此,基本的步骤算是完成了。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    453

    文章

    50384

    浏览量

    421719
  • FreeRTOS
    +关注

    关注

    12

    文章

    483

    浏览量

    61996

原文标题:简单几步,让你的FreeRTOS直接跑在芯片上!

文章出处:【微信号:mcuworld,微信公众号:嵌入式资讯精选】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Arduino库可以直接在RT-Thread运行了 附详细解读

    Arduino社区优秀的开源项目),来丰富RT-Thread社区软件包生态,并降低RT-Thread操作系统以及与RT-Thread适配的芯片的学习门槛。可以用户通过Arduino的函数和编程方法,轻松地将
    发表于 08-31 21:03 1848次阅读

    如何用CCS直接在ARM A8运行裸跑程序?

    大家好,请教下能不能用CCS5直接在ARM A8 core运行裸跑程序呢?(我指的是在ARM里面不加操作系统和文件系统,把ARM A8当单
    发表于 06-21 13:06

    请问怎么SD卡拔下来可以直接在电脑显示卡的内容,求程序

    怎么SD卡拔下来以后可以直接在电脑显示卡的内容?就是用MSP430向SD卡写数据,怎么在电脑端显示?
    发表于 01-28 22:55

    freeRTOS 如何移植到zynq芯片

    因为最近要用到zynq芯片,我希望能在zynq芯片使用freeRTOS,但是弄不明白怎么移植进去。一般xillinx sdk在工程里面添加操作系统
    发表于 06-11 04:35

    FreeRTOS任务调度优先级,会直接在就绪列表中调用低优先级任务么?

    由于刚开始使用FreeRTOS,所以有很多问题,也正在学习。请问各位,假如优先级高的任务时间片用完后,会直接在就绪列表中调用低优先级任务么?假设:Task_A 优先级为2,Task_B 优先级为1
    发表于 06-14 09:01

    分享STM32F427IIH6芯片运行FreeRTOS系统

    我将分享STM32F427IIH6芯片(RoboMaster A型)运行FreeRTOS系统通过串
    发表于 01-11 06:17

    现有的BSP工程可以直接在GD32F470上进行开发吗

    大家好:有关于GD32F470的BSP工程的问题咨询,我在GD官网上查照资料了解470和450是很相似的,目前因为项目需要使用的470芯片,想使用rt-thread的操作系统,但是不知道该移植哪些内容,或者是现有的BSP可以直接在
    发表于 08-01 10:39

    FreeRTOS在STM32的移植笔记

    将嵌入式开发领域著名的开源嵌入式RTOS --- FreeRTOS 一直到STM32 芯片运行的移植笔记。
    发表于 05-09 09:56 5次下载

    什么是操作系统?FreeRTOS中文实用教程你快速入门FreeRTOS

    本文档的主要内容详细介绍的是什么是操作系统?FreeRTOS中文实用教程你快速入门FreeRTOS带你了解了1.认识操作系统 2.轻松上手
    发表于 09-12 16:51 275次下载
    什么是操作<b class='flag-5'>系统</b>?<b class='flag-5'>FreeRTOS</b>中文实用教程<b class='flag-5'>让</b>你快速入门<b class='flag-5'>FreeRTOS</b>

    如何轻松几步实现在STM32运行FreeRTOS任务

    轻松几步实现在STM32运行FreeRTOS任务
    的头像 发表于 03-01 12:07 8417次阅读
    如何轻松几步实现在STM32<b class='flag-5'>上</b><b class='flag-5'>运行</b><b class='flag-5'>FreeRTOS</b>任务

    FreeRTOS_003 _系统在板子跑起来

    FreeRTOS_003_系统在板子跑起来
    的头像 发表于 03-14 11:25 2744次阅读
    <b class='flag-5'>FreeRTOS</b>_003 _<b class='flag-5'>让</b><b class='flag-5'>系统</b>在板子<b class='flag-5'>上</b>跑起来

    芯片接在电路板的好处_芯片如何焊接在电路板

    芯片是要“装”在电路板的,准确的说是“焊接”。芯片要通过焊锡焊接在电路板,而电路板通过“走
    的头像 发表于 03-08 06:12 1.1w次阅读

    FreeRTOS直接任务(消息)通知

            之前分享了《FreeRTOS V10.4.0更新了哪些功能?》,今天就来详细讲述其中的一个知识点:FreeRTOS直接任务(消息)通知,这样做的目的就是减少RAM占用空间并加快执行
    的头像 发表于 01-07 09:37 4510次阅读

    嵌入式实时操作系统FreeRTOS在ARM7移植实现

    嵌入式实时操作系统FreeRTOS在ARM7移植实现(嵌入式开发工程师待遇)-嵌入式实时操作系统FreeRTOS在ARM7
    发表于 07-30 12:05 20次下载
    嵌入式实时操作<b class='flag-5'>系统</b><b class='flag-5'>FreeRTOS</b>在ARM7<b class='flag-5'>上</b>移植实现

    基于STM32的FreeRTOS开发(1)----FreeRTOS简介

    FreeRTOS 是一个免费和开源的实时操作系统,它主要用于嵌入式系统。它非常轻量级,可以在很小的硬件资源运行,因此非常适合在限制硬件资源
    的头像 发表于 07-27 09:49 1269次阅读
    基于STM32的<b class='flag-5'>FreeRTOS</b>开发(1)----<b class='flag-5'>FreeRTOS</b>简介