将FreeRTOS-Plus-CLI项目加入工程使用歩骤

FreeRTOS+CLI

An Extensible Command Line Interface Framework

Introduction

FreeRTOS+CLI (Command Line Interface) provides a simple, small, extensible and RAM efficient method of enabling your FreeRTOS application to process command
line input. The steps required to add a command are shown in the clickable diagram below - click each stage in the process individually to
be taken to a worked example.

上面是官网关于FreeRTOS+CLI的简单介绍,在网上搜索了好久没看到相关人员的使用,于是凭着感觉开始将源码加入工程使用,下面是我的步骤经历。

开发环境:

系统:win7

开发IDE:CoIDE_V2Beta

编译器:GNU Tools ARM Embedded\4.7 2014q2(arm-none-eabi-gcc)

嵌入式环境:stm32f103vet6

第一步:首先建立一个简单的FreeRTOS工程,这个很简单,请自行参考网上资料。

第二步:下载FreeRTOSV8.2.1源代码并解压。

第三步:将“\FreeRTOSV8.2.1\FreeRTOS-Plus\Source\FreeRTOS-Plus-CLI”下的两个文件加入工程。其中在头文件“FreeRTOS_CLI.h”中加入一个没定义的数据(这个是我在编译的时候报错发现的):

#define configCOMMAND_INT_MAX_OUTPUT_SIZE 1000

第三步:在“\FreeRTOSV8.2.1\FreeRTOS-Plus\Demo\Common\FreeRTOS_Plus_CLI_Demos”是几个使用的demo,由于我使用的是串口,所以就使用“UARTCommandConsole.c”和“Sample-CLI-commands.c”,所以就将这两个文件也加入工程。

在““UARTCommandConsole.c””中修改参数:#define cmdQUEUE_LENGTH 1000  这个数据是串口一下子输出的数据大小,尽量大点,这样输出可以完全,太小的话可能串口输出不完全,这个是我实际使用发现的。

第四步:由于我使用的串口交互,那么需要底层的硬件支持,所以就是硬件驱动了。在“UARTCommandConsole.c”中引入了个头文件“#include "serial.h"”  。此文件在FreeRTOS中的关于stm32f10X的demo中有这个头文件和.c文件的实现,直接拷贝过来然后加入工程。

第五步:按自己硬件修改“serial.c”文件。

1:

/* Library includes. */

//#include "stm32f10x_lib.h"

#include "stm32f10x_conf.h"

2:xSerialPortInitMinimal()函数中对使用的串口初始化。

3:中断函数的修改

//void vUARTInterruptHandler( void )

void USART3_IRQHandler( void )

4:反正在“serial.c”中每个函数要根据自己硬件去修改,最好从头至尾检查一遍,防止一个函数参数和使用的硬件接口不同都可能照成使用不成功。

第六步:在main函数中加入相关初始化和CLI任务。

vRegisterSampleCLICommands();//此函数是官方提供的例子,可以不加入,如果加入注意里面的一些函数使用需要开启一些依靠的宏。

vUARTCommandConsoleStart( 1000, 1 );

第七步:编译无问题后下载和PC通信,设置好波特率,然后使用官方的几个例子测试。测试成功,以后就可以自己添加一下交互命令了。

我提供我的工程文件在github中。下面是工程目录局部视图:

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-25 15:00:29

将FreeRTOS-Plus-CLI项目加入工程使用歩骤的相关文章

怎么找回Eclipse 项目(工程)中丢失的R包(文件)

我想很多人也会遇到和我一样的问题,但是在短时间内不知道如何是好,只能抓耳挠腮的"狂躁"! 现在CSDN就是我的一个笔记本,我会把我在做项目中遇到的各个问题意义的列举出来: 但是总不能把自己写的项目删掉,再重新建立吧!(如果使用了SVN,可能重新再弄会轻松点)  但是我想要更加方便的方法: 一般情况下: 方法一:选中项目>clean一下 方法二:选中项目>Android Tools>Fix 一下 如果还不行的话,还有一种方式: 第一:进入你的XXX.XML文件中,首先找

VS在一个解决方案中添加多个项目(工程)

VS2015在一个解决方案中添加多个项目(工程) 首先要肯定的一点是,在一个解决方案(solution)中是可以添加多个项目(project)的,这多个项目之间存在两种关系:       1.项目间彼此独立,各自有各自的入口,只是组织在一个解决方案中便于管理:       2.项目间存在相互调用,只存在一个入口. 在这里只讨论第一种关系: 项目间彼此独立,每个项目都有自己的入口,则同一时间解决方案只能有一个活动入口,相当于只有一个项目存在, 通过设置可以选择哪个项目作为活动项目,则之后的编译.运

Eclipse怎样把文件系统形式的项目作为工程直接导入?

导入的时候,选择已经存在的工程,如果选择文件系统,可能会提示没有项目可以导入.这个时候,可以从其它Eclipse项目下,copy一份.project文件过来,修改源文件中的工程名字.如果需要,也可以copy一份.classpath文件..project文件结构 <projectDescription> <name>SoundRecorder</name> <comment></comment> <projects> </proj

在AndroidStudio v1.2.0中导入或增加新项目或工程(导入第三方类库或工程)

以下说明基于AndroidStdudio版本v1.2 由于AndroidStudio项目止录与Eclipse中的Worksapce在意义上的改变,所以导入新包或建立新项目时并不和以前那样了. 下面是我碰到的以解决问题的办法.以供参考. 1. 创建好项目后,将需要的第三方jar文件拷贝到工程目录下的app\libs目录中,由于在1.2版本中的build.gradle文件中已经加上了依赖目录,所以不用再改该文件了. dependencies { compile fileTree(dir: 'libs

01淘淘商城项目:项目Maven工程搭建

最近在学习淘淘商城项目的搭建,使用maven做管理 后台管理系统工程搭建: 使用maven的好处: 1.依赖管理.jar包.工程之间依赖 2.项目构建:实现项目的一步构建 3.工程聚合.继承.依赖 maven工程分为三种类型: pom工程:用在父级工程,聚合工程中 war包工程:主要用作网站 jar包工程:就是当作jar使用的,可以用来打包 先给出总的项目结构,然后再解释是如何实现这些结构的 解释如下: 1.taotao-parent taotao-parent公司级别的maven工程.主要功能

Pod管理的iOS项目修改工程名

声明:本文大部分内容来自于以下网址,其余的部分是自己尝试的总结和补充. http://www.jianshu.com/p/5f088acecf64 完整修改iOS工程名1 http://www.cnblogs.com/GarveyCalvin/p/4195745.html   完整修改iOS工程名2 http://blog.csdn.net/freedom2028/article/details/10244819  iOS工程中删除pod http://blog.csdn.net/xiaonai

@angular/cli项目构建--组件

环境:nodeJS,git,angular/cli npm install -g cnpm cnpm install -g @angular/cli ng new angularDemo ng -v ng set --global packageManager=cnpm npm install jquery --save npm install bootstrap --save npm install @type/jquery --save-dev npm install @type/boots

eclipse创建springcloud项目(一)——创建项目父工程、Eureka

1.File—>New—Maven Project,选择Create a simple project,点击next 2.输入Group Id,Artifact Id,Packaging选择pom,点击Finish 3.父工程创建完成后,修改父pom文件,加入SpringCloud依赖,spring boot maven插件 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://w

002医疗项目-主工程模块yycgproject三层构建(三大框架的整合)

先给出项目结构图: Log4j.properties—>日志配置文件 Db.properties---->连接数据库 配置连接数据库的参数 Mybatis/SqlMapConfig.xml---> mybatis的核心配置文件 Mybatis配置项 Spring/applicationContext.xml  -àspring的核心配置文件 配置公用的内容:数据源.事务管理 Spring/applicationContext- base-dao.xml   à配置dao 配置SqlSes