搭建使用 RTX51-Tiny 的 C51 Keil 項目環(huán)境
也可以在task0里面寫(xiě)(最后刪掉task0)
void
{
init_system();
os_create_task
os_create_task
os_delete_task
}
最近 1 個(gè)月一直在利用業(yè)余時(shí)間研究 STC12A5C60S2 單片機及其應用,用于放松每天搞 SharePoint 后的緊張心情和頭腦。(事實(shí)證明,能放松那才怪?。?/p>本文引用地址:http://dyxdggzs.com/article/201611/322748.htm
在折騰完了 LCD 1602、LCD 12864(并、串)、PCF 8563(時(shí)鐘芯片)、nRF24L01(無(wú)線(xiàn)通信)、矩陣鍵盤(pán)、LN 298(H 橋電機驅動(dòng))、光耦計數器、HC-SR 04(超聲波測距)之后,決定放棄“白癡”一樣基于中斷、定時(shí)器循環(huán)的“多任務(wù)”程序,上操作系統。否則,后面我想寫(xiě)略微復雜的應用是幾乎不可能的。
下面這個(gè)就是我使用的 STC12A5C60S2 單片機最小系統,自帶 U 轉串芯片,所有 IO 口引出,燒片調試很方便:
這種小板要說(shuō)缺點(diǎn),也是有的,就是沒(méi)有安裝孔,整個(gè)板只能“飄”著(zhù),靠杜邦線(xiàn)的張力來(lái)固定(呃,也就是沒(méi)有固定:),所以后來(lái)用到小車(chē)上面時(shí),只能像這樣在底部焊“支架”再安裝到洞洞板上:
操作系統的選擇
最開(kāi)始考慮的是 uc/OS-II。因為名氣大(經(jīng)??吹剑?,功能強(聽(tīng)上去),而且我買(mǎi)的書(shū)里面也是介紹這個(gè)操作系統。
us/OS-II 的任務(wù)調度是完全基于任務(wù)優(yōu)先級的搶占式調度方式,正在執行的低優(yōu)先級任務(wù)可以被處于“READY”狀態(tài)的高優(yōu)先級任務(wù)打斷。這點(diǎn)在 STC12A5C60S2 里面通過(guò)設置硬件中斷優(yōu)先級也可以實(shí)現,但我不可能任何任務(wù)都是中斷吧。所以還是得用操作系統。
結果網(wǎng)上翻了翻資料,傻眼了。us/OS-II 太xx復雜了,沒(méi)有一個(gè)網(wǎng)頁(yè)能夠清楚的用幾段話(huà)說(shuō)清楚應該怎么用。而且,us/OC-II 到 STC12A5C60S2 需要移植(就是你得改他的源碼,從而適應硬件的特殊情況)。呃 … …
然后,開(kāi)始考慮 RTX-51。因為 C51 開(kāi)發(fā)工具 Keil 里面自帶 RTX-51 操作系統,且直接支持在 Keil 中編譯調試,頗有吸引力 :)
RTX-51 有 2 個(gè)版本:Full 和 Tiny。
Full 需要的資源較多,但支持搶占式任務(wù)調度和中斷任務(wù),以及任務(wù)間互發(fā)消息;Tiny 不支持搶占式調度,任務(wù)間也不能互發(fā)消息,但消耗資源少。
Full 版本雖然功能強大,但是占 8K ROM 也就算了,還需要至少 450 字節的 xData!STC12A5C60S2 總共才 1024 字節的片上 xData RAM,而且我還要 xData 當作液晶屏顯存用呢。想了想,果斷選擇 RTX-51 Tiny。
Tiny 版本不占用 xData,RAM 占用也很少(7+3×任務(wù)數),比較合適。至于缺點(diǎn),只能用了才知道。Tiny 版是開(kāi)源的,源碼是匯編。國內有人對照著(zhù)寫(xiě)自己寫(xiě)了個(gè)操作系統,叫做
Small RTOS 51 的作者陳明計,當年是因為找不到合適的單片機操作系統,“一怒之下”自己動(dòng)手寫(xiě)了這個(gè)既有 Tiny 版本資源占用少的優(yōu)點(diǎn),又能支持搶占式任務(wù)調度的操作系統。(自己不爽,就創(chuàng )造一個(gè),這似乎是很多牛人和新技術(shù)出現的根本動(dòng)力??!所以說(shuō),沒(méi)有好輪子用的時(shí)候,就要自己發(fā)明新的輪子。)
RTX-51 Tiny 使用還是很簡(jiǎn)便的,網(wǎng)上隨便翻翻,馬上就找到了可用的指南(
搭建環(huán)境
項目名字叫做 Wave。
首先,建立好項目目錄結構。每個(gè)子目錄放對應的內容,要不然,所有文件都堆在項目文件夾下面,你很快就暈了:
上面圖中,
- code 放自己的代碼
- lib 放外部程序庫的代碼
- listing 放 Keil 生成的中間文件(方法、變量的內存地址映射什么的)
- output 放 Keil 生成的 HEX 文件
- document 放文檔
這個(gè)目錄結構和 Keil IDE 里面的“目錄”結構是不一樣的(也不需要一樣)。
然后,開(kāi) Keil IDE 新建一個(gè)項目,放在剛剛的目錄下面:
Keil IDE 有試用版的。試用版有全部功能,唯一的限制是只能編譯 2K 以?xún)鹊哪繕舜a。
相關(guān)推薦
-
-
-
-
-
-
jackwang | 2006-09-17
-
-
powercxz | 2002-11-26
-
powercxz | 2002-12-02
-
pramodjaipur | 2006-03-23
技術(shù)專(zhuān)區
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線(xiàn)
- 開(kāi)關(guān)電源
- 單片機
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開(kāi)發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機控制
- 藍牙
- PLC
- PWM
- 汽車(chē)電子
- 轉換器
- 電源管理
- 信號放大器
評論