完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
前后台系统和RTOS系统
前后台系统 早期嵌入式开发没有嵌入式操作系统的概念 ,直接操作裸机,在裸机上写程序,比如用51单片机基本就没有操作系统的概念。通常把程序分为两部分:前台系统和后台系统。 简单的小系统通常是前后台系统,这样的程序包括一个死循环和若干个中断服务程序:应用程序是一个无限循环,循环中调用API函数完成所需的操作,这个大循环就叫做后台系统。中断服务程序用于处理系统的异步事件,也就是前台系统。 前台是中断级,后台是任务级。 RTOS系统 RTOS全称为:Real Time OS,就是实时操作系统,强调的是:实时性。实时操作系统又分为硬实时和软实时。硬实时要求在规定的时间内必须完成操作 ,硬实时系统不允许超时,在软实时里面处理过程超时的后果就没有那么严格。 在实时操作系统中,我们可以把要实现的功能划分为多个任务,每个任务负责实现其中的一部分,每个任务都是一个很简单的程序,通常是一个死循环。 RTOS操作系统:UCOS,FreeRTOS,RTX,RT-Thread,DJYOS等。 RTOS操作系统的核心内容在于:实时内核。 可剥夺型内核 RTOS的内核负责管理所有的任务,内核决定了运行哪个任务,何时停止当前任务切换到其他任务,这个是内核的多任务管理能力。多任务管理给人的感觉就好像芯片有多个CPU,多任务管理实现了CPU资源的最大化利用,多任务管理有助于实现程序的模块化开发,能够实现复杂的实时应用。 UCOS的内核是可剥夺型的,所谓可剥夺内核:顾名思义就是可以剥夺其他任务的CPU使用权,它总是运行就绪任务中的优先级最高的那个任务。 UCOS系统简介 UCOS是Micrium公司出品的RTOS类实时操作系统,UCOS目前有两个版本:UCOSII和UCOSIII。 UCOSIII是一个可裁剪、可剥夺型的多任务内核,而且没有任务数限制。UCOSIII提供了实时操作系统所需的所有功能,包括资源管理、同步、任务通信等。 UCOSIII是用C和汇编来写的,其中绝大部分都是用C语言编写的,只有极少数的与处理器密切相关的部分代码才是用汇编写的,UCOSIII结构简洁,可读性很强!最主要的是非常适合初次接触嵌入式实时操作系统学生、嵌入式系统开发人员和爱好者学习。 UCOSIII移植 向工程中添加相应的文件 在工程目录中新建一个UCOSIII文件夹,然后将我们下载的Micrium官方移植工程中的uC-CPU、uC-LIB和UCOS-III这三个文件复制到工程中(目录:UCOSIII官方STM32F107移植MicriumSoftware)。 同时,还需要在UCOIII文件中再新建两个文件:UCOS_BSP和UCOS_CONFIG。如下图所示: 向UCOS_CONFIG添加文件 复制Micrium官方移植好的工程中的相关文件到UCOS_CONFIG文件夹下,这些文件下图所示,这些文件在Micrium官方的STM32F107移植工程中的路径为:Micrium-》Software-》EvalBoards-》Micrium-》uC-Eval-STM32F107-》uCOS-III。 向UCOS_BSP添加文件 同样复制Micrium官方移植好的工程中的相关文件到UCOS_BSP文件下,需要复制的文件如下图所示,这些文件在Micrium官方移植工程中的路径为:Micrium-》Software-》EvalBoards-》Micrium-》uC-Eval-STM32F107-》BSP。 向工程中添加分组 我们在上面已经准备好了所需的文件,我们还要将这些文件添加到我们的工程中,我们在KEIL工程中新建如下图所示的分组: 工程中分组建立完成以后我们就需要向新建的各个分组中添加文件了,按照如下图所示向各个分组中添加文件: 向各个分组添加完文件以后我们还需要添加相应的头文件路径,按照下图所示添加头文件路径: 修改bsp.c和bsp.h文件 打开bsp.c文件,里面有很多的代码我们只需要其中的很少一部分关于DWT的代码,可以直接使用“例4-1 UCOSIII移植”实验中的bsp.c文件。 修改os_cpu_a.asm文件 可以直接使用“例4-1 UCOSIII移植”实验中的os_cpu_a.asm文件。 修改os_cpu_c.c文件 修改os_cfg_app.h os_cfg_app.h主要是对UCOSIII内部一些系统任务的配置,如任务优先级、任务堆栈、UCOSIII的系统时钟节拍等等。 修改sys.h文件 修改sys.h文件中宏定义SYSTEM_SUPPORT_UCOS,我们将其定义为1,定义系统文件夹支持UCOS。 UCOSIII体系结构 应用程序; 半导体厂商提供的库函数; 板级支持包,底层驱动; UCOSIII源码,与CPU无关; 这部分在移植UCOSIII的时候要根据所使用的CPU架构来编写; 讲与CPU相关功能代码封装起来; UCOSIII官方提供的一系列通用函数的源文件,一部分函数用于替代stdlib库中的函数; 配置文件。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1752 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1611 浏览 1 评论
1052 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
721 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1666 浏览 2 评论
1924浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
711浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
560浏览 3评论
583浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
544浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 12:22 , Processed in 0.787789 second(s), Total 49, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号