FreeRTOS 基础简介
为什么选择FreeRTOS
UCOS资料多,尤其是中文资料。FreeRTOS资料少,而且大多数是英文的。原因如下:
1.FreeRTOS免费!UCOS收费。这是主要原因
2.很多半导体厂商,采用FreeRTOS作为其操作系统
3.FreeRTOS文件数量少
目录结构
# ls -l
total 28
drwx------ 5 pi pi 4096 Sep 16 04:17 FreeRTOS
drwx------ 4 pi pi 4096 Sep 16 04:18 FreeRTOS-Plus
-rwx------ 1 pi pi 141 Jan 16 2015 New - Direct to Task Notifications.url
-rwx------ 1 pi pi 155 Dec 21 2014 New - FreeRTOS+TCP.url
-rwx------ 1 pi pi 144 Sep 17 2013 Quick_Start_Guide.url
-rwx------ 1 pi pi 1468 Sep 17 2013 readme.txt
-rwx------ 1 pi pi 129 Feb 19 2016 Upgrading-to-FreeRTOS-9.url
FreeRTOS-Plus:包含FreeRTOS+组件和演示例程
FreeRTOS:包含FreeRTOS实时内核源文件和演示例程
# ls -l FreeRTOS
total 28
drwx------ 166 pi pi 12288 Sep 16 04:17 Demo
drwx------ 2 pi pi 4096 Sep 16 04:17 License
-rwx------ 1 pi pi 124 Oct 30 2014 links_to_doc_pages_for_the_demo_projects.url
-rwx------ 1 pi pi 912 Sep 17 2013 readme.txt
drwx------ 4 pi pi 4096 Sep 16 04:17 Source
Demo:演示例程
License:许可信息
Source:实时内核源文件
# ls -l FreeRTOS/Source/
total 352
-rwx------ 1 pi pi 15771 May 20 2016 croutine.c
-rwx------ 1 pi pi 26251 May 20 2016 event_groups.c
drwx------ 2 pi pi 4096 Sep 16 04:17 include
-rwx------ 1 pi pi 10993 May 20 2016 list.c
drwx------ 22 pi pi 4096 Sep 16 04:17 portable
-rwx------ 1 pi pi 83729 May 20 2016 queue.c
-rwx------ 1 pi pi 822 Sep 17 2013 readme.txt
-rwx------ 1 pi pi 157816 May 20 2016 tasks.c
-rwx------ 1 pi pi 41115 May 20 2016 timers.c
tasks.c、queue.c、list.c:核心文件
timers.c、event_groups.c、croutine.c:可选文件
include:内核代码头文件
portable:处理器特定代码
# ls FreeRTOS/Source/portable/ -l
total 84
drwx------ 3 pi pi 4096 Sep 16 04:17 BCC
drwx------ 5 pi pi 4096 Sep 16 04:17 CCS
drwx------ 5 pi pi 4096 Sep 16 04:17 CodeWarrior
drwx------ 2 pi pi 4096 Sep 16 04:17 Common
drwx------ 37 pi pi 4096 Sep 16 04:17 GCC
drwx------ 25 pi pi 4096 Sep 16 04:17 IAR
drwx------ 2 pi pi 4096 Sep 16 04:17 Keil
drwx------ 2 pi pi 4096 Sep 16 04:17 MemMang
drwx------ 3 pi pi 4096 Sep 16 04:17 MikroC
drwx------ 7 pi pi 4096 Sep 16 04:17 MPLAB
drwx------ 2 pi pi 4096 Sep 16 04:17 MSVC-MingW
drwx------ 3 pi pi 4096 Sep 16 04:17 oWatcom
drwx------ 3 pi pi 4096 Sep 16 04:17 Paradigm
-rwx------ 1 pi pi 866 Feb 11 2016 readme.txt
drwx------ 7 pi pi 4096 Sep 16 04:17 Renesas
drwx------ 4 pi pi 4096 Sep 16 04:17 Rowley
drwx------ 9 pi pi 4096 Sep 16 04:17 RVDS
drwx------ 3 pi pi 4096 Sep 16 04:17 SDCC
drwx------ 4 pi pi 4096 Sep 16 04:17 Softune
drwx------ 3 pi pi 4096 Sep 16 04:17 Tasking
drwx------ 3 pi pi 4096 Sep 16 04:17 WizC
Keil、RVDS:使用MDK环境编译所需要的文件
MemMang:内存管理,堆栈实现
# ls -l FreeRTOS/Demo/Common/
total 24
drwx------ 5 pi pi 4096 Sep 16 04:04 drivers
drwx------ 9 pi pi 4096 Sep 16 04:05 ethernet
drwx------ 2 pi pi 4096 Sep 16 04:06 Full
drwx------ 2 pi pi 4096 Sep 16 04:06 include
drwx------ 2 pi pi 4096 Sep 16 04:06 Minimal
-rwx------ 1 pi pi 737 Mar 29 2016 ReadMe.txt
Common:演示例程
测试Demo
替换原有main函数,测试LED闪烁
int main( void )
{
volatile unsigned long ul; /* volatile so it is not optimized away. */
prvSetupHardware(); //时钟设置
vParTestInitialise(); //gpio初始化
/* Toggle the LEDs repeatedly. */
for( ;; )
{
/* We don't want to use the RTOS features yet, so just use a very
crude delay mechanism instead. */
for( ul = 0; ul < 0xfffff; ul++ )
{
}
/* Toggle the first four LEDs (on the assumption there are at least
4 fitted. */
vParTestToggleLED( 0 );
vParTestToggleLED( 1 );
vParTestToggleLED( 2 );
vParTestToggleLED( 3 );
}
return 0;
}
RTOS调度器
LED不同频率的闪烁
int main( void )
{
/* Setup the microcontroller hardware for the demo. */
prvSetupHardware();
vStartLEDFlashTasks( mainFLASH_TASK_PRIORITY );
/* All other functions that create tasks are commented out.
vCreatePollQTasks();
vCreateComTestTasks();
Etc.
xTaskCreate( vCheckTask, "check", STACK_SIZE, NULL, TASK_PRIORITY, NULL );
*/
/* Start the RTOS scheduler. */
vTaskStartScheduler();
/* Should never get here! */
return 0;
}
参考:http://www.freertos.org/porting-a-freertos-demo-to-different-hardware.html
FreeRTOS 基础简介的更多相关文章
- 现代3D图形编程学习-基础简介(2) (译)
本书系列 现代3D图形编程学习 基础简介(2) 图形和渲染 接下去的内容对渲染的过程进行粗略介绍.遇到的部分内容不是很明白也没有关系,在接下去的章节中,会被具体阐述. 你在电脑屏幕上看到的任何东西,包 ...
- 现代3D图形编程学习-基础简介(1) (译)
本书系列 现代3D图形编程学习 基础简介 并不像本书的其他章节,这章内容没有相关的源代码或是项目.本章,我们将讨论向量,图形渲染理论,以及OpenGL. 向量 在阅读这本书的时候,你需要熟悉代数和几何 ...
- 1.CSS基础简介
一.基础简介 1.简介 CSS(Cascading Style Sheet)可译为“层叠样式表”或“级联样式表”,它定义如何显示 HTML 元素,用于控制Web页面的外观.通过使用CSS实现页面的内容 ...
- FreeRTOS基础篇教程目录汇总
以下教程(大部分章节)(尤其理论介绍部分)转载自安富莱电子,官网链接: http://forum.armfly.com/forum.php 然后根据安富莱的教程自己做了分析和测试,希望大家共同进步. ...
- 1.bootstrap基础简介
一·基础简介 1.Bootstrap,来自 Twitter,是一个用于快速开发 Web 应用程序和网站的前端框架,是目前最受欢迎的前端框架. Bootstrap 是基于 HTML.CSS.JavaSc ...
- Android MediaPlayer 基础简介
本文链接: Android MediaPlayer 基础简介 简单介绍MediaPlayer的基本概念,状态,常用的方法与监听器. 什么是MediaPlayer MediaPlayer类可以用来播放音 ...
- 【Python】函数基础简介
一.函数 1. 简介 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率. 2. 组成 函数代码块以 def 关键词开头,后接函数名和圆括号( ...
- OC基础--简介
OC简介: 1986年,BradCox(布莱德·考克斯)在第一个纯面向对象语言Smalltalk基础上写成了Objective-C语言. 1985年,被赶出苹果公司的Steve Jobs成立了NeXT ...
- FreeRTOS基础以及UIP之协程--C语言剑走偏锋
在FreeRTOS中和UIP中,都使用到了一种C语言实现的多任务计数,专业的定义叫做协程(coroutine),顾名思义,这是一种协作的例程, 跟具有操作系统概念的线程不一样,协程是在用户空间利用程序 ...
随机推荐
- 如何发布H5界面可以让公网访问
本文链接:https://blog.csdn.net/u013310119/article/details/81233560问题背景:手机APP里的H5界面要发布到公网,提供给第三方APP调用. 解决 ...
- maven项目新检出后不编译爬坑记 及 mvn clean package报错 WagonTransporterFactory: java.util.NoSuchElementException 异常【我】
从SVN新检出一个maven项目,配置好后,发现项目无法编译(只有一个test包中的代码显示编译报错,其他所有包中的代码都不编译,也不报错), 先注释掉报错的test包中的所有内容, 用Eclipse ...
- vs webapi 取消controller
1.添加引用 using Panda.DynamicWebApi; 2.starup.cs public void ConfigureServices(IServiceCollection servi ...
- C# WinForm程序中使用Unity3D控件 (转)
https://www.cnblogs.com/cnxkey/articles/5394378.html 最近在自学Unity3D,打算使用这个时髦.流行.强大的游戏引擎开发一个三维业务展示系统,不过 ...
- LeetCode_342. Power of Four
342. Power of Four Easy Given an integer (signed 32 bits), write a function to check whether it is a ...
- fiddler构造表单上传文件的请求
Fiddler使用技巧:http://www.doc88.com/p-3307506524682.html Fiddler构造post请求,在请求header头里加上下面语句,提交的body才会被解析 ...
- 【Leetcode_easy】989. Add to Array-Form of Integer
problem 989. Add to Array-Form of Integer 参考 1. Leetcode_easy_989. Add to Array-Form of Integer; 完
- github账户初始化设置
1.首先在github官网https://github.com/上注册自己的账户: 2.去git官网https://git-scm.com/downloads,根据电脑系统下载合适的版本并安装. 3. ...
- linux-rsync-同步本地文件夹
linux-rsync-同步本地文件夹 1.安装rsync: yum list rsync yum install rsync 3.使用rsync命令进行同步 rsync -av 源目录 目标目录
- ACL 实验
一.环境准备 1. 软件:GNS3 2. 路由:c7200 二.实验操作 实验要求: 1. 掌握标准 ACL.扩展 ACL 的配置方法. 2. 掌握命名 ACL 的配置方法. 3. 掌握访问控制列表配 ...