今天来学习如何移植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. SQLMap入门——获取当前网站数据库的名称

    列出当前网站使用的数据库 python sqlmap.py -u http://localhost/sqli-labs-master/Less-1/?id=1 --current-db

  2. 从源码构建docker-ce

    准备环境 准备一台Linux主机,并在上面安装好docker-ce,安装好make,git就可以开始编译工作了.对,就是如此简单,可能你会对此感到异或为啥要装docker,我不是准备编译这个玩意么,为 ...

  3. 【转载】EXCEL VBA 20个有用的ExcelVBA代码

    1.显示多个隐藏的工作表 如果你的工作簿里面有多个隐藏的工作表,你需要花很多时间一个一个的显示隐藏的工作表. 下面的代码,可以让你一次显示所有的工作表 Sub UnhideAllWoksheets() ...

  4. Java基础篇——垃圾收集详解

    JAVA垃圾收集 1.如何判断对象死亡 说道垃圾回收,那么首要问题就是jvm如何判断一个对象已经死亡呢 1.1 引用计数法 说白了,就是为每个对象设立一个引用计数器,每当有一个引用指向它,计数器加一, ...

  5. [Python]Python调用Matlab (Pycharm版本)

    目录 第一步:生成Build文件夹 第二步: 复制build文件夹到Pycharm下 第三步:调用代码 第一步:生成Build文件夹 C:\Program Files\MATLAB\R2016a\ex ...

  6. Quartz 使用教程

    首先说说,为什么要写这篇文章: Quartz 的 v2.3.2 版本改动比较大,目前网上的资料都是旧版本,很缺乏相关资料 很多资料讲解非常不全面,例如 Quartz Listener 的介绍和使用基本 ...

  7. SpringBoot项目动态定时任务之 ScheduledTaskRegistrar(解决方案一)

    前言 ​ 在做SpringBoot项目的过程中,有时客户会提出按照指定时间执行一次业务的需求. ​ 如果客户需要改动业务的执行时间,即动态地调整定时任务的执行时间,那么可以采用SpringBoot自带 ...

  8. DDL_操作数据库_修改&删除&使用

    DDL_操作数据库_修改&删除&使用 3.U(Update) : 修改 修改数据库的字符集 alter database 数据库名称 character set 字符集名称; 4.D( ...

  9. Unity3D——鼠标双击

    Unity之鼠标双击 小黑终于又回到公司了! 能在公司安生的待段时间了,今天更新一篇吧! 懒惰的小黑给大家分享个好东西吧,解决双击之痛! 前言 小黑相信有许多人和我一样.万年不会碰到一个需求:双击!可 ...

  10. vue学习笔记(一) ---- vue指令(总体大纲)

    一.什么是Vue 官方文档:https://cn.vuejs.org/v2/guide/ 关键字: 渐进式框架 自底向上增量开发 视图层 单文件组件 复杂的单页应用 复杂的单页应用: 顾名思义,单页应 ...