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中的每一个参数

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

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

    关注

    446

    文章

    47755

    浏览量

    409050
  • FreeRTOS
    +关注

    关注

    12

    文章

    473

    浏览量

    61345

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

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

收藏 人收藏

    评论

    相关推荐

    有没有直接在电脑刷BIOS的办法?

    请问有没有什么办法在电脑开不了机的情况下不取下BIOS ROM ,直接在电脑刷BIOS的办法?
    发表于 07-22 23:36

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

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

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

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

    开发实战+编程指南,教你快速学习FreeRTOS系统

    较小系统的需要。FreeRTOS内核支持优先级调度算法,每个任务可根据重要程度的不同被赋予一定的优先级,CPU总是处于就绪态的、优先级最高的任务先运行
    发表于 04-17 15:10

    freeRTOS 如何移植到zynq芯片

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

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

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

    如何保证FreeRtos运行的函数不被,底层的硬件中断打断?

    目前的平台是:在STM32 F207FreeRtos系统现象:操作VK3366这款芯片时(扩展了一个串口,其中串口接收通过中断来实现的),发现有时(时间不定,有时跑几个小时,有时几
    发表于 07-28 22:29

    分享STM32F427IIH6芯片运行FreeRTOS系统

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

    如何实现生产线用WCH-Link直接在电脑烧录?

    生产线用WCH-Link 直接在电脑烧录。但找了半天没有找到方法。难道只能用USB或串口ISP 来烧录?如果能用一个电脑端小体积软件导入HEX文件后直接点下载烧录就好了。现在大批
    发表于 06-01 06:14

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

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

    如何LoRaWAN终端节点FreeRTOS应用程序在基于STM32WL55CCU6的定制板运行

    节点 FreeRTOS 应用程序在基于 STM32WL55CCU6 的定制板运行,因此能够生成项目并使其正常运行对我来说很重要。所以这是我的问题。什么可能导致定期发送数据出现问题?
    发表于 12-09 08:08

    如何使用在STM32L073板运行FreeRTOS进入停止模式?

    我正在尝试对 STM32L073 芯片使用停止模式。当我不在 STM32L073 使用 FreeRTOS 时,我能够我的代码正常工作。我还能够在带有
    发表于 12-15 08:16

    如何同时在cortex A53运行Linux和在cortex M7运行FreeRTOS

    对于机器人项目,我需要同时在 cortex A53 运行 Linux 和在 cortex M7 运行 FreeRTOS。有人可以指出我的
    发表于 03-21 08:29

    FreeRTOS直接任务(消息)通知

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

    直接在Google表格中的血压监测仪

    电子发烧友网站提供《直接在Google表格中的血压监测仪.zip》资料免费下载
    发表于 11-10 10:02 0次下载
    <b class='flag-5'>直接在</b>Google表格中的血压监测仪