自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (5)
  • 收藏
  • 关注

原创 移植操作系统的对微处理器的要求

1.什么是移植?就是使选用的实时内核能在某一个特定的微处理器上运行。为了方便移植,大部分的实时操作系统代码都是用C语言编写的。但仍然需要用C和汇编语言编写一些与微处理器相关的代码,因为有一些操作需要汇编语言才能实现。2.操作系统对微处理器的要求?首先,要移植操作系统,就要明白操作系统对微处理器的要求。由于本身操作系统在设计上就充分考虑到了可移植性的问题,所以移植相对来说还是比较容易的。

2017-06-27 15:57:10 435

转载 SPI、I2C、UART三种串行总线的原理、区别及应用

SPI、I2C、串口、我相信如果你是从事的是嵌入式开发,一定会用到这三种通信协议,串口的话因为和波特率有关,所以一般的CPU或者MCU只会配有两个或者三个串口,而数据的传输,的话SPI和I2C用得会比较多,下面找到了一篇博客。转过来、1、UART就是两线,一根发送一根接收,可以全双工通信,线数也比较少。数据是异步传输的,对双方的时序要求比较严格,通信速度也不

2017-06-26 16:12:17 767

原创 六 上下文切换

一   定义当UCOS-III转向执行另一项新任务的时候,他保存了当前任务的CPU寄存器到堆栈,并从新任务的堆栈CPU寄存器载入CPU,这个过程叫做上下文切换上下文切换需要一些开支,CPU的寄存器越多,开支越大。上下文切换的时间基本取决于有多少个CPU寄存器需要被存储和载入。上下文切换的代码是移植UCOS -II 时编写的,该部分代码要适用于处理器,这些代码被放在C和汇编文件中:OS_

2017-06-26 08:57:10 1100 1

原创 五 .调度

调度的定义:调度器,决定了任务的运行顺序。uC/OS-III 是一个可抢占的,基于优先级的内核。根据其重要性每个任务都被分配了一个优先级。uC/OS-III 支持多个任务拥有相同的优先级。“可抢占的”意味当事件发生时,如果事件让高优先级任务被就绪,uC/OS-III 马上将CPU 的控制权交给高优先级任务。因此,当一个任务提交信号量、发送消息给一个高优先级的任务(若该任务被就绪了),当前的

2017-06-21 15:39:19 502

原创 四. 就绪列表

准备运行的任务被放置于就绪列表中。就绪列表包括2 个部分:位映像组包含了优先级信息,一个表包含了所有指向就绪任务的指针。一  优先级显示了优先级的位映像组。它的宽度取决于CPU_DATA 的数据类型(见CPU.H),它可以是8 位、16 位、32 位。根据处理器相应地设定。uC/OS-III 支持多达OS_CFG_PRIO_MAX 种不同的优先级(见OS_CFG.H)。在uC/OS-I

2017-06-20 15:32:51 869

原创 任务管理机制二

本文是为了续前面的任务管理机制的。六.内部任务在uC/OS-III 初始化的时候,它会创建至少2 个内部的任务(OS_IdleTask()和OS_TickTask()),3 个可选择的任务(OS_StatTask(),OS_TmrTaks(),OS_IntQTask())。这些可选择的任务在编译时由OS_CFG.H 中的配置决定。1空闲任务 OS_IdleTask()OS_

2017-06-19 09:03:00 716

原创 3.任务管理机制

这是我按照自己每天学习的进程来写的,期间遇到很多问题,都是慢慢的去解决,所以进度会相对比较慢一点

2017-06-15 14:14:37 5781

转载 宏定义有无参数宏定义和带参数宏定义两种

宏定义有无参数宏定义和带参数宏定义两种。   无参数的宏定义的一般形式为            # define 标识符 字符序列其中# define之后的标识符称为宏定义名(简称宏名),要求宏名与字符序列之间用空格符分隔。这种宏定义要求编译预处理程序将源程序中随后所有的定名的出现(注释与字符串常量中的除外)均用字符序列替换之。前面经常使用的定义符号常量是宏定义的最简单应用。如有:

2017-06-15 10:40:41 27857 2

转载 C语言三种预处理功能

伪指令(或预处理指令)定义:预处理指令是以#号开头的代码行。#号必须是该行除了任何空白字符外的第一个字符。#后是指令关键字,在关键字和#号之间允许存在任意个数的空白字符。整行语句构成了一条预处理指令,该指令将在编译器进行编译之前对源代码做某些转换。下面是部分预处理指令:指令 用途# 空指令,无任何效果#include 包含一个源代码文件#def

2017-06-15 10:11:17 686

原创 2.临界段代码学习

临界段代码的定义临界段代码,也称作临界域,是一段不可分割的代码。uC/OS-III中包含了很多临界段代码。如果临界段可能被中断,那么就需要关中断以保护临界段。如果临界段可能被任务级代码打断,那么需要锁调度器保护临界段。uC/OS-III 中的临界段的保护方法决定于ISR 中对消息的处理方式。详见 “ 中断管理” 。如果OS_CFG_ISR_POST_DEFERRED_EN 被设为0(见OS_C

2017-06-15 09:11:53 785

原创 在C语言中,static静态变量,extern外部变量的区别

1:什么是staticstatic,叫做静态变量。一般用于全局变量里面,首先,我们来考虑一下为什么要用到static,我们可以想一下,一个项目其实是由很多位工程师一起来完成的,他们之间是互相独立完成自己所要完成的一个模块的,这就有可能出现定义相同的全局变量或者全局函数名(记住,我这边所说的全局变量指的是针对各自工程师的模块中),这样一旦整合到一起就会出现编译报错,因为会有相同的变量或者函数。

2017-06-14 14:19:57 4428

原创 1.什么是uC/OS III,以及uC/OS III的结构

这是我自己每天学习uC/OS III的一些笔记,仅供参考。

2017-06-14 10:46:30 1164

周慈航-基于嵌入式实时操作系统的程序设计技术.pdf

学习UCOS非常好用/有用的书

2017-06-27

uCOS-III V3.03.01 uCOS-II V2.92.07在STM32F4移植

uCOS-III V3.03.01 uCOS-II V2.92.07在STM32F4移植

2017-06-15

uCOS-III V3.03.01 uCOS-II V2.92.07在STM32F2移植

uCOS-III V3.03.01 uCOS-II V2.92.07在STM32F2移植

2017-06-15

uCOS-III V3.03.01 uCOS-II V2.92.07在STM32F1移植.

uC/OSIII和II最新版本,给有需要的人

2017-06-15

uC/OSIII和II移植到STM32F0芯片全集源码

uC/OS移植到STM32F0芯片全集源码

2017-06-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除