基于Ubuntu的嵌入式开发练习(十)FreeRTOS的移植和设计一个基本的多任务程序

本文档详细介绍了如何在Ubuntu上进行FreeRTOS的移植,以及在STM32上设计一个基本的多任务程序。内容包括FreeRTOS移植步骤、任务要求、代码设计以及执行效果展示。通过注释和代码示例,读者可以了解如何配置FreeRTOSConfig.h,创建任务,并实现LED闪烁、串口数据发送等任务。
摘要由CSDN通过智能技术生成

如有错误,欢迎指正,谢谢!

一、FreeRTOS的移植

  1. 教程(视频):野火 FreeRTOS视频教学 配套书籍《FreeRTOS内核实现与应用开发实战指南》配套例程源码

  2. 流程图
    在这里插入图片描述

  3. 提取最简源码
    包含以下部分
    在这里插入图片描述
    首先要确定自己的芯片类型,我才用的是野火指南者,故采用ARM_CM3中的文件。
    各个文件的来源如下:
    在这里插入图片描述在这里插入图片描述在这里插入图片描述最好还要把FreeRTOS.h加入我们模板的user中,
    在这里插入图片描述
    按先前的图片的顺序加入文件夹,并导入keil中

  4. 设置对应的路径
    在这里插入图片描述

  5. 将模板的文件stm32f10x_it.c中的以下两个函数注释掉
    在这里插入图片描述

  6. 将FreeRTOSConfig.h进行配置(我也不知道配置了个啥,大致就是用野火的文件把官方文档中的替换掉)

二、建立一个基本的多任务程序

1、实验要求

在STM32下完成一个基于FreeRTOS的多任务程序,执行3个周期性task,具体任务不限,但建议如下:task1,每间隔500ms闪烁(变化)一次LED;task2,每间隔2000ms,向串口发送一次指令数据“helloworld!";task3,每间隔5000ms,从AHT20采集一次温湿度数据(不考虑硬件情况,仅写出整个多任务框架模拟代码)。
注:目前还没有买AHT20芯片,故先执行2个task,去掉传感器部分

2、代码设计

1、功能代码

LED模块:

static void LED1_Task(void* parameter)
{
   	
    while (1)
    {
   
        LED1_ON;
        vTaskDelay(500);   /*延时500ms*/
        printf("LED1_Task Running,LED1_ON\r\n");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值