学习
实践
活动
专区
工具
TVP
写文章

FreeRTOS(二)

FreeRTOS 官网:https://freertos.org/ 在官网中可以下载到 FreeRTOS 的源码,博主下载了一份,解压后目录如下: FreeRTOS 源码中有三个文件夹,7 个 HTML 格式的网页和 2 个 txt 文档,HTML 网页和 txt 文档看名字就知道是什么东西了,重点在于上面那两个文件夹:FreeRTOSFreeRTOS-Plus,这两个文件夹里面的东西就是 FreeRTOS 1、FreeRTOS 文件夹 1)Demo 文件夹里面就是 FreeRTOS 的相关例程: FreeRTOS 针对不同的 MCU 提供了非常多的 Demo,其中就有 ST 的 F1、F4 和 F7 我们看一下 Source: FreeRTOS-Plus 中的源码其实并不是 FreeRTOS 系统的源码,而是在 FreeRTOS 系统上另外增加的一些功能代码,比如 CLI、FAT、Trace 等等 就系统本身而言,和 FreeRTOS 里面的一模一样的,所以我们如果只是学习 FreeRTOS 这个系统的话,FreeRTOS-Plus 就没必要看了。

28220
  • 广告
    关闭

    热门业务场景教学

    个人网站、项目部署、开发环境、游戏服务器、图床、渲染训练等免费搭建教程,多款云服务器20元起。

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    FreeRTOS系列第8篇---FreeRTOS内存管理

    ID:技术让梦想更伟大 作者:李肖遥 FreeRTOS提供了几个内存堆管理方案,有复杂的也有简单的。 为了避免这个问题,FreeRTOS在移植层保留内存分配API函数。移植层在RTOS核心代码源文件之外(不属于核心源代码),这使得不同的应用程序可以提供适合自己的应用实现。 FreeRTOS下载包中提供5种简单的内存分配实现,本文稍后会进行描述。用户可以适当的选择其中的一个,也可以自己设计内存分配策略。 FreeRTOS提供的内存分配方案分别位于不同的源文件(heap_1.c、heap_2.c、heap_3.c、heap_4.c、heap_5.c)之中,源文件位于下载包\FreeRTOS\Source\ 应用程序直接调用pvPortMalloc() 和 vPortFree()函数,而不仅是通过FreeRTOS API间接调用。

    49820

    FreeRTOS系列第9篇---FreeRTOS任务概述基础篇

    目前协程很少被使用到,因此对于协程FreeRTOS作者既没有把它删除也没有进一步开发。 所以本系列文章以后不会对协程过多描述,包括其API函数。 FreeRTOS调度器确保处于最高优先级的就绪或运行态任务获取处理器,换句话说,处于运行状态的任务,只有其中的最高优先级任务才会运行。 任何数量的任务可以共享同一个优先级。 在较新的FreeRTOS移植包中,如果 试图从一个任务中返回,将会调用configASSERT()(如果定义的话)。 如果使用FreeRTOS-MPU(在官方下载包中,为Cortex-M3内核写了两个移植方案,一个是普通的FreeRTOS移植层,还有一个是FreeRTOS-MPU移植层。 在使用FreeRTOS-MPU的情况下,使用xTaskCreate()函数可以创建运行在特权模式或用户模式(见下面对函数参数uxPriority的描述)的任务。

    74740

    FreeRTOS(三)

    接下来就在 STM32F103 单片机上移植 FreeRTOS。 移植 FreeRTOS 以正点原子的跑马灯工程为基础,在上面扩展。 在基础工程中新建一个名为 FreeRTOS 的文件夹: 创建 FreeRTOS 文件夹以后就可以将 FreeRTOS 的源码添加到这个文件夹中,,添加完以后 如图所示: portable 文件夹,我们只需要留下 keil、MemMang 和 RVDS 这三个文件夹,其他的都可以删除掉: 打开基础工程,新建分组 FreeRTOS_CORE 和 FreeRTOS_PORTABLE,然后向这两个分组 中添加文件 分组 FreeRTOS_CORE 中的文件就是 FreeRTOS 源码。 我们可以找找 FreeRTOS 的官方移植工程中会不会有这个文件,打开 FreeRTOS 针对 STM32F103 的移植工程文件,文件夹是 CORTEX_STM32F103_Keil,打开以后官方的移植工程中有这个文件

    32510

    FreeRTOS(六):任务

    本文学习一下 FreeRTOS的任务基础知识,分为如下几部分: 1、什么是多任务系统 2、FreeRTOS 任务与协程 3、初次使用 3、任务状态 4、任务优先级 5、任务实现 6、任务控制块 7、任务堆栈 2、FreeRTOS 任务与协程 FreeRTOS 中应用既可以使用任务,也可以使用协程(Co-Routine),或者两者混合使用。 但是 FreeRTOS 目前还没有把协程移除的计划,但是 FreeRTOS 是绝对不会再更新和维护协程了,因此协程大家了解一下就行了。 (4)、FreeRTOS 的延时函数,此处不一定要用延时函数,其他只要能让 FreeRTOS 发生任务 切换的 API 函数都可以,比如请求信号量、队列等,甚至直接调用任务调度器。 FreeRTOS 的任务函数和 UCOS 的任务函数模式基本相同的,不止 FreeRTOS,其他 RTOS 的任务函数基本也是这种方式的。

    29310

    FreeRTOS 任务通知

    简述 FreeRTOS 从版本 V8.2.0开始提供任务通知这个功能,每个任务都有一个32位的通知值。 按照 FreeRTOS 官方的说法,使用消息通知比通过二进制信号量方式解除阻塞任务快 45%, 并且更加省内存(无需创建队列)。 FreeRTOS 提供以下几种方式发送通知给任务 : 发送消息给任务, 如果有通知未读, 不覆盖通知值 发送消息给任务,直接覆盖通知值 发送消息给任务,设置通知值的一个或者多个位 发送消息给任务,递增通知值 当然,消息通知也有其限制 : 通知只能一对一,因为通知必须指定任务 等待通知的任务可以被阻塞, 但是发送消息的任务,任何情况下都不会被阻塞等待 分析的源码版本是 v9.0.0 通知 API FreeRTOS ---- 参考 FreeRTOS Notifications FreeRTOS API

    55720

    FreeRTOS系列第6篇---FreeRTOS内核配置说明

    整理:李肖遥 FreeRTOS内核是高度可定制的,使用配置文件FreeRTOSConfig.h进行定制。每个FreeRTOS应用都必须包含这个头文件,用户根据实际应用来裁剪定制FreeRTOS内核。 #ifndef FREERTOS_CONFIG_H #define FREERTOS_CONFIG_H /*Here is a good place to include header files FreeRTOS提供了一个灵活的机制,使得应用程序可以使用线程本地存储指针来读写线程本地存储。具体参见后续文章《FreeRTOS系列第12篇---FreeRTOS任务应用函数》。 详细描述见FreeRTOS software timers。 FreeRTOS内核代码的关键点都会调用configASSERT( x )函数,如果参数x为0,则会抛出一个错误。这个错误很可能是传递给FreeRTOS API函数的无效参数引起的。

    64121

    FreeRTOS】事件标志组

    FreeRTOS 中断方式事件标志组的实现 FreeRTOS 中断方式事件标志组的实现是指中断函数和 FreeRTOS 任务之间使用事件标志。 如果 FreeRTOS 工程的中断函数中没有调用 FreeRTOS 的事件标志组 API 函数,与裸机编程是一样的。 如果 FreeRTOS 工程的中断函数中调用了 FreeRTOS 的事件标志组的 API 函数,退出的时候要检测是否有高优先级任务就绪,如果有就绪的,需要在退出中断后进行任务切换,这点跟裸机编程稍有区别 而 FreeRTOS 不允许在中断服务程序和临界段中执行不确定性操作。 为了不在中断服务程序中执行,就通过此函数给FreeRTOS 的 daemon 任务(就是 FreeRTOS 的定时器任务)发送消息,在 daemon 任务中执行事件标志的置位操作。

    60410

    FreeRTOS(十二):消息队列

    FreeRTOS 对此提供了一个叫做“队列”的机制来完成任务与任务、任务与中断之间的消息传递,由于队列用来传递消息的,所以也称为消息队列。 但是也可以使用 LIFO 的存储缓冲,也就是后进先出,FreeRTOS 中的队列也提供了 LIFO 的存储缓冲机制。 FreeRTOS中使用队列传递消息的话虽然使用的是数据拷贝,但是也可以使用引用来传递消息啊,我直接往队列中发送指向这个消息的地址指针不就可以了! queueQUEUE_TYPE_COUNTING_SEMAPHORE 计数型信号量 queueQUEUE_TYPE_BINARY_SEMAPHORE 二值信号量 queueQUEUE_TYPE_RECURSIVE_MUTEX 递归互斥信号量 4、向队列发送消息 FreeRTOS 6、从队列读取消息 有入队就有出队,出队就是从队列中获取队列项(消息),FreeRTOS 中出队函数如表示: 具体的函数用法大家可以在用到的时候百度,这里就不详细介绍了,大家知道有这些东西就行。

    25830

    关注

    腾讯云开发者公众号
    10元无门槛代金券
    洞察腾讯核心技术
    剖析业界实践案例
    腾讯云开发者公众号二维码

    相关产品

    • X-P2P

      X-P2P

      腾讯云X-P2P以新一代的 P2P 技术为核心,充分利用边缘计算存储能力和整体网络闲置带宽,结合音视频 SaaS 服务,提供给客户更好用户体验、更高性价比的流媒体方案。客户通过客户端集成 SDK,能够获得更流畅播放体验并显著降低分发成本,适用于互动直播、电视内容直播、赛事直播、在线视频、短视频等业务场景。

    相关资讯

    热门标签

    活动推荐

    扫码关注腾讯云开发者

    领取腾讯云代金券