【XR806开发板试用】FreeRTOS创建任务测试

news2024/11/25 4:07:18

这篇来学习下,XR806开发板在FreeRTOS系统下创建两个任务测试,由于没有找到学习的文档,试着参考例程来测试。

一、复制工程

上篇测试了hello_demo的测试例程,直接复制这个工程文件,在此基础上修改

root@ubuntu:/home/xr806_sdk/project/demo# cp -r hello_demo/ task_demo/

复制完成后,文件如下:
在这里插入图片描述

修改 /demo/task_demo/gcc目录下的defconfig文件
root@ubuntu:/home/xr806_sdk/project/demo/task_demo/gcc# vi defconfig
在这里插入图片描述

二、代码

2.1、main.c

#include "common/framework/platform_init.h"
#include <stdio.h>
#include "kernel/os/os.h"
#include "task.h"

int main(void)
{
	platform_init();
	task_init();
	
	return 0;
}

2.2、task.c


#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "kernel/os/os.h"

#define START_THREAD_STACK_SIZE    (512)
#define THREAD_STACK1_SIZE    (512)
#define THREAD_STACK2_SIZE    (512)

static OS_Thread_t start_task_thread;
static OS_Thread_t task1_thread;
static OS_Thread_t task2_thread;

static void task1(void *arg)
{
    while (1)
    {
         printf("task1 running....\n");
         OS_MSleep(100);
    }
}

static void task2(void *arg)
{
    while (1)
    {
         printf("task2 running....\n");
         OS_MSleep(200);
    }
}


static void start_task(void *arg)
{

    //create task1
    if (OS_ThreadCreate(&task1_thread,
	                    "task1",
	                    task1,
	                    NULL,
	                    OS_THREAD_PRIO_APP,
	                    THREAD_STACK1_SIZE) != OS_OK) {
		printf("thread create task1 error\n");
	}

    //create task2
    if (OS_ThreadCreate(&task2_thread,
	                    "task2",
	                    task2,
	                    NULL,
	                    OS_THREAD_PRIO_APP,
	                    THREAD_STACK2_SIZE) != OS_OK) {
		printf("thread create task2 error\n");
	}

    OS_ThreadDelete(&start_task_thread);
}


int task_init(void)
{
    if (OS_ThreadCreate(&start_task_thread,
	                    "start_task",
	                    start_task,
	                    NULL,
	                    OS_THREAD_PRIO_APP,
	                    START_THREAD_STACK_SIZE) != OS_OK) {
		printf("thread create error\n");
		return -1;
	}
	return 0;
}

三、程序运行

编译完成后,下载镜像到开发板。
复位开发板运行后,串口输出:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1350213.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言实验6:文件

目录 一、实验要求 二、实验原理 1. 文件的基本概念 2. 文件指针 3. 文件的打开与关闭 3.1 fopen 3.2 fclose 4. 文件的读写操作 4.1 fread 4.2 fwrite 5. 文件的定位 三、实验内容 3.1 文件复制 代码 截图 分析 3.2 单词统计 代码 截图 分析 一、实验要求…

流量预测_MLP模型_keras

目录 0、我在干什么&#xff1f;1、import libararies2、加载数据load data3、独家观察数据函数 :heartbeat:4、数据预处理pre-processing&#xff08;1&#xff09;将时间戳转换为一个日期时间索引&#xff08;2&#xff09;填充所有缺失的值&#xff08;3&#xff09;将时间序…

GPT如何完成技术路线图?

GPT如何完成技术路线图&#xff1f; 一OpenAI 1.最新大模型GPT-4 Turbo 2.最新发布的高级数据分析&#xff0c;AI画图&#xff0c;图像识别&#xff0c;文档API 3.GPT Store 4.从0到1创建自己的GPT应用 5. 模型Gemini以及大模型Claude2二定制自己的GPTs 1.自定义GPTs使用…

POC-700系列 支持多功能扩展的强固型无风扇嵌入式计算平台

POC-700系列是一款拥有小巧紧凑尺寸的无风扇嵌入式计算平台&#xff0c;搭载了英特尔 Alder Lake i3-N305或凌动 x7425E处理器&#xff0c;提供高达32个执行单元(EU) UHD图形功能&#xff0c;8核8线程&#xff0c;而其功耗非常低&#xff0c;仅为12W。POC-700系列可支持英特尔 …

2 - 表结构 | MySQL键值

表结构 | MySQL键值 表管理1. 库的操作2. 表的操作表的创建与删除表的修改复制表 3. 管理表记录 数据类型数值类型字符类型&#xff08;汉字或者英文字母&#xff09;日期时间类型 表头存储与日期时间格式的数据枚举类型 数据批量处理 表管理 客户端把数据存储到数据库服务器上…

Java项目:104SpringBoot就业管理系统

博主主页&#xff1a;Java旅途 简介&#xff1a;分享计算机知识、学习路线、系统源码及教程 文末获取源码 一、项目介绍 就业管理系统基于SpringBootMybatis开发&#xff0c;系统分为两种角色&#xff0c;分别是管理员和普通用户。 管理员功能如下&#xff1a; 就业信息管理…

一、医学影像云平台(AI赋能基层的最佳实践)

医学影像云平台&#xff0c;是一个目前影像业务中&#xff0c;各省市级领导比较重视的业务板块。因为&#xff0c;影像平台不但可以直接给原来没有PACS系统的1,2级医院提供PACS服务&#xff0c;还可以提供院间之间的业务&#xff0c;例如发送远程诊断&#xff0c;远程会诊业务&…

银行业绩数据监控大屏:驾驭金融海洋的航标

在金融领域&#xff0c;数据就是生命线。如何有效地监控和管理这些数据&#xff0c;确保银行业绩的稳健发展&#xff0c;已成为银行业内亟待解决的问题。而银行业绩数据监控大屏&#xff0c;正是解决这一问题的有力工具。 一、实时监控&#xff0c;把握业绩动态 银行业绩数据监…

前端八股文(CSS篇)二

目录 1.css中可继承与不可继承属性有哪些 2.link和import的区别 3.transition和animation的区别 4.margin和padding的使用场景 5.&#xff1a;&#xff1a;before和&#xff1a;after的双冒号和单冒号有什么区别&#xff1f; 6.display:inline-block什么时候会显示间隙 7…

2024年【建筑焊工(建筑特殊工种)】考试试卷及建筑焊工(建筑特殊工种)考试总结

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 建筑焊工(建筑特殊工种)考试试卷根据新建筑焊工(建筑特殊工种)考试大纲要求&#xff0c;安全生产模拟考试一点通将建筑焊工(建筑特殊工种)模拟考试试题进行汇编&#xff0c;组成一套建筑焊工(建筑特殊工种)全真模拟考…

TinyEngine 服务端正式开源啦!!!

背景介绍 TinyEngine 低代码引擎介绍 随着企业对于低代码开发平台的需求日益增长&#xff0c;急需一个通用的解决方案来满足各种低代码平台的开发需求。正是在这种情况下&#xff0c;低代码引擎应运而生。它是一种通用的开发框架&#xff0c;通过对低代码平台系统常用的功能进…

JavaWeb——前端之AjaxVue

6. 前后端交互 6.1 Ajax&#xff08;原生的&#xff09; 概念&#xff1a; Asynchronous JavaScript And XML&#xff08;异步的JavaScript和XML&#xff09; 作用&#xff1a; 数据交互&#xff1a;通过Ajax可以给服务器发送请求&#xff0c;并获取服务器响应的数据异步交…

大数据时代快速获取数据方法,爬虫技术理论剖析与实战演练

一、教程描述 人工智能和机器学习&#xff0c;都离不开数据&#xff0c;若是没有数据&#xff0c;再好的算法&#xff0c;再好的模型&#xff0c;都没有用武之地。数据不仅是指现成的数据库&#xff0c;更加是指每天增加的海量互联网数据。本套教程将通过多个实战项目&#xf…

Spring Boot 3 集成 Jasypt详解

随着信息安全的日益受到重视&#xff0c;加密敏感数据在应用程序中变得越来越重要。Jasypt&#xff08;Java Simplified Encryption&#xff09;作为一个简化Java应用程序中数据加密的工具&#xff0c;为开发者提供了一种便捷而灵活的加密解决方案。本文将深入解析Jasypt的工作…

docker 部署教学版本

文章目录 一、docker使用场景及常用命令1&#xff09;docker使用场景2&#xff09;rocky8(centos8)安装 docker3&#xff09;docker 常用命令补充常用命令 二、 单独部署每个镜像&#xff0c;部署spring 应用镜像推荐&#xff08;2023-12-18&#xff09;1、 安装使用 mysql1.1 …

STM32的HAL环境搭建

下载 https://www.st.com/en/development-tools/stm32cubemx.html 根据不同平台下载&#xff0c;windows下载window是即可。 安装 解压 下载的是zip文件&#xff0c;进行解压&#xff0c;得到一个exe文件。 安装 得到的exe文件&#xff0c;必须放到一个没有空格&#xff0…

[每周一更]-(第43期):Golang版本的升级历程

从1.13接触go语言开始更新我们公司内第一个Go项目&#xff0c;直至现在go版本已经发展到1.20&#xff08;20230428&#xff09;&#xff0c;我们从go发版开始认识go语言&#xff0c;有利于我们更深入 了解这门语言&#xff0c;洞悉一些深层方式&#xff0c;加深我们学习的动力&…

nginx源码分析-4

这一章内容讲述nginx的模块化。 ngx_module_t&#xff1a;一个结构体&#xff0c;用于描述nginx中的各个模块&#xff0c;其中包括核心模块、HTTP模块、事件模块等。这个结构体包含了一些模块的关键信息和回调函数&#xff0c;以便nginx在运行时能够正确地加载和管理这些模块。…

3个值得推荐的WPF UI组件库

WPF介绍 WPF 是一个强大的桌面应用程序框架&#xff0c;用于构建具有丰富用户界面的 Windows 应用。它提供了灵活的布局、数据绑定、样式和模板、动画效果等功能&#xff0c;让开发者可以创建出吸引人且交互性强的应用程序。 HandyControl HandyControl是一套WPF控件库&…

c# 捕获全部线程的异常 试验

1.概要 捕获全部线程的异常 试验&#xff0c;最终结果task的异常没有找到捕获方法 2.代码 2.1.试验1 2.1.1 试验结果 2.2 代码 2.2.1主程序代码 using NLog; using System; using System.Threading; using System.Windows.Forms;namespace 异常监控 {static class Program…