IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 01.新建FreeRTOS工程 及 裸机系统和多任务系统介绍 -> 正文阅读

[嵌入式]01.新建FreeRTOS工程 及 裸机系统和多任务系统介绍

?最近在学习FreeRTOS,将学习过程记录为本系列文章,如果有错误,欢迎指正,大家一起进步🌈

目录

1.新建FreeRTOS工程

1.1.新建本地文件夹

1.2.使用Keil新建工程

1.3.在Keil创建文件分组

1.4.添加文件

1.5.编写main函数

1.6.配置仿真时钟

1.7.添加头文件路径

2.裸机系统与多任务系统

2.1.裸机系统

?2.2.多任务系统

??2.3.裸机系统与多任务系统的对比


1.新建FreeRTOS工程

1.1.新建本地文件夹

????????在电脑上新建一个文件夹,文件夹名任意选取,我这里取为“TEST_FreeRTOS工程”,然后在该文件夹下新建文件夹和文件,具体需要创建的文件夹和文件如下:

图1-1-1 工程目录图
表格1-1 工程文件夹根目录下的文件夹作用
一级文件夹二级文件夹文件夹作用
doc????????用于存放对整个工程的说明文档,如readme.txt。通常情况下,文件里会说明整个工程实现的功能、如何编译、如何使用等做简要概述
Project用于存放新建的工程文件
freertosinclude所有需要用到的头文件

portable/RVDS/ARM_CM3

存放于处理器相关的接口文件,也叫移植文件。

portable/RVDS/ARM_CM4

portable/RVDS/ARM_CM7

USer存放main.c和其他的用户编写程序。main.c第一次使用需要用户自行创建

1.2.使用Keil新建工程

? ? ? ? 打开Keil5,只要是版本5都可以。新建工程,工程文件放在 Project 下面,名称命名为Test_FreeRTOS,名称可以任意选取,但必须是英文。

? ? ? ?1)?点击 Project ——>New uVision Project

图1-2-1 Keil标题栏

? ? ? 2)选择ARM系列处理器,这里选择ARMCM3,选择其他的例如 ARMCM4ARMCM7 都可,然后点击 OK。

图1-2-2 ARM处理器选择界面

? ? ? ? ?3)在Manage Run-Time Environment选项栏,选择?CMSIS?下的?CORE?和?Device?中的Startup,然后点击 OK。

图1-2-3 Manage Run-Time Environment界面

?

1.3.在Keil创建文件分组

图1-3-1 新建Keil分组

1.4.添加文件

? ? ? ? 到目前为止,项目工程文件框架已经搭好,如果编译工程文件会报错,提示没有main函数,在刚开始创建的本地文件夹中创建 main.c 文件夹。

图1-4-1 添加文件工具栏

?

?????????找到main.c所在文件,双击添加或者 选中文件点击 Add

1-4-2 添加main.c界面

? ? ? ? 添加 readme.txt 文件和 main.c 同理,找不到 readme.txt 文件,文件类型选择 All file 即可。在 main.c 中添加主程序,在添加完主程序函数后,需要空一行,不然会有警告。

1-4-3 添加文件后工程界面

1.5.编写main函数




int main(void)
{
	
	for(;;)
	{
		/*测试主程序*/
	}
}

?????????此时编译工程不会有错误和警告。

1.6.配置仿真时钟

? ? ? ? 在?system_ARMCM3.c 文件中发现系统时钟是5倍的XTAL。XTLA为5MHz,则系统时钟为25MHz

图1-6-1 system_ARMCM3.c程序界面

? ? ? ? 修改时钟为25MHz?

图1-6-2 修改时钟界面

? ? ? ?修改为仿真,选择软件仿真。

图1-6-3 修改为仿真模式

1.7.添加头文件路径

? ? ? ? 选择一些头文件,用户编写的程序文件等。

? ? ? ? 此时,整个框架工程文件已经创建完成。

2.裸机系统与多任务系统

2.1.裸机系统

? ? ? ?裸机系统通常分成轮询系统和前后台系统。

? ? ? ? 轮询系统即是在裸机编程的时候,先初始化好相关的硬件,然后让主程序在一个死循环里不断循环,顺序地做各种事情。

图2-1-1 轮询系统流程图

? ? ? ? 相比轮询系统,前后台系统在轮询系统的基础上加入了中断。

? ? ? ? 后台:应用程序通常是一个无限的循环,在循环中,通过调用相应的处理函数,完成相应的操作,这部分可以看作后台行为。

? ? ? ? 前台:中断服务程序接收异步终端,来通知后台,后台收到中断请求后进行处理。无论程序执行到哪里,中断触发则先执行中断内容,中断中还可嵌套。

图2-1-2 前后台系统流程图

?2.2.多任务系统

? ? ? ? 在多任务系统中,每个任务都是独立的,任务和中断一样,也具有优先级,优先级高的任务被首先执行。

图2-2-1 多任务系统流程图

?

??2.3.裸机系统与多任务系统的对比

????????

表2-1 裸机系统与多任务系统对比
模型事件响应事件处理特点
轮询系统主程序主程序轮询响应事件,轮询处理事件
前后台系统中断主程序实时响应事件,轮询处理事件
多任务系统中断任务实时响应事件,实时处理事件

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-05-26 15:21:58  更:2022-05-26 15:22:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 0:42:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码