国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

查看: 27468|回復: 62
打印 上一主題 下一主題

RTX51——Keil的專用于51單片機的嵌入式系統

[復制鏈接]
跳轉到指定樓層
樓主
發表于 2009-11-12 22:02:03 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
關鍵詞: 興趣
  RTX51是一款非常緊湊的用于51單片機嵌入式系統,支持多任務、中斷和時間片調度。特別是RTX51 Tiny,能用于真正的51單片系統。該系統在Keil UV2上可用,且帶調試支持。經過多年的改進,RTX51已經很成熟。
    本人認為,在51的簡單應用中,這個輕量級的RTX51還是很實用的。有哪位用過,不妨交流一下自己的看法,本人在此先行謝過。
  RTX51很容易使用,在此提供一個例子,單片機控制兩個LED亮滅閃爍。
rtx_tes.rar (669 Bytes)
其中設置如下

沙發
發表于 2009-11-12 22:24:35 | 只看該作者
這個OS局限性太大,沒什么大的實際用途

對網絡應用支持么?

而且現在的MCU越來越便宜了,復雜、對性能有需求的,51很難勝任

RTX51學學就可以了
板凳
 樓主| 發表于 2009-11-13 10:31:24 | 只看該作者
非常感謝,樓上說的沒錯,RTX51專用于51單片機。
如果需要網絡應用,可以選其它架構的片子。
在這里我不妨就事論事,在可以用51的場合,51芯片和RTX51還是搭配的。
試看更低端的MCU,有的連C都不支持。好在51的資料豐富,開發工具還算不錯,也很便宜。
地板
 樓主| 發表于 2009-11-13 10:46:14 | 只看該作者
如果我沒有記錯,wangkj的顯卡就用了51,“stc51單片機主控,cpld+sdram實現顯卡硬件”。當然,這位的應用做得很高端,本人望塵莫及。
地下室
 樓主| 發表于 2009-11-13 17:47:58 | 只看該作者
一個簡單的例子,51直接驅動兩個LED亮滅閃爍。
// ===========================================
//                        test project for RTX51 Tiny
// ===========================================
#include   
// 包含RTX51 tiny頭文件
#include   

// ---------------------------------------------------------------
// 指示燈口線定義
sbit LED0 = P1^0;
sbit LED1 = P1^1;

// ---------------------------------------------------------------
// 定義閃爍周期。為突出差異,兩個周期設為不同的值。
const unsigned char ucDly0 = 53;
const unsigned char ucDly1 = 137;

// =========================================
// 第一個任務“_task_ 0”,系統啟動默認加載的任務
void job0(void) _task_ 0
{
    static bit LED_Flag = 0;

        // 加載另一個任務
        os_create_task(1);
        
        while(1)
        {
                // 指示燈輸出
                LED0 = LED_Flag;
                // 位寄存器取反
                LED_Flag = ~LED_Flag;
                // 延時等待,RTX51系統過程調用
                os_wait2(K_TMO, ucDly0);
        }
}

// ---------------------------------------------------------------
// 第二個任務,除了沒有“加載另一個任務”外與第一個任務基本相同
void job1(void) _task_ 1
{
    static bit LED_Flag = 0;

        while(1)
        {
                LED1 = LED_Flag;
                LED_Flag = ~LED_Flag;
               
                os_wait2(K_TMO, ucDly1);
        }
}

// =========================================
6
 樓主| 發表于 2009-11-19 14:45:13 | 只看該作者
上面是該例子的源代碼,其中沒有用到時間片調度,CONF_TNY.A51中只改了兩個默認的參數:INT_CLOCK,設為9216是為在fosc = 11.0592MHz時得到10MS的系統調度周期;TIMESHARING設為0,禁止時間片調度。
7
 樓主| 發表于 2009-11-21 09:23:18 | 只看該作者
  該例子中可以看出RTX51應用的特點,沒有C程序中常用的main()過程,只有用_task_關鍵字定義的任務,每個任務是一個封閉閉的循環。main()的功能已被RTX51接管了;系統等待調用os_wait2()。其實還有os_wait1(),os_wait()兩個等待過程,三者之間功能略有差異,具體可參考“C:\Keil\C51\HLP\TR51.CHM”。
  還有其它可供調用的RTX51系統例程,可以參考RTX51的函數說明。
8
 樓主| 發表于 2009-12-5 08:00:15 | 只看該作者
RTX51用MCS51匯編語言寫成,KEIL是不提供源碼的,但不影響正常使用。UV2中附帶的例子很不錯,TRAFFIC是一個應用RTX51 TINY的交通燈控制程序,其中用了UART通信,重寫了putchar()、getkey()等過程,以適應RTX51任務調用。
9
 樓主| 發表于 2009-12-11 10:11:30 | 只看該作者
交通燈控制程序TRAFFIC,其功能是控制一個供行人通過的路口的交通指示燈,忙碌時段內車輛通行方向為綠燈,行人通行方向為紅燈。行人要通過時,按下按鍵,交通燈轉換為車輛通行方向為紅燈,行人通行方向為綠燈,讓行人通過,稍后恢復為車輛通行。空閑時段內車輛通過方向黃燈亮滅閃爍。如果系統與串行終端連接,則終端上顯示控制器內部的實時時間,可以通過終端設置控制器的時間,忙碌時段的開始時間和結束時間。
這是一個典型的過程控制例子,其中的單片機系統等待的時間較長,工作狀態轉換也較頻繁,程序如果用前后臺方式設計,工作量大而且容易出錯。用RTX51 則程序很簡潔,實時性能也不錯。
10
 樓主| 發表于 2009-12-11 10:31:54 | 只看該作者
TRAFFIC中有效的任務劃分為:
1)實時時間計時CLOCK;
2)行人通過時的按鍵輸入KEYREAD;
3)忙碌時交通燈控制LIGHTS;
4)空閑時交通燈控制BLINKING;
5)終端命令接收COMMAND;
6)終端輸入時ESC捕獲GET_ESC。
其中KEYREAD、COMMAND和CLOCK始終運行,LIGHTS和BLINKING交替運行,GET_ESC只在終端輸入時運行。
11
 樓主| 發表于 2009-12-19 17:08:28 | 只看該作者
其實,用RTX的更方便的是功能的裁剪。TRAFFIC中的功能,用前后臺編程也可以很方便地實現,有興趣的可以試試。但是,以上提到的各個任務,在前后臺系統中要做增減是很費勁的,而用RTX則很方便,刪除一個任務本身和等待該任務的信號的操作即可,修改的地方很少,幾乎不留痕跡。可以試試在前后臺系統上的修改過程是如何繁瑣。
12
發表于 2010-2-2 11:01:11 | 只看該作者
支持LZ。像TRAFFIC這樣的例子,如果不使用RTX51,即使高手也做不了那么完善。

看到不少研究生以RTX51_TINY應用方法做論文課題,其實教授也用不好,愿意的話在這里貼幾篇碩士論文,結果是用錯了。當然評委也是蒙古教授,學生能研究到這個程度就不錯了,畢竟中國還沒有一個博士或者教授能寫的出來51_RTOS 呀.
13
 樓主| 發表于 2010-3-15 00:09:15 | 只看該作者
非常感謝樓上的回帖!

其實我是這樣理解的, 國內不是寫不出51_RTOS, 很大程度上是不屑于去寫. 我從來不敢低估各位國內同行的實力, 甚至我都認為某些國內同行技術實力和創造性絕不亞于國外同行. 政策和資金方面的引導那不是咱搞技術的能確定的, 在此不提.

其實51是不適合用來做論文的,就算做出來也不見得能通過答辯或發表, 在這方面它顯得技術含量不高, 沒人會當回事. 前幾年我接觸過一個研究生, 做DSP + ARM9 + USB + FS + IP/TCP, 視頻采集處理 + 壓縮存儲 + 主機端程序.  不到一年時間, 從原理圖, PCB, 算法, 軟件都搞定. 結果有人給評優秀, 根本不問那是怎么搞出的.

我想說的是, 搞論文別搞51, 搞51別搞論文. 這甚至可以說不是同一個行業. 我也實話說如果想解決學習或應用中的問題, 可以適當參考一下我的帖子, 如果做論文, 不只是我的帖子, 就是這個網站, 恐怕也難滿足這樣的期望吧.
14
 樓主| 發表于 2010-3-15 00:14:46 | 只看該作者
有一陣子沒時間來發帖了, 對不住關注該話題的各位. 有機會我會把以前做過的一些應用貼上來, RTX51 和 UC/OS-II的都有, 希望對各位有用.  現在的問題是我有好長時間不搞51了, 也沒時間整理那些東西, 非常抱歉.
15
發表于 2010-5-17 13:57:19 | 只看該作者
學習學習
16
 樓主| 發表于 2010-5-19 00:34:23 | 只看該作者
RTX51應用中的各任務多由 task 0 創建, 在建立各任務后, 在 task 0 的最后將該任務本身刪除: os_delete_task( 0 );
17
發表于 2010-6-30 15:23:42 | 只看該作者
好好學習學習
18
發表于 2010-7-6 21:25:22 | 只看該作者
回復17樓supergame111
值得好好學習
19
發表于 2010-7-6 21:25:47 | 只看該作者
謝謝分享,好東西
20
發表于 2010-7-7 15:45:43 | 只看該作者
不提供源代碼很不方便啊
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲丁香婷婷 | 亚色影库| 精品久久久一二三区 | 精品国产免费久久久久久婷婷 | 97在线视频免费观看费观看 | 羞羞视频免费看网站 | 日本中文字幕在线 | 亚洲综合情 | 高清在线一区 | 亚洲国产日韩在线人成下载 | 欧美精品香蕉在线观看网 | 玖玖爱精品 | 香蕉成人国产精品免费看网站 | 91国内精品久久久久免费影院 | 自拍偷自拍亚洲精品情侣 | 99视频免费在线观看 | 韩国特级一级毛片免费网站 | 一区二区三区视频在线观看 | 国产原创麻豆 | h视频免费观看 | 越南女人高清18xxxxx | 天堂在线观看视频 | 黄色成人在线 | 亚洲欧美一级夜夜爽w | 欧美激情视频二区三区 | 亚色综合 | 91在线免费观看网站 | 日韩男女视频 | 国产yw855.c免费观看网站 | 国产欧美亚洲精品第一页青草 | 国产在线91精品入口 | 久久免 | 91av在| 青青操视频在线免费观看 | 中文字幕亚洲一区二区v@在线 | 精品一区二区三区在线视频 | 免费h黄肉动漫在线观看 | 综合色久七七综合七七蜜芽 | 日本精品久久久一区二区三区 | 四虎影视1515hh四虎免费 | 国产麻豆精品原创 |