<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[swee的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/swee111</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; swee111]]></copyright><item><title><![CDATA[移植操作系统的对微处理器的要求]]></title><link>https://blog.youkuaiyun.com/swee111/article/details/73800631</link><guid>https://blog.youkuaiyun.com/swee111/article/details/73800631</guid><author>swee111</author><pubDate>Tue, 27 Jun 2017 15:57:10 +0800</pubDate><description><![CDATA[1.什么是移植？
就是使选用的实时内核能在某一个特定的微处理器上运行。为了方便移植，大部分的实时操作系统代码都是用C语言编写的。但仍然需要用C和汇编语言编写一些与微处理器相关的代码，因为有一些操作需要汇编语言才能实现。
2.操作系统对微处理器的要求？
首先，要移植操作系统，就要明白操作系统对微处理器的要求。由于本身操作系统在设计上就充分考虑到了可移植性的问题，所以移植相对来说还是比较容易的。]]></description><category></category></item><item><title><![CDATA[SPI、I2C、UART三种串行总线的原理、区别及应用]]></title><link>https://blog.youkuaiyun.com/swee111/article/details/73741107</link><guid>https://blog.youkuaiyun.com/swee111/article/details/73741107</guid><author>swee111</author><pubDate>Mon, 26 Jun 2017 16:12:17 +0800</pubDate><description><![CDATA[SPI、I2C、串口、我相信如果你是从事的是嵌入式开发，一定会用到这三种通信协议，串口的话因为和波特率有关，所以一般的CPU或者MCU只会配有两个或者三个串口，而数据的传输，的话SPI和I2C用得会比较多，下面找到了一篇博客。转过来、









1、UART就是两线，一根发送一根接收，可以全双工通信，线数也比较少。数据是异步传输的，对双方的时序要求比较严格，通信速度也不]]></description><category></category></item><item><title><![CDATA[六  上下文切换]]></title><link>https://blog.youkuaiyun.com/swee111/article/details/73732152</link><guid>https://blog.youkuaiyun.com/swee111/article/details/73732152</guid><author>swee111</author><pubDate>Mon, 26 Jun 2017 08:57:10 +0800</pubDate><description><![CDATA[一   定义
当UCOS-III转向执行另一项新任务的时候，他保存了当前任务的CPU寄存器到堆栈，并从新任务的堆栈CPU寄存器载入CPU，这个过程叫做上下文切换
上下文切换需要一些开支，CPU的寄存器越多，开支越大。上下文切换的时间基本取决于有多少个CPU寄存器需要被存储和载入。
上下文切换的代码是移植UCOS -II 时编写的，该部分代码要适用于处理器，这些代码被放在C和汇编文件中：OS_]]></description><category></category></item><item><title><![CDATA[五 .调度]]></title><link>https://blog.youkuaiyun.com/swee111/article/details/73549793</link><guid>https://blog.youkuaiyun.com/swee111/article/details/73549793</guid><author>swee111</author><pubDate>Wed, 21 Jun 2017 15:39:19 +0800</pubDate><description><![CDATA[调度的定义：
调度器，决定了任务的运行顺序。uC/OS-III 是一个可抢占的，基于优先级的内核。根据其重要性每个任务都被分配了一个优先级。uC/OS-III 支持多个任务拥有相同的优先级。
“可抢占的”意味当事件发生时，如果事件让高优先级任务被就绪，uC/OS-III 马上将CPU 的控制权交给高优先级任务。因此，当一个任务提交信号量、发送消息给一个高优先级的任务（若该任务被就绪了），当前的]]></description><category></category></item><item><title><![CDATA[四. 就绪列表]]></title><link>https://blog.youkuaiyun.com/swee111/article/details/73498746</link><guid>https://blog.youkuaiyun.com/swee111/article/details/73498746</guid><author>swee111</author><pubDate>Tue, 20 Jun 2017 15:32:51 +0800</pubDate><description><![CDATA[准备运行的任务被放置于就绪列表中。就绪列表包括2 个部分：位映像组包含了优先级信息，一个表包含了所有指向就绪任务的指针。
一  优先级
显示了优先级的位映像组。它的宽度取决于CPU_DATA 的数据类型（见CPU.H），它可以是8 位、16 位、32 位。根据处理器相应地设定。
uC/OS-III 支持多达OS_CFG_PRIO_MAX 种不同的优先级（见OS_CFG.H）。在uC/OS-I]]></description><category></category></item><item><title><![CDATA[任务管理机制二]]></title><link>https://blog.youkuaiyun.com/swee111/article/details/73456756</link><guid>https://blog.youkuaiyun.com/swee111/article/details/73456756</guid><author>swee111</author><pubDate>Mon, 19 Jun 2017 09:03:00 +0800</pubDate><description><![CDATA[本文是为了续前面的任务管理机制的。

六.内部任务
在uC/OS-III 初始化的时候，它会创建至少2 个内部的任务(OS_IdleTask()和OS_TickTask())，3 个可选择的任务（OS_StatTask()，OS_TmrTaks()，OS_IntQTask()）。这些可选择的任务在编译时由OS_CFG.H 中的配置决定。

1空闲任务 OS_IdleTask()
OS_]]></description><category></category></item><item><title><![CDATA[3.任务管理机制]]></title><link>https://blog.youkuaiyun.com/swee111/article/details/73285997</link><guid>https://blog.youkuaiyun.com/swee111/article/details/73285997</guid><author>swee111</author><pubDate>Thu, 15 Jun 2017 14:14:37 +0800</pubDate><description><![CDATA[这是我按照自己每天学习的进程来写的，期间遇到很多问题，都是慢慢的去解决，所以进度会相对比较慢一点]]></description><category></category></item><item><title><![CDATA[宏定义有无参数宏定义和带参数宏定义两种]]></title><link>https://blog.youkuaiyun.com/swee111/article/details/73275977</link><guid>https://blog.youkuaiyun.com/swee111/article/details/73275977</guid><author>swee111</author><pubDate>Thu, 15 Jun 2017 10:40:41 +0800</pubDate><description><![CDATA[宏定义有无参数宏定义和带参数宏定义两种。
   无参数的宏定义的一般形式为
            # define 标识符 字符序列
其中# define之后的标识符称为宏定义名(简称宏名)，要求宏名与字符序列之间用空格符分隔。这种宏定义要求编译预处理程序将源程序中随后所有的定名的出现(注释与字符串常量中的除外)均用字符序列替换之。前面经常使用的定义符号常量是宏定义的最简单应用。如有：
]]></description><category></category></item><item><title><![CDATA[C语言三种预处理功能]]></title><link>https://blog.youkuaiyun.com/swee111/article/details/73275135</link><guid>https://blog.youkuaiyun.com/swee111/article/details/73275135</guid><author>swee111</author><pubDate>Thu, 15 Jun 2017 10:11:17 +0800</pubDate><description><![CDATA[伪指令（或预处理指令）定义：

预处理指令是以#号开头的代码行。#号必须是该行除了任何空白字符外的第一个字符。#后是指令关键字，在关键字和#号之间允许存在任意个数的空白字符。整行语句构成了一条预处理指令，该指令将在编译器进行编译之前对源代码做某些转换。下面是部分预处理指令：
指令          用途
#         空指令，无任何效果
#include  包含一个源代码文件
#def]]></description><category></category></item><item><title><![CDATA[2.临界段代码学习]]></title><link>https://blog.youkuaiyun.com/swee111/article/details/73274468</link><guid>https://blog.youkuaiyun.com/swee111/article/details/73274468</guid><author>swee111</author><pubDate>Thu, 15 Jun 2017 09:11:53 +0800</pubDate><description><![CDATA[临界段代码的定义
临界段代码，也称作临界域，是一段不可分割的代码。uC/OS-III中包含了很多临界段代码。如果临界段可能被中断，那么就需要关中断以保护临界段。如果临界段可能被任务级代码打断，那么需要锁调度器保护临界段。uC/OS-III 中的临界段的保护方法决定于ISR 中对消息的处理方式。详见 “ 中断管理” 。如果OS_CFG_ISR_POST_DEFERRED_EN 被设为0（见OS_C]]></description><category></category></item><item><title><![CDATA[在C语言中，static静态变量，extern外部变量的区别]]></title><link>https://blog.youkuaiyun.com/swee111/article/details/73223564</link><guid>https://blog.youkuaiyun.com/swee111/article/details/73223564</guid><author>swee111</author><pubDate>Wed, 14 Jun 2017 14:19:57 +0800</pubDate><description><![CDATA[1：什么是static
static，叫做静态变量。一般用于全局变量里面，首先，我们来考虑一下为什么要用到static，我们可以想一下，一个项目其实是由很多位工程师一起来完成的，他们之间是互相独立完成自己所要完成的一个模块的，这就有可能出现定义相同的全局变量或者全局函数名（记住，我这边所说的全局变量指的是针对各自工程师的模块中），这样一旦整合到一起就会出现编译报错，因为会有相同的变量或者函数。]]></description><category></category></item><item><title><![CDATA[1.什么是uC/OS III，以及uC/OS III的结构]]></title><link>https://blog.youkuaiyun.com/swee111/article/details/73201386</link><guid>https://blog.youkuaiyun.com/swee111/article/details/73201386</guid><author>swee111</author><pubDate>Wed, 14 Jun 2017 10:46:30 +0800</pubDate><description><![CDATA[这是我自己每天学习uC/OS III的一些笔记，仅供参考。]]></description><category></category></item></channel></rss>