160 likes | 608 Views
Free RTOS. Nguyễn Đăng Khoa 50701136 Nguyễn Cao Trọng Luân 50701396 . Nội dung. Giới thiệu FreeRTOS Đặc điểm Các đối tượng Các kiến trúc support. Giới thiệu FreeRTOS. Đ ược nghiên cứu bởi Richard Barry với tên ban đầu là FRTOS07
E N D
Free RTOS NguyễnĐăngKhoa 50701136 Nguyễn Cao TrọngLuân 50701396
Nội dung • GiớithiệuFreeRTOS • Đặcđiểm • Cácđốitượng • Cáckiếntrúc support
GiớithiệuFreeRTOS • Đượcnghiêncứubởi Richard Barry vớitên ban đầu là FRTOS07 • FreeRTOSlàhệthờigianthực, preemtivevàhướngđếncácthiếtbịnhúngMiễnphí, mãnguốnmở • Làmột portable, open source, mini real-time kernel cóthểvậnhànhtrongchếđộưutiêntrướccũngnhưcósựphốihợp • Phiênbảnmớinhất V7.0.0 (04/2011) • License: Modified GPL • Trangchủ: http://www.freertos.org/
Đặcđiểm • Thờigianthực • Vậnhànhtheopreemtivehoặc cooperative • Dynamic Scheduling • Giaotiếptiếntrình: Queuing vàSynchronizition • Tránh blocking và deadlock • Xửlý Critical Section • Scheduler Suspension • Cấpphátbộnhớ • Đảongượcđộưutiên
Task Management • TCB (Task Control Block)
Task Management • Cáctrạngtháicủa Task
Co-routines • Cócácđặcđiểmnhưmột task • Đượcsửdụngtrênnhữngkiếntrúc processor nhỏvàcó dung lượng RAM hạnchế. • Cáctrạngtháicủa Co-routine
Queue • Liênlạcgiữacác task • Gửithông tin giữacác task, hoặc interrupt với task
Binary Semaphore • Đượcsửdụngchomụcđíchloạitrừnhauvàđồngbộ. • Tuynhiên Binary Semaphore thườngđượcsửdụngchomụcđíchđồngbộ.
Counting Semaphore • Đếmsựkiện • Quảnlýtàinguyên
Mutexes • Làmột Binary Semaphore, cócơchếthừakếđộưutiên • Sửdụng 1 “token” đểbảovệtàinguyên • Sửdụngchungcáchàm API vớicác Semaphore • Một task muốnsửdụngtàinguyênphảicó “token”, nếukhôngcósẵnsẽrơivàotrạngthái block.
Recursive Mutexes • Mutexsẽkhông available chođiếnkhiđượcgọihàmxSemaphoreGiveRecursive()chomỗilầnlấythànhcôngxSemaphoreTakeRecursive() • Các task mộtkhiđãlấy semaphore thìnhấtthiếtphảitrảlạikhimà task đókhôngsửdụngsemaphrenữa • Khôngđượcsửdụngtrong interrupt service routines
Cáckiếntrúchỗtrợ • HiệntạiFreeRTOSđãhỗtrợđến 27 kiếntrúc: • Altera: NIOS II • Atmel: SAM3, SAM7, AT91,AVR32 • Microchip: PIC32,PIC24 dsPIC, … • NXP: LPC1700, LPC2000 • Renesas: RX600, SH,H8 • ST: STM32, STR7,STR9 • … • Cómộtcộngđồng support rộnglớn • http://sourceforge.net/projects/freertos/forums • http://www.freertos.org/