<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>正在戒网&#039;Blog &#187; ucos</title>
	<atom:link href="http://isfate.com/tag/ucos/feed" rel="self" type="application/rss+xml" />
	<link>http://isfate.com</link>
	<description>放了自已,才能高飞!</description>
	<lastBuildDate>Fri, 21 Oct 2011 13:48:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>ucos學習筆記之信號量的使用</title>
		<link>http://isfate.com/309.html</link>
		<comments>http://isfate.com/309.html#comments</comments>
		<pubDate>Tue, 01 Dec 2009 10:21:50 +0000</pubDate>
		<dc:creator>正在戒网</dc:creator>
				<category><![CDATA[嵌入式研究]]></category>
		<category><![CDATA[ucos]]></category>
		<category><![CDATA[信號量]]></category>

		<guid isPermaLink="false">http://isfate.com/?p=309</guid>
		<description><![CDATA[臺資黑工廠里寫的,字體為繁體,我也懶的轉換了,反正看的人也不多.. 個人理解信號量的作用:任務之間同步的標識,或是對共享資源操作的一個鎖匙(MS有更強大的互斥型的信號量).總之不管那么多,一個任務可以等待一個信號量.任務或是中斷可以發送信號量,等待信號量的任務在收到信號量的時候就繼續運行.可以多個任務同時等待一個信號量,但只有優先級最高的任務得到信號量并執行.中斷不可使用信號量. 簡單的信號量應用 一:先在OS_CFG.H中把OS_SEM打頭的幾個全部定義為1;OS_MAX_EVENTS為所有的事件數量(包括消息隊列等),定義為多少看情況,我設定為20(每加一個就多用掉了近100字節的RAM). 二:定義一個OS_EVENT弄的指針  方法: OS_EVENT *SBSB; 三:在任務中創建一個信號量    方法: SBSB=OSSemCreate(5);  這樣SBSB就是一個指向了新建的一個信號量.后面那個5表示初始值,表示現在有5個信號量 四:接下來就可以在任務中使用信號量了(中斷中只可以發送信號量)    等待信號量方法:OSSemPend(SBSB,0,&#38;ERROR);   //等待SBSB這個信號量  后面的一個參數為超時,0表示永不超時,時間單位為OS的TIMESTICK,第三個參數為錯誤代碼    發送信號量方法:很簡單 OSSemPost(SBSB);就收工了 下面是我寫的最簡單應用,STM32用的,放到這里,以免以后忘了. #include “stm32f10x_lib.h” #include “includes.h”   OS_STK os_sysinit_stk[60]; OS_STK os_ledshow_stk[60]; OS_STK os_ideluser_stk[60];   void os_sysinit_task(void *pdata) {    INT8U ERROR;  sysinit();  initGPIOA();  while(1)   {   OSSemPend(SEM01,0,&#38;ERROR);   OSTimeDly(40);   GPIO_WriteBit(GPIOA, GPIO_Pin_1, Bit_RESET);   OSTimeDly(20);   GPIO_WriteBit(GPIOA, GPIO_Pin_1, Bit_SET);   } } void os_ledshow_task(void [...]]]></description>
		<wfw:commentRss>http://isfate.com/309.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>uCOS-II 常用函数参考手册</title>
		<link>http://isfate.com/303.html</link>
		<comments>http://isfate.com/303.html#comments</comments>
		<pubDate>Mon, 30 Nov 2009 13:02:29 +0000</pubDate>
		<dc:creator>正在戒网</dc:creator>
				<category><![CDATA[嵌入式研究]]></category>
		<category><![CDATA[ucos]]></category>

		<guid isPermaLink="false">http://isfate.com/?p=303</guid>
		<description><![CDATA[任务管理 1 OSTaskCreate()         建立一个新任务。任务的建立可以在多任务环境启动之前，也可以在正在运行的任务中建立。中断处理程序中不能建立任务。一个任务可以为无限循环的结构。 函数原型：INT8U OSTaskCreate(void (*task)(void *pd), void *pdata, OS_STK *ptos, INT8U prio); 参数说明：task 是指向任务代码首地址的指针。      pdata 指向一个数据结构，该结构用来在建立任务时向任务传递参数。      ptos is a pointer to the task’s top of stack. If the configuration constant OS_STK_GROWTH is set to 1, the stack is assumed to grow downward (i.e. from high memory to low memory). ‘pstk’ [...]]]></description>
		<wfw:commentRss>http://isfate.com/303.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

