出版時間:2004-1 出版社:北京航大 作者:陳明計,周立功 頁數(shù):346 字數(shù):582000
Tag標簽:無
內(nèi)容概要
Small RTOS51是為51系列單片機而編寫的。它是完全免費的、源代碼公開的多任務實時操作系統(tǒng)。它可在無任何外部數(shù)據(jù)存儲器的單片80C51系統(tǒng)上運行,并且是可移植的。全書分兩部分。第一部分為基礎篇,介紹Small RTOS51和一些基本概念,并詳細分析Small RTOS51的工作原理。第二部分為應用篇,給出部分常用硬件在Small RTOS51下驅(qū)動程序的源代碼。這些源代碼在DP—51單片機仿真實驗儀上全部調(diào)試通過,且只要經(jīng)過很少的改動,或是不改動,就可以在其他環(huán)境下使用。應用篇還通過對這些源代碼的分析,讓讀者理解基于RTOS的編程方法,并給出完整的例子讓讀者全面掌握基于RTOS的編程方法。 本書可以作為高等院校相關專業(yè)的課程教材、實驗參考資料或課外讀物,對嵌入工應用開發(fā)人員也有重要的參考價值。
書籍目錄
第一部分 原理篇 第0章 緒論 第1章 Small RTOS51簡介 1.1 Small RTOS51的特點 1.2 Small RTOS51的運行條件 1.3 Small RTOS51的存儲器需求 1.4 Small RTOS51的任務堆棧的計算 1.5 關于可重入功能 1.6 關于C51的庫函數(shù) 1.7 關于51系列單片機派生類型的多數(shù)據(jù)指針和數(shù)學單元 1.8 關于51系列單片機的寄存器段 1.9 關于局部變量 第2章 基本概念 2.1 嵌入式系統(tǒng) 2.2 實時系統(tǒng) 2.3 前、后臺系統(tǒng) 2.4 操作系統(tǒng) 2.5 實時操作系統(tǒng) 2.6 代碼的臨界區(qū) 2.7 資源 2.8 共享資源 2.9 任務 2.10 任務切換 2.11 內(nèi)核 2.12 調(diào)度 2.13 非占先式內(nèi)核 2.14 占先式內(nèi)核 2.15 可重入性 2.16 任務優(yōu)先級 2.17 信號量 2.18 死鎖 2.19 消息隊列 2.20 中斷 2.21 時鐘節(jié)拍 第3章 一個簡單的例子 3.1 Small RTOS51的安裝及目錄結(jié)構 3.2 例子簡介 3.3 Config、h、Os_cfg、h和Os_cpu.h 3.4 與編程器無關的數(shù)據(jù)類型 3.5 OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL() 3.6 main()函數(shù) 3.7 建立任務 3.8 刪除任務 3.9 用戶任務 3.10 軟非屏蔽中斷 3.11 中斷服務程序的編寫 3.12 Os_cpu.h可改變的其他內(nèi)容 3.13 Small RTOS51的其他注意事項 第4章 任務管理—核心的核心 4.1 臨界區(qū) 4.2 任務 4.3 任務狀態(tài) 4.4 與任務相關的數(shù)據(jù)結(jié)構 4.5 任務調(diào)度 4.6 Small RTOS51中的中斷處理 4.7 時鐘節(jié)拍 4.8 Small RTOS51初始化和啟動 4.9 建立任務 4.10 任務堆棧 4.11 刪除任務 4.12 時間服務及任務的掛起和恢復 4.13 獲取當前Small RTOS51的版本號 4.14 OSInt…()函數(shù) 第5章 如何切換任務 5.1 CPU可以執(zhí)行多個任務的原因 5.2 CPU怎樣運行才能執(zhí)行多個任務 5.3 何時進行任務切換 5.4 Small RTOS51任務切換時的程序框圖 5.5 數(shù)組OSTsakStackBotton[]和Small RTOS51的堆棧結(jié)構 5.6 變量OSFastSwap 5.7 常量數(shù)值OSMapTb[] 5.8 軟非屏蔽中斷的堆棧SP2[] 5.9 中斷切換函數(shù)OSIntCtxSw()OSIntCtxSw() 5.10 任務主動放棄CPU-OS_TASK_SW() 5.11 堆棧變換函數(shù)C_OSCtxSw() 5.12 恢復新任務環(huán)境LoadCtx() 5.13 優(yōu)先級最低的任務OSIdle() 5.14 Small RTOS51初始化函數(shù)OSStart() 5.15 系統(tǒng)時鐘節(jié)拍中斷OSTickISR() 第6章 任務之間的通信和同步之信號量 6.1 概述 6.2 使Keil C51函數(shù)具有重入性的特殊方法 6.3 數(shù)據(jù)結(jié)構 6.4 IN_OS_SEM_CHK宏及相關代碼 6.5 初始化一個信號量 6.6 等待一個信號量 6.7 發(fā)送一個信號量 6.8 無等待地請求一個信號量 6.9 查詢信號量 第7章 任務之間的通信和同步之消息隊列 7.1 概述 7.2 數(shù)據(jù)結(jié)構及存儲空間的分配 7.3 消息隊列發(fā)送消息和取得消息的操作 7.4 EN-OS-Q-CHK及相關代碼 7.5 建立一個消息隊列 7.6 等待一個消息隊列中的消息 7.7 向消息隊列發(fā)送一個消息(FIFO) 7.8 向消息隊列發(fā)送一個消息(LIFO) 7.9 同時發(fā)送多個信息 7.10 無等待地從消息隊列中取得消息 7.11 清空一個消息隊列 7.12 查詢一個消息隊列的狀態(tài) 第8章 Small RTOS51的移植 8.1 系統(tǒng)相關的宏 8.2 與編譯器無關的變量類型 8.3 OSStart() 8.4 OSIntCtxSw() 8.5 OS-TASK-SW() 8.6 OSTickISR() 8.7 OSIdle() 第9章 函數(shù)參考手冊 9.1 OS-INT-ENTER()函數(shù) 9.2 OSClearSignal()函數(shù) 9.3 OSIntExit()函數(shù) 9.4 OSIntSendSignal()函數(shù) 9.5 OSQAccept()函數(shù) 9.6 OSQCreate()函數(shù) 9.7 OSQFlush()函數(shù) 9.8 OSQIntPost()函數(shù) 9.9 OSQIntPostFront()函數(shù) 9.10 OSQNMsgs()函數(shù) 9.11 OSQPend()函數(shù) 9.12 OSQPost()函數(shù) 9.13 OSQPostFront()函數(shù) 9.14 OSQSize()函數(shù) 9.15 OSRunning TaskID()函數(shù) 9.16 OSSemAccept()函數(shù) 9.17 OSSemCreate()函數(shù) 9.18 OSSemIntPost()函數(shù) 9.19 OSSemPend()函數(shù) 9.20 OSSemPost()函數(shù) 9.21 OSSemQuery()函數(shù) 9.22 OSSendSignal()函數(shù) 9.23 OSStart()函數(shù) 9.24 OSTimeTick()函數(shù) 9.25 OSVersion()函數(shù) 9.26 OSWait()函數(shù) 第10章 系統(tǒng)配置手冊 10.1 基本配置 10.2 消息隊列的配置 10.3 信號量的配置 10.4 Small RTOS51的特殊配置 第二部分 應用篇 第11章 DP-51單片機仿真實驗儀簡介 11.1 概述 11.2 產(chǎn)品實物 11.3 功能特點 11.4 主控CPU簡介 11.5 DP-51單片機仿真實驗儀的應用領域 第12章 DP-51單片機仿真實驗儀硬件結(jié)構 12.1 主要器件 12.2 電路外觀 12.3 應用接口 12.4 I/O地址分配 12.5 跳線選擇器 第13章 如何為Small RTOS51編寫驅(qū)動程序 13.1 Keil C51簡介 13.2 Keil C51的特殊性 13.3 判斷Keil C51是否可重入的方法 13.4 使用任務編寫驅(qū)動程序 13.5 使用消息隊列編寫驅(qū)動程序 13.6 使用信號量編寫驅(qū)動程序 13.7 復合方法 第14章 LED掃描程序的實現(xiàn) 14.1 LED簡介 14.2 LED數(shù)碼顯示器簡介 14.3 LED驅(qū)動程序的實現(xiàn) 第15章 LCD顯示驅(qū)動的實現(xiàn) 15.1 點陣字符型LCD-TC1602A簡介 15.2 TC1602A液晶顯示器與DP-51單片機仿真實驗儀的連接 15.3 驅(qū)動程序的使用 15.4 對TC1602A操作的基本函數(shù) 15.5 初始化TC1602A液晶顯示器 15.6 消除指定行 15.7 在指定位置顯示字符串 15.8 在指定地址向液晶模塊寫多個字符 15.9 驅(qū)動程序在DP-51單片機仿真實驗儀上使用的例子 第16章 軟定時器的實現(xiàn) 16.1 軟定時器簡介 16.2 軟定時器模塊的使用 16.3 軟定時器的數(shù)據(jù)結(jié)構 16.4 軟定時器模塊的接口函數(shù) 16.5 軟定時器模塊的管理 16.6 軟定時器模塊在DP-51運用的例子 第17章 鍵盤掃描程序的實現(xiàn) 17.1 鍵盤簡介 17.2 軟件去抖動處理 17.3 連擊的處理 17.4 復合鍵 17.5 串鍵 17.6 鍵盤驅(qū)動的實現(xiàn) 17.7 鍵盤驅(qū)動在DP-51上運用的例子 第18章 串行通信程序的實現(xiàn) 18.1 概述 18.2 串行通信硬件電路 18.3 通信協(xié)議 18.4 本例使用的串行通信協(xié)議 18.5 本例執(zhí)行的效果 18.6 串行通信驅(qū)動程序的發(fā)送部分 18.7 串行通信驅(qū)動程序的接收部分 18.8 例子中其他未介紹部分代碼 第19章 I2C總線驅(qū)動程序的實現(xiàn) 19.1 標準模式I2C總線規(guī)范簡介 19.2 位傳輸 19.3 數(shù)據(jù)傳輸 19.4 仲裁與時鐘發(fā)生 19.5 傳輸協(xié)議 19.6 I2C總線驅(qū)動程序的實現(xiàn) 第20章 串行E2PROM芯片Cat24WCxx驅(qū)動程序的實現(xiàn) 20.1 概述 20.2 引腳描述 20.3 串行E2PROM芯片的尋址 20.4 寫操作方式 20.5 讀操作方式 20.6 Cat24WC02在DP-51中的連接 20.7 Cat24WCxx驅(qū)動程序的使用 20.8 Cat24WCxx的寫操作 20.9 Cat24WCxx的讀操作 20.10 DP-51上對Cat24WC02讀/寫操作的例子 第21章 實時時鐘芯片PCF8563驅(qū)動程序的實現(xiàn) 21.1 實時實鐘PCF8563簡介 21.2 PCF8563的基本原理 21.3 PCF8563在DP-51中的連接 21.4 PCF8563驅(qū)動程序的使用 21.5 PCF8563的寫操作 21.6 PCF8563的讀操作 21.7 DP-51上對PCF8563讀/寫操作的例子 第22章 CAN總線驅(qū)動程序的實現(xiàn) 22.1 CAN簡介 22.2 CAN控制器SJA1000簡介 22.3 SJA1000的硬件連接 22.4 對SJA1000的軟件控制 22.5 SJA1000的BasicCAN方式 22.6 寄存器位功能介紹 22.7 SJA1000的編程流程 22.8 驅(qū)動程序的使用 22.9 對SJA1000操作的基本函數(shù) 22.10 用戶可修改、可調(diào)整的應用層函數(shù) 22.11 CAN通信在DP-51上運用的例子 第23章 PDIUSBD12 USB驅(qū)動程序的實現(xiàn) 23.1 簡介 23.2 USB設備的枚舉過程 23.3 USB標準設備請求 23.4 程序?qū)崿F(xiàn)方法 第24章 完整的程序—鬧鐘的實現(xiàn) 24.1 簡介 24.2 關鍵代碼 附錄A 使用許可證附錄B 本書配套光盤說明 參考文獻
編輯推薦
本書主要特點: 分為原理篇和應用篇,原理與實踐相結(jié)合,兩篇相對獨立,又緊密聯(lián)系?! ≡砥苑治鲈创a為特色,深入淺出地介紹RTOS的基本概念以及Small RTOS51的工作原理。 應用篇以DP-51單片綜合仿真實驗儀為硬件平臺,通過對單片機常用和熱門外圍器件實用驅(qū)動程序的分析,詳細介紹基于Small RTOS51的編程方法,以及如何為這些外圍器件編寫中間件,并給出一個完整的例子,讓讀者全面掌握基于Small RTOS51的編程方法,體會了RTOS下編程的優(yōu)點。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載
嵌入式實時操作系統(tǒng)Small RTOS51原理及應用 PDF格式下載