今天来学习如何移植freeRTOS

也算是走了很多的坑,总算是把系统跑起来了

相关的教程网上也有比较详细的,本文主要说说自己踩的坑

一些汇编文件报错的问题

这个问题的原因是因为网上大部分的移植说明都是基于ARMCC编译器的,也就是针对complier5,但是我上来怼个complier6,一些扩展语言已经不支持了,所以会疯狂报错,对于这个问题有两种解决办法:第一:编译器版本选择5不就完事了吗,选择这种办法还是比较简单的,网上的移植说明大多也是基于这个版本。但是某些MDK编译器版本只有6的人就不那么友好了,总不能为了个RTOS再重装软件吧,那有么有基于complier6也就是ARNCLANG的移植呢?(说明一下,大部分报错都是接口文件的报错,也就是heap_4.c、port.c、 port.h这几个文件的报错)其实freeTOS官方团队怎么能没考虑到呢,只需要把接口文件选择GCC目录下面的就可以了,好了,本文结束!

再往下就是用伪代码方式写写任务创建的过程以及任务挂起恢复的函数

static void AppTaskCreate(void);
static void usartTask1(void* parameter);
static void usartTask2(void* parameter);
static TaskHandle_t usartTask1Handller_t = NULL;
static TaskHandle_t usartTask2Handller_t = NULL;
AppTaskCreate();
vTaskStartScheduler(); void AppTaskCreate(void)
{
xTaskCreate( usartTask1, /* 任务函数 */
"usartTask1", /* 任务名 */
1024, /* 任务栈大小,单位word,也就是4字节 */
NULL, /* 任务参数 */
1, /* 任务优先级*/
&usartTask1Handller_t );
xTaskCreate( usartTask2, /* 任务函数 */
"usartTask2", /* 任务名 */
1024, /* 任务栈大小,单位word,也就是4字节 */
NULL, /* 任务参数 */
2, /* 任务优先级*/
&usartTask2Handller_t ); }
void usartTask1(void* parameter)
{
while(1)
{
printf("task1 is runing! \n");
vTaskDelay(1000);
} }
void usartTask2(void* parameter)
{
uint8_t state=0;
while(1)
{
//按键按下,任务1挂起,再按下,任务1恢复
if(Key_Scan(GPIOC,GPIO_Pin_8) == 1)
{
if(state == 0)
{
state=1;
printf("suspend task1\n");
vTaskSuspend(usartTask1Handller_t);
}
else
{
state=0;
printf("resume task1\n");
vTaskResume(usartTask1Handller_t);
} }
printf("this is task2 \n"); vTaskDelay(3000);
} }

freeRTOS移植成功的更多相关文章

  1. 基于IAR平台FreeRTOS移植

     开始这篇文章之前先简单说明一下,我使用的MCU是我们公司自主研发的ACH1180芯片,和STM32差不多,都是Cortex-M4的核,所以移植的过程参考了STM32移植的步骤. 1.解压FreeRT ...

  2. nRF52832 SDK15.3.0 基于ble_app_uart demo FreeRTOS移植

    参考资料:https://blog.csdn.net/u010860832/article/details/86235993 这里把移植经验记录下来,供有需要的同学参考,有不对的地方也请大家批评指正. ...

  3. FreeRTOS移植到STM32上的移植过程

    所有的单片机都是顺序执行的,而对于多任务而言就显得力不从心了,虽然在一些小项目中可以通过定时器来实现,但这种实现方式没有实时性,一旦任务需要在规定时间内做出响应,那只能通过实时操作系统来完成了.在很多 ...

  4. FreeRTOS移植EasyFlash

    1. EasyFlash Easyflash可以让 Flash 成为小型 KV 数据库(Key-Value) GitHub: https://github.com/armink/SFUD Gitee: ...

  5. FreeRTOS 移植到WIN10

    背景 标题表述的不准确,大意是移植到WIN10的PC机,Intel I5. 最近因为项目接触了FreeRTOS 实时操作系统,想对这个操作系统有一个更深入的了解,所以决定下载源码看看,下面这个链接的随 ...

  6. 1、FreeRTOS移植

    1.FreeRTOS目录结构 FreeRTOS FreeRTOS简略目录如下: ├─FreeRTOS │ ├─Demo // 各种开发工具的完整Demo,开发者可以方便的以此搭建出自己的项目,甚至直接 ...

  7. FreeRtos——移植

    现在准备的简单程序LED灯的工程目录中增加freertos文件夹: 在 source目录下的portable目录下只留下下面的文件夹: 为什么呢? 把对应文件移植在工程中之后,添加头文件路径如下图: ...

  8. STM32F407使用MFRC522射频卡调试及程序移植成功

    版权声明:转载请注明出处,谢谢 https://blog.csdn.net/Kevin_8_Lee/article/details/88865556 或  https://www.cnblogs.co ...

  9. 超详细的FreeRTOS移植全教程——基于srm32

    ### 准备 在移植之前,我们首先要获取到FreeRTOS的官方的源码包.这里我们提供两个下载链接: > 一个是官网:http://www.freertos.org/ > 另外一个是代码托 ...

  10. 最新QT4.8+kernel_3.2.5+uboot_2010.06+tslib移植成功-问题小结

    2012-02-19 21:34:13 都是从源码下载然后自己修改,使用与TQ2440,之前uboot其实已经完成了.但是yaffs2没带起来.现在回头看来是很简单的了.bootargs参数中我设置成 ...

随机推荐

  1. angr原理与实践(三)——Arbiter:一种弥合二进制程序漏洞发现中的静态和动态鸿沟

    ​ 转载请说明出处:信安科研人 please subscribe my official wechat :信安科研人 获取更多安全资讯 原文链接:sec22-vadayath.pdf (usenix. ...

  2. 一个开放源代码,实现动态IL注入(Hook或补丁工具)框架:Lib.Harmony(Patch,PatchAll,Prefix,Postfix,Transpiler)

    详情请参考原文:一个开放源代码,实现动态IL注入(Hook或补丁工具)框架:Lib.Harmony  

  3. 对Asp.net WebApi中异步(async+await)接口实际使用及相关思考(示例给出了get,post,提交文件,异步接口等实践).

    [很多初学者的疑问] 为何作为web api这样的天然的并发应用,还需要在controller的action上声明使用async这些呢? <参考解答> 在 web 服务器上,.NET Fr ...

  4. 三台服务器使用docker搭建redis一主二从三哨兵,概念-搭建-整合springboot

    一.前言 redis在我们企业级开发中是很常见的,但是单个redis不能保证我们的稳定使用,所以我们要建立一个集群. redis有两种高可用的方案: High availability with Re ...

  5. [深度学习] tf.keras入门2-分类

    目录 Fashion MNIST数据库 分类模型的建立 模型预测 总体代码 主要介绍基于tf.keras的Fashion MNIST数据库分类, 官方文档地址为:https://tensorflow. ...

  6. 详解kubernetes五种暴露服务的方式

    部署完服务终将是为了访问,那么kubernetes中service和ingress都可以将集群内部的服务能够支持外部访问.service可以让一组 Pod(称为"后端")为集群内的 ...

  7. Spring MVC学习(一) Spring MVC基本介绍以及配置

    Spring MVC学习(一) Spring MVC基本介绍以及配置   摘要:这篇笔记是对于Spring MVC的第一部分的学习中的整理,主要记录了Spring MVC的基础知识以及配置一个简单的S ...

  8. 突如其来的&amp;quot;中断异常&amp;quot;,我(Java)该如何处理?

    # **一.何为异常?** ## 1.生活中的实例 生活中存在许多不正常: 上班路上自行车掉链子 上厕所手机掉马桶 下班回家钥匙丢失 ....... 2.程序中的实例 我们的代码中也许存在许多纰漏,导 ...

  9. 洛谷 P1478 陶陶摘苹果(升级版) 题解

    这道题只要会自定义cmp恰当地进行排序,其他部分没有什么大问题. 上代码: 1 #include<bits/stdc++.h> 2 using namespace std; 3 int n ...

  10. three.js一步一步来--如何画出一根线

    下面是画出线的代码,可以参考一下哟~~ <template> <div style="width:1000px; height:800px"> <p& ...