<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wrw112358的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wrw112358</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wrw112358]]></copyright><item><title><![CDATA[STM32菜鸟成长记录---窗口看门狗]]></title><link>https://blog.youkuaiyun.com/wrw112358/article/details/45512389</link><guid>https://blog.youkuaiyun.com/wrw112358/article/details/45512389</guid><author>wrw112358</author><pubDate>Wed, 06 May 2015 00:40:19 +0800</pubDate><description><![CDATA[stm32有两个看门狗，独立看门狗和窗口看门狗，其实两者的功能是类似的，只是喂狗的限制时间不同。

 

独立看门狗是限制喂狗时间在0-x内，x由你的相关寄存器决定。喂狗的时间不能过晚。

窗口看门狗，所以称之为窗口就是因为其喂狗时间是一个有上下限的范围内，你可以通过设定相关寄存器，设定其上限时间和下限时间。喂狗的时间不能过早也不能过晚。

图1

 

窗口看门狗的
]]></description><category></category></item><item><title><![CDATA[SD卡中FAT32文件格式快速入门（图文详细介绍）]]></title><link>https://blog.youkuaiyun.com/wrw112358/article/details/44962233</link><guid>https://blog.youkuaiyun.com/wrw112358/article/details/44962233</guid><author>wrw112358</author><pubDate>Thu, 09 Apr 2015 16:49:51 +0800</pubDate><description><![CDATA[说明：

MBR ：Master Boot Record ( 主引导记录) 

DBR ：DOS Boot Record ( 引导扇区) 

FAT ：File Allocation Table ( 文件分配表) 

硬件：本文SD卡为Kingston 4GB，FAT32格式，簇大小4KB，每扇区512字节。


第一章 硬盘结构与SD卡结构
1.1 硬盘介绍
1.1硬盘]]></description><category></category></item><item><title><![CDATA[android的m、mm、mmm编译命令的使用]]></title><link>https://blog.youkuaiyun.com/wrw112358/article/details/42462215</link><guid>https://blog.youkuaiyun.com/wrw112358/article/details/42462215</guid><author>wrw112358</author><pubDate>Tue, 06 Jan 2015 17:36:19 +0800</pubDate><description><![CDATA[android的m、mm、mmm编译命令的使用




android源码目录下的build/envsetup.sh文件，描述编译的命令
- m:       Makes from the top of the tree. 
- mm:      Builds all of the modules in the current directory. 
- mmm:     Buil]]></description><category></category></item><item><title><![CDATA[init.rc 状态服务器相关语法分析]]></title><link>https://blog.youkuaiyun.com/wrw112358/article/details/42462197</link><guid>https://blog.youkuaiyun.com/wrw112358/article/details/42462197</guid><author>wrw112358</author><pubDate>Tue, 06 Jan 2015 17:35:31 +0800</pubDate><description><![CDATA[状态服务器相关：
在init.c 的main函数中启动状态服务器。
property_set_fd = start_property_service();
状态读取函数：
Property_service.c (system\core\init)
const char* property_get(const char *name)
Properties.c (system\core\l]]></description><category></category></item><item><title><![CDATA[Android 的启动流程]]></title><link>https://blog.youkuaiyun.com/wrw112358/article/details/42462169</link><guid>https://blog.youkuaiyun.com/wrw112358/article/details/42462169</guid><author>wrw112358</author><pubDate>Tue, 06 Jan 2015 17:33:42 +0800</pubDate><description><![CDATA[Android 的启动流程

 Android 根文件系统启动过程。

在Android系统启动时，内核引导参数上一般都会设置“init=/init”, 这样的话，如果内核成功挂载了这个文件系统之后，首先运行的就是这个根目录下的init程序。
init程序源码在Android官方源码的system/core/init中，main在init.c里。我们的分析就从main开始。

ini]]></description><category></category></item><item><title><![CDATA[P沟道mos管作为开关的条件（GS >GS（TH））]]></title><link>https://blog.youkuaiyun.com/wrw112358/article/details/42462141</link><guid>https://blog.youkuaiyun.com/wrw112358/article/details/42462141</guid><author>wrw112358</author><pubDate>Tue, 06 Jan 2015 17:32:57 +0800</pubDate><description><![CDATA[P沟道mos管作为开关，栅源的阀值为-0.4V，当栅源的电压差为-0.4V就会使DS导通，如果S为2.8V，G为1.8V，那么GS=-1V，mos管导通，D为2.8V

如果S为2.8V，G为2.8V，VGSw

那么mos管不导通，D为0V，

所以，如果2.8V连接到S，要mos管导通为系统供电，系统连接到D，利用G控制。

那么和G相连的GPIO高电平要2.8-0.4=2.4]]></description><category></category></item><item><title><![CDATA[增强型N沟道场效应管(MOSFET）的电池反接保护电路]]></title><link>https://blog.youkuaiyun.com/wrw112358/article/details/42462105</link><guid>https://blog.youkuaiyun.com/wrw112358/article/details/42462105</guid><author>wrw112358</author><pubDate>Tue, 06 Jan 2015 17:30:07 +0800</pubDate><description><![CDATA[功率场效应管(MOSFET)典型应用电路  






　　
1．电池反接保护电路
　　 电池反接保护电路如图9所示。一般防止电池接反损坏电路采用串接二极管的方法，在电池接反时，PN结反接无电压降，但在正常工 作时有0.6～0.7V的管压降。采用导通电阻低的增强型N沟道场效应管(MOSFET)具有极小的管压降(RDS(ON)×ID)，如Si9410DY的RDS(ON）约为0.0]]></description><category></category></item><item><title><![CDATA[防反接保护电路]]></title><link>https://blog.youkuaiyun.com/wrw112358/article/details/42462029</link><guid>https://blog.youkuaiyun.com/wrw112358/article/details/42462029</guid><author>wrw112358</author><pubDate>Tue, 06 Jan 2015 17:27:57 +0800</pubDate><description><![CDATA[防反接保护电路

1，通常情况下直流电源输入防反接保护电路是利用二极管的单向导电性来实现防反接保护。如下图1示：

这种接法简单可靠，但当输入大电流的情况下功耗影响是非常大的。以输入电流额定值达到2A,如选用Onsemi的快速恢复二极管 
 MUR3020PT，额定管压降为0.7V，那么功耗至少也要达到：Pd＝2A×0.7V＝1.4W，这样效率低，发热量大，要加散热器。



2]]></description><category></category></item><item><title><![CDATA[ucos II 创建第一个任务之二]]></title><link>https://blog.youkuaiyun.com/wrw112358/article/details/41720527</link><guid>https://blog.youkuaiyun.com/wrw112358/article/details/41720527</guid><author>wrw112358</author><pubDate>Thu, 04 Dec 2014 10:24:05 +0800</pubDate><description><![CDATA[Ucos II 创建第一个任务之二

下面具体讲解下任务创建的过程

下图就是创建任务函数的实现程序。





INT8U OSTaskCreate (void (*task)(void *pd), void *pdata, OS_STK *ptos, INT8U prio)





{





    void   *psp;




]]></description><category></category></item><item><title><![CDATA[ucos II 创建第一个任务之一]]></title><link>https://blog.youkuaiyun.com/wrw112358/article/details/41720183</link><guid>https://blog.youkuaiyun.com/wrw112358/article/details/41720183</guid><author>wrw112358</author><pubDate>Thu, 04 Dec 2014 10:06:49 +0800</pubDate><description><![CDATA[Ucos II创建第一个任务

  我们已经从远处欣赏过ucos II 的身材，现在可以近距离地欣赏Ucos II性感的局部了。

  任务是什么？

有一句话：CPU不同的时刻段总是在执行着优先级最高的任务。所以CPU总是在不同的任务间切换。任务好比linux中的进程。

有c写过单片机程序的人是知道函数的.。

在ucos II 世界里，任务就是一个大箩筐，框着一个或者好多]]></description><category></category></item><item><title><![CDATA[ucos II 内核学习之七：内存管理]]></title><link>https://blog.youkuaiyun.com/wrw112358/article/details/41719919</link><guid>https://blog.youkuaiyun.com/wrw112358/article/details/41719919</guid><author>wrw112358</author><pubDate>Thu, 04 Dec 2014 09:50:00 +0800</pubDate><description><![CDATA[Ucos II 内存管理
     在mcu21的项目里，暂时还没用到内存管理。不过还是有必要学习一下的。
    为了消除内存碎片，ucos II 把连续的大块内存按分区来管理。每个分区中包含有整数个大小相同的内存块。

    类似每个任务对应一个任务控制块，每个事件对应一个事件控制块，ucos II里每个内存块也是对应一个内存控制块。内存控制块是一个数据结构，定义如下：


]]></description><category></category></item><item><title><![CDATA[ucos II 内核学习之六：ucos II初始化及启动]]></title><link>https://blog.youkuaiyun.com/wrw112358/article/details/41719791</link><guid>https://blog.youkuaiyun.com/wrw112358/article/details/41719791</guid><author>wrw112358</author><pubDate>Thu, 04 Dec 2014 09:40:59 +0800</pubDate><description><![CDATA[ucos II内核学习之三：ucos II初始化及启动

 以下是我项目中主函数的程序

现在解释下程序编写的依据和实现过程。

ucos II 里，在创建一个任务（或者调用其它系统服务之前），是需要先初始化系统的，初始化ucos II需要调用函数OSInit()。调用函数OSInit()的作用是什么？主要实现以下几个功能。

1.     建立空闲任务及统计任务。

2.  ]]></description><category></category></item><item><title><![CDATA[ucos II 内核学习之五：时钟节拍]]></title><link>https://blog.youkuaiyun.com/wrw112358/article/details/41719567</link><guid>https://blog.youkuaiyun.com/wrw112358/article/details/41719567</guid><author>wrw112358</author><pubDate>Thu, 04 Dec 2014 09:20:44 +0800</pubDate><description><![CDATA[ucos II 内核学习之二 ：时钟节拍

ucos II 里，时钟节拍就好比是人的心脏一样重要，。它对于CPU能顺利在各任务间切换有着至关重要的作用。

Ucos II 需要用户提供时钟源，在muc21项目了，我使用了定时器0作为时钟源。使用时钟源有一个特别需要注意的地方：用户必须在多任务系统启动以后再开启时钟节拍器，也就是在调用OSStart()之后。

Ucos II中的时钟节拍]]></description><category></category></item><item><title><![CDATA[ucos II 内核学习之四：任务延时函数]]></title><link>https://blog.youkuaiyun.com/wrw112358/article/details/41719407</link><guid>https://blog.youkuaiyun.com/wrw112358/article/details/41719407</guid><author>wrw112358</author><pubDate>Thu, 04 Dec 2014 09:00:08 +0800</pubDate><description><![CDATA[Ucos II  任务延时函数

   编写过单片机程序的都知道，延时函数是经常被用到的。

   在ucos II 里，系统也提供了这样的延时函数。一个是大众版的OSTimeDly()，一个是精致版的OSTimeDlyHMSM()。 萝卜青菜，各有所爱，随你怎么选。

   这两者的区别是，OSTimeDly()的延时时间是以节拍数来衡量的，OSTimeDlyHMSM()的延时时间则]]></description><category></category></item><item><title><![CDATA[ucos II 内核学习之三：任务调度]]></title><link>https://blog.youkuaiyun.com/wrw112358/article/details/41700279</link><guid>https://blog.youkuaiyun.com/wrw112358/article/details/41700279</guid><author>wrw112358</author><pubDate>Wed, 03 Dec 2014 17:52:37 +0800</pubDate><description><![CDATA[ucos II 内核学习之一 ：任务调度

  学校的教学方式多是先让你学原理，再应用它。Muc21则不喜欢这种方式，依然记得在学校枯燥无味地学一大堆理论，更郁闷的是不知道是应用在什么地方。

  Mcu21喜欢先学会用它了，然后再去了解它的原理。对ucos II也一样，当我用过之后，再去看它的内核，或许理解起来会更容易。

  实现任务切换，需要调用函数OSSched()。

 ]]></description><category></category></item><item><title><![CDATA[ucos II 内核学习之二：任务控制块]]></title><link>https://blog.youkuaiyun.com/wrw112358/article/details/41697725</link><guid>https://blog.youkuaiyun.com/wrw112358/article/details/41697725</guid><author>wrw112358</author><pubDate>Wed, 03 Dec 2014 15:07:01 +0800</pubDate><description><![CDATA[前面的学习已经了解过任务控制块。知道任务在创建的时候，任务控制块会被初始化。任务控制块是一个数据结构，当任务的CPU使用权被剥夺时，ucos II用它来保存该任务的状态。当任务重新得到CPU使用权时，任务控制块能确保任务从当时被中断的那一点丝毫不差地继续执行。OS­­_TCBs全部驻留在RAM中。

 

任务控制块的定义程序如下所示：

  





#if OS_TA]]></description><category></category></item><item><title><![CDATA[ucos II 内核学习之一：任务状态及任务控制块]]></title><link>https://blog.youkuaiyun.com/wrw112358/article/details/41697411</link><guid>https://blog.youkuaiyun.com/wrw112358/article/details/41697411</guid><author>wrw112358</author><pubDate>Wed, 03 Dec 2014 14:49:14 +0800</pubDate><description><![CDATA[ucos II 内核学习之一：任务状态及任务控制块

一个任务被创建之后，可以处于以下五种状态之一。

这五种状态分别是：

1.       睡眠状态

2.       就绪状态

3.       等待状态

4.       中断服务状态

5.       执行状态

下面简单介绍下各状态的含义及各状态切换的方法。

    睡眠状态：睡眠态（DORM]]></description><category></category></item><item><title><![CDATA[ucos-ii任务状态介绍]]></title><link>https://blog.youkuaiyun.com/wrw112358/article/details/41697211</link><guid>https://blog.youkuaiyun.com/wrw112358/article/details/41697211</guid><author>wrw112358</author><pubDate>Wed, 03 Dec 2014 14:42:01 +0800</pubDate><description><![CDATA[一个任务通常是一个无限的循环。一个任务看起来像其它的C函数一样，有函数返回类型，任务返回类型必须定义为void型，有形式参数变量，但是任务是绝不会返回的。任务可以在一次执行完毕之后被删除，并不是任务代码被删除，只是内核不会再理会该任务的代码，该任务再也不能运行了。
     RTOS内核控制下的任务状态装换上，在任一给定时刻，任务状态一定是在这六种状态之一。   
             ]]></description><category></category></item><item><title><![CDATA[低功耗设计]]></title><link>https://blog.youkuaiyun.com/wrw112358/article/details/41646427</link><guid>https://blog.youkuaiyun.com/wrw112358/article/details/41646427</guid><author>wrw112358</author><pubDate>Mon, 01 Dec 2014 13:45:02 +0800</pubDate><description><![CDATA[与初学者谈低功耗设计(ZT 作者：沈洁)
  降低功耗不光能够大大的节约电能还能简化电源部分的设计，甚至可以用于手持设备上面使用，这些都已经越来越成为未来产 品的设计方向了^_^ 
  1 降低功耗从MCU选型开始，一开始选型的时候就应该考虑选择低功耗的MCU比如MSP430一类的为低功耗设计的CPU^_^
 强烈不建议使用51一方面是因为51速度慢，另外一方面是因为51的IO是有上拉电阻的]]></description><category></category></item><item><title><![CDATA[IAR for MSP430 关于添加自定义头文件的两种方法 .]]></title><link>https://blog.youkuaiyun.com/wrw112358/article/details/40712171</link><guid>https://blog.youkuaiyun.com/wrw112358/article/details/40712171</guid><author>wrw112358</author><pubDate>Sun, 02 Nov 2014 18:03:11 +0800</pubDate><description><![CDATA[IAR for MSP430  关于添加自定义头文件的两种方法
上次编写关于430的程序还是在一年半前，再次使用时新版本的IAR5.31时发现又不会添加头文件了，想想当时用的时候也遇到过类似问题，最后也不知是如何解决的，在利用workspace栏添加时，倒也能添加，只是不再main分目录下，即便包含了xxx.h文件，编译时仍然会提示“can no find xxx.h”。于是在网上搜了一下有关I]]></description><category></category></item></channel></rss>