版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 中文4460字</b></p><p> 畢業(yè)設計(論文)外文資料翻譯</p><p> 嵌入式實時操作系統(tǒng)RTX-51的研究</p><p> 學 生 姓 名:</p><p> 班 級:電自047</p><p> 學 號:</p>
2、<p> 指 導 教 師:</p><p> 所 在 單 位: </p><p> 答 辯 日 期: 2008年 6月 23日</p><p> 附件1:外文資料翻譯譯文</p><p> RTX-51 實時操作系統(tǒng)</p><p> RTX51是一個適用于8051 家族的實時多任務操作系統(tǒng)。RTX
3、51使復雜的系統(tǒng)和軟件設計以及有時間限制的工程開發(fā)變得簡單。RTX51是一個強大的工具,它可以在單個CPU上管理幾個作業(yè)(任務)。</p><p> RTX51有兩種不同的版本: </p><p> RTX51 Full 允許4個優(yōu)先權任務的循環(huán)和切換,并且還能并行的利用中斷功能。RTX51支持信號傳遞,以及與系統(tǒng)郵箱和信號量進行消息傳遞。RTX51的os_wait 函數可以等待以下事
4、件:中斷、時間到、來自任務或中斷的信號、來自任務或中斷的消息、信號量。 </p><p> RTX51 Tiny 是RTX51 Full 的一個子集。RTX51 Tiny 可以很容易的運行在沒有擴展外部存儲器的單片機系統(tǒng)上。但是,使用RTX51 Tiny 的程序可以訪問外部存儲器。RTX51 Tiny允許循環(huán)任務切換,并且支持信號傳遞,還能并行的利用中斷功能。RTX51 Tiny 的os_wait函數可以等待以
5、下事件:時間到、時間間隔、來自任務或者中斷的信號。 </p><p> 以后的部分用RTX-51 來指代RTX-51 Full 和RTX-51 Tiny。在兩者之間不同的地方會加以說明。 </p><p><b> 導 言 </b></p><p> 許多微處理器應用都需要同時執(zhí)行多個作業(yè)或者任務。對于這種應用,一個實時的操作系統(tǒng)(RT
6、OS)允許系統(tǒng)資源(CPU、內存等)被靈活的分配給幾個任務。RTX-51是一個強大的實時操作系統(tǒng),并且易于應用。RTX-51 可以工作在8051系列的微處理器上。 你使用標準C語言編寫RTX-51應用程序,并且用C51來編譯它們。為了具體指明任務的標志和優(yōu)先級,會與標準C存在一點差別。RTX-51應用程序要求你將RTX51.H或者RTX51TNY.H頭文件包含進來。當你在μVision2集成環(huán)境里打開目標選項對話框,選擇目標操作系統(tǒng)以后
7、,鏈接器便會添加合適的RTX-51庫文件。 </p><p><b> 單任務程序 </b></p><p> 一個標準C程序從主函數開始執(zhí)行。在嵌入式應用里,主函數經常被編寫為一個無窮循環(huán),也可以被認為是一個連續(xù)執(zhí)行的單個任務。例如: </p><p><b> 循環(huán)任務切換 </b></p><
8、;p> RTX51 Tiny 允許“準并行”的同時執(zhí)行幾個任務。每一個任務在預先定義好的時間片內得以執(zhí)行。時間到使正在執(zhí)行的任務掛起,并使另一個任務開始執(zhí)行。下面的例子使用了循環(huán)任務切換的技術。</p><p> 使用RTX51的C程序例子</p><p> RTX51 從任務0(分配給作業(yè)0)開始執(zhí)行程序。os_create_task 函數標記任務1(分配給作業(yè)1)為準備執(zhí)行
9、。這兩個任務是簡單的計數循環(huán)。在一個時間片結束后,RTX51 中斷作業(yè)0,并且開始執(zhí)行作業(yè)1。作業(yè)1 在一個時間片結束后,系統(tǒng)重新開始執(zhí)行作業(yè)0。 </p><p> os_wait 函數 </p><p> os_wait 函數提供了一種更為有效的方式來給幾個任務分配可使用的處理器時間。os_wait函數中斷當前正在運行的任務,并且等待特定的事件。在一個任務等待事件的時間里,其他任務
10、可以被執(zhí)行。 </p><p><b> 等待時間到 </b></p><p> RTX51使用8051 的一個定時器來產生一個循環(huán)的中斷(時鐘周期)。響應os_wait 的最簡單事件是時間到,當前正在執(zhí)行的任務被指定的時鐘周期所中斷。下面的延時例子使用的是時間到。 </p><p> 使用os_wait 函數編程 </p>
11、<p> 這個程序與上一個程序相似,不同的是作業(yè)0 是在計數器0 完成計數后os_wait函數所中斷的。RTX51等待3 個時鐘周期直到作業(yè)0 準備好再次運行為止。在這期間,作業(yè)1得以執(zhí)行。作業(yè)1 也調用了os_wait 函數,等待5 個時鐘周期。結果是:定時器0 每三個時鐘周期增加一次,計數器1則每5個時鐘周期增加一次。 </p><p><b> 等待信號 </b><
12、;/p><p> os_wait 函數的另一個事件是信號。信號被用來協(xié)調任務。直到另一個任務發(fā)出信號,在os_wait 函數控制下的任務才結束等待狀態(tài)。如果信號預先就被發(fā)送出來,那么任務將立即繼續(xù)執(zhí)行。 </p><p> 使用等待信號的程序 </p><p> 在這個例子當中,任務1等待著由任務0發(fā)出的信號,并且以此來處理計數器0產生的溢出。 </p>
13、;<p><b> 搶先任務切換 </b></p><p> RTX51 Full 提供了搶先的任務切換,RTX51 Tiny 不具備這個功能。為了對多任務的概念有一個完整的了解,在這里對搶先任務切換加以解釋。 </p><p> 在上一個例子中,任務1收到一個信號后不會立即開始,只有當任務0 發(fā)生了時間到事件后,任務1才會啟動。如果任務1被賦予了
14、比任務0 高的優(yōu)先級,通過搶先任務切換,如果任務1收到了信號,就會立即開始。優(yōu)先級在任務定義中被指定(默認的優(yōu)先級是0)。 </p><p> RTX51 的技術參數 </p><p> RTX51 程序概覽 </p><p> 下列表格里列出了RTX51 的一些函數,并帶有簡要的說明和執(zhí)行時間(針對RTX51 Full)。 </p><
15、p> 標記的函數僅僅在RTX51 Full中具備</p><p> RTX51 Full里附加的調試和支持函數見下表: </p><p><b> CAN 函數 </b></p><p> CAN函數僅在RTX-51 Full中提供。CAN控制器支持非利浦82C200和80C592以及英特爾82526。更多的CAN控制器正在準備中
16、。 </p><p> TRAFFIC:使用RTX-51 Tiny 的例程 </p><p> TRAFFIC例程是一個行人信號燈控制器,通過它來說明多任務實時操作系統(tǒng)RTX-51 Tiny 的應用。在一個用戶定義的時間段里,交通燈受到控制。在時間段以外,黃色燈閃爍。如果一個步行者按下了請求按鈕,交通燈立即進入行走狀態(tài)。否則,交通燈持續(xù)不斷的工作。 </p><p
17、><b> 交通燈控制器命令 </b></p><p> 下表列出了TRAFFIC所支持的一系列命令。這些命令由ASCII文本字符構成。所有的命令必須以回車符來終止。 </p><p><b> 軟件 </b></p><p> TRAFFIC 應用程序由3個文件組成,這些文件可以\KEIL\C51\EXAM
18、PLES\TRAFFIC</p><p><b> 文件夾里找到。</b></p><p> TRAFFIC.C 包含了交通燈控制程序,被分成了如下幾個任務:</p><p> ??任務0 初始化:初始化串口,并且啟動所有其他的任務。由于初始化只需要進行一次,任務0將自己刪除自己。</p><p> ??任務1
19、 命令:任務1完成交通燈控制器的命令處理。這個任務負責控制和處理接收到的串行命令。 </p><p> ??任務2 時鐘:控制時鐘。 </p><p> ??任務3 閃爍:當時間落在活躍的時間段以外后,黃色燈閃爍。 </p><p> ??任務4 燈:當時間落在活躍的時間段(在開始和結束時間之間)里以后,控制交通燈的相位。 </p><
20、;p> ??任務5 讀按鍵:讀取行人按下的按鈕,并且向任務4發(fā)送信號。 </p><p> ??任務6 退出:如果在串行指令流里遇到了ESC字符,任務1獲得一個信號,并且終止顯示命令。 </p><p> SERIAL.C 執(zhí)行一個中斷來驅動串行口。這個文件包含了函數 putchar 和 getkey 。高級的輸入輸出函數 printf 和 getline 調用這些基本的輸
21、入輸出子函數。沒有中斷驅動串行輸入輸出,交通燈應用程序也會啟動,但不會完成任務。</p><p> GETLINE.C 是一個命令行編輯器,用來編輯從串口接收到的字符。這個源文件也被測量應用程序所使用。</p><p> TRAFFIC 工程 </p><p> 在 μVision2 環(huán)境里,打開位于\KEIL\C51\EXAMPLES\TRAFFIC 文件夾
22、里TRAFFIC.UV2文件。在工程窗口的文件頁里將會看到源文件。 </p><p> 在目標選項里選擇 RTX-51 Tiny Real-Time OS。 </p><p> 選擇工程——編譯或者工具欄上的編譯按鈕,編譯TRAFFIC程序。 運行TRAFFIC 程序 你可以使用μVision2 里的仿真來測試TRAFFIC應用程序。 </p><p> 下
23、圖的變量觀察窗口允許你觀察驅動交通燈的端口狀態(tài)。 </p><p> push_key 信號函數模擬行人按下按鈕,切換交通燈進入行走狀態(tài)。 </p><p> 這個函數被稱為按下以通過工具按鈕。 </p><p> 使用調試——函數編輯器,打開TRAFFIC.INC 文件。在目標選項 ——調試——初始化文件里選擇這個文件,并且定義信號函數 push_key,端
24、口初始化和按鈕工具欄。 </p><p> 注意:因為在TRAFFIC.C 模塊里有一個叫時鐘的函數,所 以VTREG符號 Clock 后面跟一個后引號(’)。 </p><p> 現在運行TRAFFIC 應用程序。允許查看—周期窗口更新,在程序執(zhí)行期間,通過觀察窗口查看交通燈。 </p><p> 1 號串口窗口顯示了 printf 的輸出,并且允許你輸入下
25、表里描述的交通燈控制器的命令。 </p><p> 設置時間在開始/結束時間段以外,讓黃色燈閃爍。 </p><p><b> RTX 內核調試 </b></p><p> 一個RTX應用程序能夠使用同標準8051 應用程序相同的方法和命令進行測試。當你在目標選項—目標里選擇了一種操作系統(tǒng),μVision2 能夠允許附加的調試特性:一個對
26、話框列出了操作系統(tǒng)狀態(tài),并且當一個任務是活躍的時候,你可以應用_TaskRunning_調試函數來終止程序的運行。 </p><p> 下面的部分通過TRAFFIC例程來解釋RTX的調試。 </p><p> 停止程序的運行,復位CPU,取消所有斷點。 </p><p> 一個RTX-51應用可以象標準應用一樣使用相同的方式來測試。你可以打開源文件,設置斷點,
27、單步執(zhí)行。TRAFFIC應用從任務0 初始化 開始啟動。 </p><p> 通過μVision2 可以完全清楚的了解內核。你可以使用菜單命令外設—RTX Tiny任務列表來顯示任務狀態(tài)。 </p><p> 對話框RTX Tiny 任務列表向你顯示了如下信息: </p><p> RTX-51 Tiny 包含了一個有效地堆棧管理器,該管理器在“RTX51 T
28、iny”用戶指南 第五章:RTX51 Tiny,堆棧管理器中被解釋。 </p><p> 該手冊提供了詳細的堆棧值的信息。</p><p> 只有當在_TakRunning_調試函數聲明里指定的任務正在運行時,調試—斷點對話框允許你定義停止程序運行的斷點。參考 “預定義函數”,可以找到關于_TakRunning_調試函數的詳細描述。 </p><p> 僅僅當
29、此刻正在運行的任務是燈的時候,在signalon函數里的斷點才會停止程序的執(zhí)行。</p><p> 附件2:外文原文(復印件)</p><p> RTX-51 Real-Time</p><p> Operating System</p><p> RTX51 is a multitasking real-time operating
30、 system for the 8051 family. RTX51simplifies system and software design of complex and time-critical projects.RTX51 is a powerful tool to manage several jobs (tasks) on a single CPU. Thereare two distinct versions of RTX
31、51:</p><p> RTX51 Full which performs both round-robin and preemptive task switchingwith 4 task priorities and can be operated with interrupt functions in parallel.RTX51 supports signal passing; message pas
32、sing with a mailbox system andsemaphores. The os_wait function of RTX51 can wait for the following events:interrupt; timeout; signal from task or interrupt; message from task or interrupt;semaphore.RTX51 Tiny which is a
33、subset of RTX51 Full. RTX51 Tiny easily runs onsingle-chip systems without off-chip me</p><p> Introduction</p><p> Many microcontroller applications require simultaneous execution of multiple
34、jobs or tasks. For such applications, a real-time operating system (RTOS) allowsflexible scheduling of system resources (CPU, memory, etc.) to several tasks.RTX-51 implements a powerful RTOS that is easy to use. RTX-51 w
35、orks withall 8051 derivatives.</p><p> You write and compile RTX-51 programs using standard C constructs andcompiling them with C51. Only a few deviations from standard C are requiredin order to specify the
36、 task ID and priority. RTX-51 programs also require thatyou include the RTX51.H or RTX51TNY.H header file. When you select in theμVision2 dialog Options for Target - Target the operating system, the linker addsthe approp
37、riate RTX-51 library file.</p><p> Single Task Program</p><p> A standard C program starts execution with the main function. In an embeddedapplication, main is usually coded as an endless loop
38、 and can be thought of as asingle task that is executed continuously. For example:</p><p> Round-Robin Task Switching</p><p> RTX51 Tiny allows a quasi-parallel, simultaneous execution of seve
39、ral tasks.Each task is executed for a predefined timeout period. A timeout suspends theexecution of a task and causes another task to be started. The following exampleuses this round-robin task switching technique.</p
40、><p> Simple C Program using RTX51</p><p> RTX51 starts the program with task 0 (assigned to job0). The functionos_create_task marks task 1 (assigned to job1) as ready for execution. Thesetwo fun
41、ctions are simple count loops. After the timeout period has beencompleted, RTX51 interrupts job0 and begins execution of job1. This functioneven reaches the timeout and the system continues with job0.</p><p>
42、; The os_wait Function</p><p> The os_wait function provides a more efficient way to allocate the availableprocessor time to several tasks. os_wait interrupts the execution of the currenttask and waits for
43、 the specified event. During the time in which a task waits foran event, other tasks can be executed.</p><p> Wait for Timeout</p><p> RTX51 uses an 8051 timer in order to generate cyclic inte
44、rrupts (timer ticks).The simplest event argument for os_wait is a timeout, where the currentlyexecuting task is interrupted for the specified number of timer ticks. Thefollowing uses timeouts for the time delay.</p>
45、;<p> Program with os_wait Function</p><p> This program is similar to the previous example with the exception that job0 isinterrupted with os_wait after counter0 has been incremented. RTX51 waitsth
46、ree timer ticks until job0 is ready for execution again. During this time, job1 isexecuted. This function also calls os_wait with a timeout of 5 ticks. The result:counter0 is incremented every three ticks and counter1 is
47、 incremented every fivetimer ticks.</p><p> Wait for Signal</p><p> Another event for os_wait is a signal. Signals are used for task coordination: ifa task waits with os_wait until another tas
48、k issues a signal. If a signal waspreviously sent, the task is immediately continued.</p><p> Program with Wait for Signal.</p><p> In this example, task 1 waits for a signal from task 0 and t
49、herefore processes theoverflow from counter0.</p><p> Preemptive Task Switching</p><p> The full version of RTX51 provides preemptive task switching. This feature isnot included in RTX51 Tiny.
50、 It is explained here to provide a completeoverview of multitasking concepts.</p><p> In the previous example, task 1 is not immediately started after a signal hasarrived, but only after a timeout occurs fo
51、r task 0. If task 1 is defined with ahigher priority than task 0, by means of preemptive task switching, task 1 isstarted immediately after the signal has arrived. The priority is specified in thetask definition (priorit
52、y 0 is the default value).</p><p> RTX51 Technical Data</p><p> Overview of RTX51 Routines</p><p> The following table lists some of the RTX-51 functions along with a briefdescri
53、ption and execution timing (for RTX-51 Full).</p><p> Function Description These functions are available only in RTX-51 Full.</p><p> Additional debug and support functions in RTX-51 Full incl
54、ude the following:</p><p> CAN Functions</p><p> The CAN functions are available only with RTX-51 Full. CAN controllerssupported include the Philips 82C200 and 80C592 and the Intel 82526. More
55、CAN controllers are in preparation.on</p><p> TRAFFIC: RTX-51 Tiny Example Program</p><p> The TRAFFIC example is a pedestrian traffic light controller that shows theusage of multitasking RTX-
56、51 Tiny Real-time operating system. During a userdefinedtime interval, the traffic light is operating. Outside this time interval, theyellow light flashes. If a pedestrian pushes the request button, the traffic lightgoes
57、 immediately into walk state. Otherwise, the traffic light workscontinuously.</p><p> Traffic Light Controller Commands</p><p> The serial commands that TRAFFIC supports are listed in the foll
58、owing table.These commands are composed of ASCII text characters. All commands mustbe terminated with a carriage return.</p><p><b> Software</b></p><p> The TRAFFIC application is
59、composed of three files that can be found in the</p><p> \KEIL\C51\EXAMPLES\TRAFFIC folder.</p><p> TRAFFIC.C contains the traffic light controller program that is divided into the following t
60、asks:</p><p> Task 0 init: initializes the serial interface and starts all other tasks. Task 0deletes itself since initialization is needed only once.</p><p> Task 1 command: is the command pr
61、ocessor for the traffic light controller.This task controls and processes serial commands received.</p><p> Task 2 clock: controls the time clock.</p><p> Task 3 blinking: flashes the yellow l
62、ight when the clock time is outside theactive time range.</p><p> Task 4 lights: controls the traffic light phases while the clock time is in theactive time range (between the start and end times).</p>
63、;<p> Task 5 keyread: reads the pedestrian push button and sends a signal to thetask lights.</p><p> Task 6 get_escape: If an ESC character is encountered in the serial streamthe command task gets a
64、 signal to terminate the display command.</p><p> SERIAL.C implements an interrupt driven serial interface. This file contains thefunctions putchar and getkey. The high-level I/O functions printf and getlin
65、ecall these basic I/O routines. The traffic light application will also operatewithout using interrupt driven serial I/O. but will not perform as well.</p><p> GETLINE.C is the command line editor for chara
66、cters received from the serial</p><p> port. This source file is also used by the MEASURE application.</p><p> TRAFFIC Project</p><p> Open the TRAFFIC.UV2 project file that islo
67、cated in \KEIL\C51\EXAMPLES\TRAFFIC folderwith μVision2. The source files for theTRAFFIC project will be shown in theProject Window – Files page.</p><p> The RTX-51 Tiny Real-Time OS is selected under Optio
68、ns for Target.</p><p> Build the TRAFFIC program with Project - Build or the toolbar button.</p><p> Run the TRAFFIC Program</p><p> You can test TRAFFIC with theμVision2 simulat
69、or.</p><p> The watch variables shown on the rightallow you to view port status that drivesthe lights.</p><p> The push_keysignal functionsimulates thepedestrianpush key thatswitches thelight
70、system towalk state.This functionis called withthe Push forUse Debug – Function Editor to open TRAFFIC.INC. This file is specified</p><p> the Push forWalk toolbarbutton.</p><p> under Options
71、 for Target – Debug – Initialization File and defines thesignal function push_key, the port initialization and the toolbar button.</p><p> Note: the VTREG symbol Clock is literalized with a back quote (`),s
72、ince there is a C function named clock in the TRAFFIC.C module.Refer to “Literal Symbols” on page 121 for more information.</p><p> Now run the TRAFFIC application. Enable View – Periodic WindowUpdate to vi
73、ew the lights in the watch window during program execution.</p><p> The Serial Window #1 displays the printf output and allows you to enterthe traffic light controller commands described in the table above.
74、</p><p> Set the clocktime outside ofthe start/endtime intervalto flash theyellow light.</p><p> RTX Kernel Aware Debugging</p><p> A RTX application can be tested with the same
75、methods and commands asstandard 8051 applications. When you select an Operating System underOptions for Target – Target, μVision2 enables additional debugging features:a dialog lists the operating system status and with
76、the _TaskRunning_ debugfunction you may stop program execution when a specific task is active.</p><p> The following section exemplifies RTX debugging with the TRAFFIC example.</p><p> Stop pr
77、ogram execution, reset the CPU and kill all breakpoints.</p><p> An RTX-51 application can be tested in the same way as standardapplications. You may open source files, set break points and single stepthrou
78、gh the code. The TRAFFIC application starts with task 0 init.</p><p> μVision2 is completely kernel aware. You may display the task statuswith the menu command Peripherals – RTX Tiny Tasklist.</p>&l
79、t;p> The dialog RTX51 Tiny Tasklist gives you the following information:</p><p> RTX-51 Tiny contains an efficient stack management that is explained in the "RTX51 Tiny" User’sGuide, Chapter 5
80、: RTX51 Tiny, Stack Management.</p><p> This manual provides detailed information about the Stack value.</p><p><b> S</b></p><p> The Debug – Breakpoints… dialog allo
81、ws you to define breakpoints that stopthe program execution only when the task specified in the _TaskRunning_debug function argument is Running. Refer to “Predefined Functions” on page134 for a detailed description of th
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 外文翻譯--rtx-51實時操作系統(tǒng)
- 單片機課程設計--基于多任務實時操作系統(tǒng)rtx51的交通燈系統(tǒng)
- 基于RTX實時操作系統(tǒng)的雷達軟件的設計與研究.pdf
- nucleus 操作系統(tǒng)外文翻譯
- 實時操作系統(tǒng)設計
- 外文翻譯--自動焊接操作系統(tǒng)
- 外文翻譯--自動焊接操作系統(tǒng)
- 外文翻譯--自動焊接操作系統(tǒng)
- [雙語翻譯]--外文翻譯---dsp上的通用實時操作系統(tǒng)的設計和實現
- 外文翻譯--自動焊接操作系統(tǒng).doc
- 外文翻譯--自動焊接操作系統(tǒng)(英文)
- 外文翻譯--自動焊接操作系統(tǒng).doc
- 外文翻譯--自動焊接操作系統(tǒng).doc
- 外文翻譯--自動焊接操作系統(tǒng).doc
- 外文翻譯--自動焊接操作系統(tǒng).doc
- [雙語翻譯]--外文翻譯---dsp上的通用實時操作系統(tǒng)的設計和實現(英文)
- 實時操作系統(tǒng)IPC研究.pdf
- 2009年--外文翻譯---dsp上的通用實時操作系統(tǒng)的設計和實現
- 2009年--外文翻譯---dsp上的通用實時操作系統(tǒng)的設計和實現
- rtx實時擴展子系統(tǒng)簡介
評論
0/150
提交評論