quynhnga_cp
New Member
Link tải luận văn miễn phí cho ae Kết Nối
Mục lục
Lời Thank .......................................................................................................... 1
Mục lục................................................................................................................ 2
Danh mục hình vẽ và bảng biểu........................................................................ 4
Mở đầu ................................................................................................................ 5
Phần I: Tổng quan về hệ điều hành thời gian thực ........................................ 6
I. Tổng quan các loại hệ điều hành .............................................................. 6
1. Hệ điều hành cho Mainframe................................................................ 7
2. Hệ điều hành cho các Server................................................................. 8
3. Hệ điều hành đa vi xử lý ....................................................................... 8
4. Hệ điều hành cho máy tính cá nhân ...................................................... 8
5. Hệ điều hành thời gian thực .................................................................. 8
6. Hệ điều hành nhúng .............................................................................. 9
7. Hệ điều hành cho thẻ thông minh ......................................................... 9
II. Tìm hiểu hệ điều hành thời gian thực ................................................. 10
1. Hệ điều hành thời gian thực (RTOS) .................................................. 10
2. Các loại hệ điều hành thời gian thực................................................... 13
3. Tầm quan trọng hệ điều hành thời gian thực ...................................... 14
4. Các hệ điều hành thời gian thực phổ biến........................................... 15
Phần II: Tìm hiểu chi tiết về FreeRTOS........................................................ 17
I. Tổng quan về FreeRTOS ........................................................................ 17
1. Khái niệm FreeRTOS.......................................................................... 17
2. Các đặc điểm của FreeRTOS .............................................................. 18
3. Các vấn đề cơ bản trong FreeRTOS ................................................... 20
4. Cách phân phối tài nguyên của FreeRTOS......................................... 23
5. So sánh hệ FreeRTOS với hệ điều hành thời gian thực uCOS ........... 27
II. Các file trong kernel của FreeRTOS................................................... 29
1. Các file chính trong kernel.................................................................. 29
2. Các file còn lại trongkernel của FreeRTOS........................................ 34
III. Port FreeRTOS lên vi điều khiển PIC18F452 .................................... 35
1. Một số chú ý khi port FreeRTOS lên vi điều khiển............................ 35
2. Các file cần để port lên vi điều khiển PIC18 sử dụng MPLAB.......... 38
Ket-noi.com kho tai lieu mien phi Ket-noi.com kho tai lieu mien phiĐồ án tốt nghiệp
Nghiên cứu và port hệ điều hành thời gian thực FreeRTOS lên vi điều khiển PIC 3
Phần III: Mô phỏng và giao diện hỗ trợ port FreeRTOS lên PIC .............. 42
I. Mô phỏng port FreeRTOS lên vi điều khiển PIC................................... 42
1. Phân tích bài toán mô phỏng............................................................... 42
2. Triển khai bài toán và kết quả mô phỏng............................................ 43
II. Giao diện hỗ trợ port FreeRTOS lên PIC............................................ 44
1. Ý tưởng, mục đích và nhiệm vụ của giao diện hỗ trợ......................... 44
2. Trình bày cụ thể về các bước cài đặt và chạy thử............................... 44
Kết luận............................................................................................................. 45
Tài liệu tham khảo ........................................................................................... 46
Phụ lục............................................................................................................... 47
I. Giải thích rõ các file trong FreeRTOS.................................................... 47
1. Các ký hiệu viết tắt trong các hàm và biến ......................................... 47
2. Các file chính cần có trong lõi FreeRTOS.......................................... 47
3. Các file còn lại trong kernel của FreeRTOS....................................... 57
4. Các file cần để port FreeRTOS lên vi điều khiển ............................... 59
II. Giải thích rõ về giao diện.................................................................... 62
Các tài liệu sẽ thêm .......................................................................................... 63
I. Example.ppt .......................... Lỗi! Thẻ đánh dấu không được xác định.
II. RTOS.pdf .......................... Lỗi! Thẻ đánh dấu không được xác định.
III. Rtos ppts.ppt........................................................................................ 63
IV. Các file khác...................... Lỗi! Thẻ đánh dấu không được xác định.
V. Làm cuối tuần.................... Lỗi! Thẻ đánh dấu không được xác định.
VI. Việc làm ngày thứ 2 .......... Lỗi! Thẻ đánh dấu không được xác định.Đồ án tốt nghiệp
Nghiên cứu và port hệ điều hành thời gian thực FreeRTOS lên vi điều khiển PIC 4
Danh mục hình vẽ và bảng biểu
Hình 1: Sơ đồ hệ điều hành............................................................................................. 6
Hình 2: Sơ đồ hệ thống thời gian thực trong ô tô ........................................................... 9
Hình 3: Hệ điều hành thời gian thực trong điều khiển.................................................. 11
Hình 4: Sơ đồ chức năng của hệ điều hành thời gian thực ........................................... 11
Hình 5: Trạng thái các tác vụ........................................................................................ 12
Hình 6: Sơ đồ phát triển của FreeRTOS....................................................................... 17
Hình 7: Sơ đồ phân chia thời gian các tác vụ thực hiện ............................................... 21
Hình 8: Sơ đồ chuyển giao các tác vụ........................................................................... 21
Hình 9: Sơ đồ phân chia các sự kiện theo thời gian...................................................... 23
Hình 10: Sơ đồ lập lịch của ví dụ về ưu tiên kế thừa.................................................... 26
Hình 11: Bảng so sánh thời gian đáp ứng 1.................................................................. 28
Hình 12: Bảng so sánh thời gian đáp ứng 2.................................................................. 28
Hình 13: Sơ đồ các file và thư mục trong gói FreeRTOS.zip tải về............................. 29
Hình 14: Ví dụ về đánh dấu hoạt động của kernel........................................................ 31
Hình 15: Sơ đồ chuyển đổi ngữ cảnh............................................................................ 39
Hình 17: Mô phỏng trên Proteus................................................................................... 44
Bảng 1: Bảng so sánh hai loại hệ điều hành thời gian thực.......................................... 13
Bảng 2: Các hỗ trợ khác nhau từ FreeRTOS và OpenRTOS........................................ 18
Bảng 3: Bảng phân phối RAM của heap1 .................................................................... 24
Bảng 4: Bảng phân phối RAM của heap2 .................................................................... 25
Bảng 5: Bảng phân chi tiết các tiến trình...................................................................... 26
Bảng 6: So sánh lượng RAM cung cấp giữa FreeRTOS và uCOS............................... 27
Bảng 7: Mô tả chi tiết về các task mô phỏng................................................................ 43
Ket-noi.com kho tai lieu mien phi Ket-noi.com kho tai lieu mien phiĐồ án tốt nghiệp
Nghiên cứu và port hệ điều hành thời gian thực FreeRTOS lên vi điều khiển PIC 5
Mở đầu Chú thích [PNH1]: của việc port lên VDK và s Nói rõ v ử dụng những ề ý nghĩa
phần mềm freeĐồ án tốt nghiệp
Nghiên cứu và port hệ điều hành thời gian thực FreeRTOS lên vi điều khiển PIC 6
Phần I: Tổng quan về hệ điều hành thời gian thực
I. Tổng quan các loại hệ điều hành
Những hệ thống máy tính bao gồm một hay nhiều bộ vi xử lý, bộ nhớ chính,
bàn phím và nhiều thiết bị vào ra. Tất cả trong một hệ thống phức tạp. Viết chương
trình kiểm soát và sử dụng tất cả chương trình một cách chính xác, tối ưu là công việc
khó vì thế máy tính được trang bị lớp phần mềm gọi là hệ điều hành [2], nhiệm vụ
của nó là quản lý mọi thiết bị và cung cấp các chương trình ứng dụng với giao diện
đơn giản hơn xuống phần cứng.
Hình 1: Sơ đồ hệ điều hành
Hệ điều hành có thể nhìn từ hai quan điểm [2]:
· Quản lý tài nguyên (resource manages)
· Máy mở rộng (extended machines).
Ở quan điểm quản lý tài nguyên, công việc của hệ điều hành là quản lý các phần
khác nhau của hệ thống một cách hiệu quả. Tài nguyên của hệ thống (CPU, bộ nhớ,
thiết bị ngoại vi, ...) vốn rất giới hạn, nhưng trong các hệ thống đa nhiệm, nhiều người
sử dụng có thể đồng thời yêu cầu nhiều tài nguyên. Để thỏa mãn yêu cầu sử dụng chỉ
với tài nguyên hữu hạn và nâng cao hiệu quả sử dụng tài nguyên, hệ điều hành cần
phải có cơ chế và chiến lược thích hợp để quản lý việc phân phối tài nguyên. Ngoài
yêu cầu dùng chung tài nguyên để tiết kiệm chi phí, người sử dụng còn cần chia
Ứng dụng
Ket-noi.com kho tai lieu mien phi Ket-noi.com kho tai lieu mien phiĐồ án tốt nghiệp
Nghiên cứu và port hệ điều hành thời gian thực FreeRTOS lên vi điều khiển PIC 7
sẻ thông tin (tài nguyên phần mềm), khi đó hệ điều hành cần đảm bảo việc truy xuất
đến các tài nguyên này là hợp lệ, không xảy ra tranh chấp, mất đồng nhất.
Ở quan điểm là các máy mở rộng, công việc của hệ điều hành là cung cấp cho
người sử dụng các máy ảo (virtural machine) sử dụng thuận tiện hơn các máy thực
(actual machine). Hệ điều hành làm ẩn đi các chi tiết phần cứng, người sử dụng được
cung cấp giao diện đơn giản, dễ hiểu và không phụ thuộc vào thiết bị cụ thể.Thực tế, ta
có thể xem hệ điều hành như hệ thống bao gồm nhiều máy tính trừu tượng xếp thành
nhiều lớp chồng lên nhau, máy tính mức dưới phục vụ cho máy tính mức trên. Lớp
trên cùng là giao diện trực quan nhất để chúng ta điều khiển.
Ngoài ra hệ điều hành theo có 4 chức năng sau:
· Quản lý quá trình (process management): hệ điều hành quản lý các tiến
trình, sắp xếp cho tiến trình nào chạy tiến trình nào dừng, phối hợp nhịp
nhàng các tiến trình.
· Quản lý bộ nhớ (memory management): hệ điều hành quản lý phân phối tài
nguyên nhớ cho các tiến trình chạy.
· Quản lý hệ thống lưu trữ (storage management): hệ điều hành quản lý lưu
trữ trên các ổ đĩa, đĩa CD.
· Giao tiếp với người dùng (user interaction)
Có 7 loại hệ điều hành [2]:
· Hệ điều hành cho Mainframe
· Hệ điều hành cho Server
· Hệ điều hành đa vi xử lý
· Hệ điều hành cho máy tính cá nhân
· Hệ điều hành thời gian thực
· Hệ điều hành nhúng
· Hệ điều hành cho thẻ thông minh
1. Hệ điều hành cho Mainframe
Hệ điều hành cho máy Mainframe là hệ điều hành ở mức cao nhất, loại máy
tính này được thấy nhiều ở các trung tâm cơ sở dữ liệu lớn. Những máy tính này phân
biệt với máy tính cá nhân ở giới hạn xử lý và sức chứa của chúng. Một máy tính
Mainframe với hàng nghìn đĩa và hàng nghìn gigabybe dữ liệu là điều bình thường hầu
như không có máy tính cá nhân thông thường nào có những chức năng mạnh này. Hầu
hết mainframe dùng cho những ứng dụng rất lớn.
Hệ điều hành cho mainframe có tính định hướng cao cho việc xử lý nhiều việc
mà mỗi việc cần lượng lớn I/O. Chúng thường được sử dụng ở những kiểu: mẻ, quảnĐồ án tốt nghiệp
Nghiên cứu và port hệ điều hành thời gian thực FreeRTOS lên vi điều khiển PIC 8
lý xử lý và phân chia thời gian. Hệ thống mẻ là hệ thống mà những công việc xử lý
đều đặn không có bất kỳ ảnh hưởng nào đến người sử dụng hiện tại. Nó được vận dụng
để giải quyết một số lượng lớn các yêu cầu nhỏ, ví dụ như quá trình kiểm tra ở nhà
băng hay sân bay. Mỗi phần của công việc thì nhỏ nhưng hệ thống phải xử lý hàng
trăm hay hàng nghìn công việc nhỏ trên một giây. Hệ thống chia sẻ thời gian chấp
nhận điều khiển từ xa để thực hiện công việc trên máy tính trong 1 lần, như những yêu
cầu về dữ liệu. Những chương trình này gần với: hệ điều hành mainframe thường thực
hiện tất cả. Ví dụ về hệ điều hành mainframe là OS/390, thế hệ sau của OS/360.
2. Hệ điều hành cho các Server
Dưới hệ điều hành mainframe một cấp là hệ điều hành chạy trên các server, một
trong các loại máy tính cá nhân rất lớn, những máy trạm, hay kiểu mainframe. Chúng
phục vụ nhiều user trong một thời điểm qua mạng và chấp nhận để các user chia sẻ
nguồn phần cứng hay phần mềm. Các Server có thể cung cấp dịch vụ in ấn, dịch vụ
file hay dịch cụ web. Các cung cấp Internet chạy trên nhiều server để hỗ trợ khách
hàng và các Website sử dụng trong server để lưu trữ các trang Web và trả lời các yêu
cầu đến. Điển hình là các hệ điều hành UNIX và Window2000. Linux cũng được sử
dụng cho các server.
3. Hệ điều hành đa vi xử lý
Cách kết hợp nhiều tổ hợp máy tính phổ biến hiện nay là kết nối nhiều CPU
trong một hệ thống. Phụ thuộc vào sự chuẩn xác kết nối thế nào và chia sẻ cái gì,
những hệ thống này được gọi là máy tính song song, hệ đa máy tính hay hệ đa xử lý.
Chúng cần những hệ điều hành đặc biêt nhưng thường những biến đổi này diễn ra trên
hệ điều hành server, với những chức năng đặc biệt cho giao tiếp và kết nối.
4. Hệ điều hành cho máy tính cá nhân
Loại tiếp theo là hệ điều hành cho máy tính cá nhân. Công việc của nó là cung
cấp giao diện tốt cho một người sử dụng. Nó được dùng chủ yếu để soạn thảo văn bản,
sửdụng bảng tính, và truy cập Internet. Ví dụ như Windows98, hệ điều hành
Macintosh và Linux. Hệ điều hành máy tính cá nhân được biết đến rất rộng rãi do chỉ
cần ít những chỉ dẫn. Trên thực tế, nhiều người có trình độ khác nhau đều có thể sử
dụng được.
5. Hệ điều hành thời gian thực
Một loại hệ điều hành khác là hệ điều hành thời gian thực. Hệ điều hành này
được mô tả là quản lý thời gian như thông số chìa khóa. Ví dụ như trong hệ thống điều
khiển công nghiệp, máy tính thời gian thực cần thu thập dữ liệu về quá trình sản
xuất và sử dụng dữ liệu đó để điều khiển các máy trong xí nghiệp theo đó các deadline
Ket-noi.com kho tai lieu mien phi Ket-noi.com kho tai lieu mien phiĐồ án tốt nghiệp
Nghiên cứu và port hệ điều hành thời gian thực FreeRTOS lên vi điều khiển PIC 9
cứng phải được thỏa mãn. Một ví dụ khác với dây chuyền lắp ráp ôtô, một hành động
nhất định phải được thực hiện thời điểm nhất định nào đó, nếu robot thực hiện sớm
quá hay muộn quá thì chiếc xe sẽ bị lỗi có thể dẫn đến phá hủy. Trong hệ thống mà
hành động buộc phải thực hiện vào thời điểm nhất định (hay trong khoảng cho phép)
thì đó là hệ thống thời gian thực cứng. Một hệ thời gian thực khác là hệ thời gian thực
mềm, trong đó có những đáp ứng deadline có thể không thỏa mãn toàn bộ, hệ truyền
tiếng nói số hay đa phương tiện là một ví dụ cho hệ này. Điển hình cho hệ điều hành
thời gian thực là VxWorks và QNX.
Hình 2: Sơ đồ hệ thống thời gian thực trong ô tô
6. Hệ điều hành nhúng
Tiếp tục với hệ nhỏ hơn, chúng ta đến với những máy tính palmtop và hệ
nhúng. Palmtop hay PDA là loại máy tính nhỏ hoạt động với số lượng nhỏ các chương
trình. Hệ nhúng chạy trên những máy tính điều khiển các thiết bị nói chung không
giống với máy tính, như TV sets, lò vi sóng, điện thoại di động. chúng thường có tính
thời gian thực nhưng kích cỡ, bộ nhớ và sự hạn chệ năng lượng làm chung đặc biệt.
Những hệ thông dụng là PalmOS và Windows CE.
7. Hệ điều hành cho thẻ thông minh
Hệ điều hành nhỏ nhất chạy trên các thẻ thông minh, như credit card, thiết bị
bao gồm chip CPU. Chúng quản lý rất nghiêm ngặt năng lượng sử dụng và cách nénĐồ án tốt nghiệp
Nghiên cứu và port hệ điều hành thời gian thực FreeRTOS lên vi điều khiển PIC 10
bộ nhớ. Một số hệ chỉ sử dụng cho một chương trình duy nhất như thanh toán điện tử,
nhưng những hệ khác phục vụ nhiều chương trình trong cùng một thẻ thông minh. Đó
thường là những hệ thống độc quyền.
Một số thẻ thông minh được viết trên Java, trên ROM của thẻ thông minh cần
chương trình dịch cho JVM. Java applet được tải về thẻ và được dịch ra để sử dụng.
Một số thẻ có thể chạy nhiều Java applet trong cùng một thời điểm, để quản lý nhiều
chương trình cần bộ lập lịch. Cần quản lý và đảm bảo cho hệ thống khi có hai hay
nhiều applet chạy trong cùng một thời điểm. Những vấn đề này cần được quản lý bởi
hệ điều hành hiện tại trên thẻ.
II. Tìm hiểu hệ điều hành thời gian thực
Trong phần này ta sẽ đi sâu vào tìm hiểu hệ điều hành thời gian thực với khái
niệm, các đặc điểm và tầm quan trọng của hệ điều hành thời gian thực trong thực tế.
Từ đó liên hệ trình bày cụ thể về hệ điều hành thời gian thực mã nguồn mở FreeRTOS
và các vấn đề cơ bản trong đó
1. Hệ điều hành thời gian thực (RTOS)
a) Khái niệm hệ điều hành thời gian thực
“A real-time system is one in which the correctness of the system depends not
only on the logical results, but also on the time at which the results are produced” [5].
Có thể dịch: hệ thống thời gian thực là hệ thống mà sự hoạt động tin cậy của nó không
chỉ phụ thuộc vào sự chính xác của kết quả, mà còn phụ thuộc vào thời điểm đưa ra kết
quả, hệ thống có lỗi khi yêu cầu về thời gian không được thoả mãn.
Nghiên cứu và port hệ điều hành thời gian thực FreeRTOS lên vi điều khiển PIC 57
o pvItemToQueue trỏ đến mục sẽ được đặt vào hàng đợi. Dung lượng của
mục mà hàng đợi sẽ giữ được định nghĩa khi hàng đợi được tạo ra, do đó
nhiều byte sẽ được sao chép từ pvItemToQueue vào vùng dự trữ của
hàng đợi.
o xCoRoutinePreviouslyWoken: cho ISR có thể đưa dữ liệu vào cùng một
hàng đợi trong nhiều thời điểm từ các ngắt đơn. Lời gọi đầu luôn chuyển
vào pdFALSE. Các lời gọi sau chuyển vào giá trị từ lời gọi trước
o Trả lại giá trị pdTRUE nếu co-routine được đánh thức bởi đưa dữ liệu
vào hàng đợi. Điều này được sử dụng bởi ISR để tiên liệu nếu chuyển
ngữ cảnh được yêu cầu theo các ngắt.
· vCoRoutineAddToDelayedList: Hàm này được tạo ra cho những sử dụng nội
tại chỉ bởi các co-routine macro. Các macro nguyên thủy của thực thi coroutie đòi hỏi có những nguyên mẫu ở đây. Hàm này không được sử dụng
bởi người viết ứng dụng. Hàm này loại bỏ co-routine hiện thời từ list sẵn
sàng và đặt chúng vào list trễ thích hợp.
e) portable.h
Đây có thể coi là file header của port.c, các hàm này sẽ được tìm hiểu kỹ hơn
trong phần port.c (Phần II.III.2):
· *pxPortInitialiseStack()
· xPortStartScheduler()
· vPortEndScheduler()
Bên cạnh đó file làm một số nhiệm vụ quan trọng cho việc tạo project:
· Khai báo đường dẫn vào file portmacro.h cho từng project riêng biệt cho
phù hợp với vi điều khiển và chương trình dịch.
· Với một số vi điều khiển file mày con include thêm một số file cần thiết để
tạo project. Ví dụ như tạo project cho PC ngoài tạo đường dẫn đến
portmacro.h còn phải include thêm file frconfig.h.
Ngoài ra còn đặt ra các chương trình con quản lý bộ nhớ yêu cầu cho port
· *prvPortMalloc()
· vPortFree()
· vPortInitialiseBlocks()
3. Các file còn lại trong kernel của FreeRTOS
Các file còn lại trong kernel là ba file:
· project.h: định nghĩa các kiểu ban đầu mà các hàm thực hiện phải phù hợp
· queue.h:
Do Drive thay đổi chính sách, nên một số link cũ yêu cầu duyệt download. các bạn chỉ cần làm theo hướng dẫn.
Password giải nén nếu cần: ket-noi.com | Bấm trực tiếp vào Link để tải:
Mục lục
Lời Thank .......................................................................................................... 1
Mục lục................................................................................................................ 2
Danh mục hình vẽ và bảng biểu........................................................................ 4
Mở đầu ................................................................................................................ 5
Phần I: Tổng quan về hệ điều hành thời gian thực ........................................ 6
I. Tổng quan các loại hệ điều hành .............................................................. 6
1. Hệ điều hành cho Mainframe................................................................ 7
2. Hệ điều hành cho các Server................................................................. 8
3. Hệ điều hành đa vi xử lý ....................................................................... 8
4. Hệ điều hành cho máy tính cá nhân ...................................................... 8
5. Hệ điều hành thời gian thực .................................................................. 8
6. Hệ điều hành nhúng .............................................................................. 9
7. Hệ điều hành cho thẻ thông minh ......................................................... 9
II. Tìm hiểu hệ điều hành thời gian thực ................................................. 10
1. Hệ điều hành thời gian thực (RTOS) .................................................. 10
2. Các loại hệ điều hành thời gian thực................................................... 13
3. Tầm quan trọng hệ điều hành thời gian thực ...................................... 14
4. Các hệ điều hành thời gian thực phổ biến........................................... 15
Phần II: Tìm hiểu chi tiết về FreeRTOS........................................................ 17
I. Tổng quan về FreeRTOS ........................................................................ 17
1. Khái niệm FreeRTOS.......................................................................... 17
2. Các đặc điểm của FreeRTOS .............................................................. 18
3. Các vấn đề cơ bản trong FreeRTOS ................................................... 20
4. Cách phân phối tài nguyên của FreeRTOS......................................... 23
5. So sánh hệ FreeRTOS với hệ điều hành thời gian thực uCOS ........... 27
II. Các file trong kernel của FreeRTOS................................................... 29
1. Các file chính trong kernel.................................................................. 29
2. Các file còn lại trongkernel của FreeRTOS........................................ 34
III. Port FreeRTOS lên vi điều khiển PIC18F452 .................................... 35
1. Một số chú ý khi port FreeRTOS lên vi điều khiển............................ 35
2. Các file cần để port lên vi điều khiển PIC18 sử dụng MPLAB.......... 38
Ket-noi.com kho tai lieu mien phi Ket-noi.com kho tai lieu mien phiĐồ án tốt nghiệp
Nghiên cứu và port hệ điều hành thời gian thực FreeRTOS lên vi điều khiển PIC 3
Phần III: Mô phỏng và giao diện hỗ trợ port FreeRTOS lên PIC .............. 42
I. Mô phỏng port FreeRTOS lên vi điều khiển PIC................................... 42
1. Phân tích bài toán mô phỏng............................................................... 42
2. Triển khai bài toán và kết quả mô phỏng............................................ 43
II. Giao diện hỗ trợ port FreeRTOS lên PIC............................................ 44
1. Ý tưởng, mục đích và nhiệm vụ của giao diện hỗ trợ......................... 44
2. Trình bày cụ thể về các bước cài đặt và chạy thử............................... 44
Kết luận............................................................................................................. 45
Tài liệu tham khảo ........................................................................................... 46
Phụ lục............................................................................................................... 47
I. Giải thích rõ các file trong FreeRTOS.................................................... 47
1. Các ký hiệu viết tắt trong các hàm và biến ......................................... 47
2. Các file chính cần có trong lõi FreeRTOS.......................................... 47
3. Các file còn lại trong kernel của FreeRTOS....................................... 57
4. Các file cần để port FreeRTOS lên vi điều khiển ............................... 59
II. Giải thích rõ về giao diện.................................................................... 62
Các tài liệu sẽ thêm .......................................................................................... 63
I. Example.ppt .......................... Lỗi! Thẻ đánh dấu không được xác định.
II. RTOS.pdf .......................... Lỗi! Thẻ đánh dấu không được xác định.
III. Rtos ppts.ppt........................................................................................ 63
IV. Các file khác...................... Lỗi! Thẻ đánh dấu không được xác định.
V. Làm cuối tuần.................... Lỗi! Thẻ đánh dấu không được xác định.
VI. Việc làm ngày thứ 2 .......... Lỗi! Thẻ đánh dấu không được xác định.Đồ án tốt nghiệp
Nghiên cứu và port hệ điều hành thời gian thực FreeRTOS lên vi điều khiển PIC 4
Danh mục hình vẽ và bảng biểu
Hình 1: Sơ đồ hệ điều hành............................................................................................. 6
Hình 2: Sơ đồ hệ thống thời gian thực trong ô tô ........................................................... 9
Hình 3: Hệ điều hành thời gian thực trong điều khiển.................................................. 11
Hình 4: Sơ đồ chức năng của hệ điều hành thời gian thực ........................................... 11
Hình 5: Trạng thái các tác vụ........................................................................................ 12
Hình 6: Sơ đồ phát triển của FreeRTOS....................................................................... 17
Hình 7: Sơ đồ phân chia thời gian các tác vụ thực hiện ............................................... 21
Hình 8: Sơ đồ chuyển giao các tác vụ........................................................................... 21
Hình 9: Sơ đồ phân chia các sự kiện theo thời gian...................................................... 23
Hình 10: Sơ đồ lập lịch của ví dụ về ưu tiên kế thừa.................................................... 26
Hình 11: Bảng so sánh thời gian đáp ứng 1.................................................................. 28
Hình 12: Bảng so sánh thời gian đáp ứng 2.................................................................. 28
Hình 13: Sơ đồ các file và thư mục trong gói FreeRTOS.zip tải về............................. 29
Hình 14: Ví dụ về đánh dấu hoạt động của kernel........................................................ 31
Hình 15: Sơ đồ chuyển đổi ngữ cảnh............................................................................ 39
Hình 17: Mô phỏng trên Proteus................................................................................... 44
Bảng 1: Bảng so sánh hai loại hệ điều hành thời gian thực.......................................... 13
Bảng 2: Các hỗ trợ khác nhau từ FreeRTOS và OpenRTOS........................................ 18
Bảng 3: Bảng phân phối RAM của heap1 .................................................................... 24
Bảng 4: Bảng phân phối RAM của heap2 .................................................................... 25
Bảng 5: Bảng phân chi tiết các tiến trình...................................................................... 26
Bảng 6: So sánh lượng RAM cung cấp giữa FreeRTOS và uCOS............................... 27
Bảng 7: Mô tả chi tiết về các task mô phỏng................................................................ 43
Ket-noi.com kho tai lieu mien phi Ket-noi.com kho tai lieu mien phiĐồ án tốt nghiệp
Nghiên cứu và port hệ điều hành thời gian thực FreeRTOS lên vi điều khiển PIC 5
Mở đầu Chú thích [PNH1]: của việc port lên VDK và s Nói rõ v ử dụng những ề ý nghĩa
phần mềm freeĐồ án tốt nghiệp
Nghiên cứu và port hệ điều hành thời gian thực FreeRTOS lên vi điều khiển PIC 6
Phần I: Tổng quan về hệ điều hành thời gian thực
I. Tổng quan các loại hệ điều hành
Những hệ thống máy tính bao gồm một hay nhiều bộ vi xử lý, bộ nhớ chính,
bàn phím và nhiều thiết bị vào ra. Tất cả trong một hệ thống phức tạp. Viết chương
trình kiểm soát và sử dụng tất cả chương trình một cách chính xác, tối ưu là công việc
khó vì thế máy tính được trang bị lớp phần mềm gọi là hệ điều hành [2], nhiệm vụ
của nó là quản lý mọi thiết bị và cung cấp các chương trình ứng dụng với giao diện
đơn giản hơn xuống phần cứng.
Hình 1: Sơ đồ hệ điều hành
Hệ điều hành có thể nhìn từ hai quan điểm [2]:
· Quản lý tài nguyên (resource manages)
· Máy mở rộng (extended machines).
Ở quan điểm quản lý tài nguyên, công việc của hệ điều hành là quản lý các phần
khác nhau của hệ thống một cách hiệu quả. Tài nguyên của hệ thống (CPU, bộ nhớ,
thiết bị ngoại vi, ...) vốn rất giới hạn, nhưng trong các hệ thống đa nhiệm, nhiều người
sử dụng có thể đồng thời yêu cầu nhiều tài nguyên. Để thỏa mãn yêu cầu sử dụng chỉ
với tài nguyên hữu hạn và nâng cao hiệu quả sử dụng tài nguyên, hệ điều hành cần
phải có cơ chế và chiến lược thích hợp để quản lý việc phân phối tài nguyên. Ngoài
yêu cầu dùng chung tài nguyên để tiết kiệm chi phí, người sử dụng còn cần chia
Ứng dụng
Ket-noi.com kho tai lieu mien phi Ket-noi.com kho tai lieu mien phiĐồ án tốt nghiệp
Nghiên cứu và port hệ điều hành thời gian thực FreeRTOS lên vi điều khiển PIC 7
sẻ thông tin (tài nguyên phần mềm), khi đó hệ điều hành cần đảm bảo việc truy xuất
đến các tài nguyên này là hợp lệ, không xảy ra tranh chấp, mất đồng nhất.
Ở quan điểm là các máy mở rộng, công việc của hệ điều hành là cung cấp cho
người sử dụng các máy ảo (virtural machine) sử dụng thuận tiện hơn các máy thực
(actual machine). Hệ điều hành làm ẩn đi các chi tiết phần cứng, người sử dụng được
cung cấp giao diện đơn giản, dễ hiểu và không phụ thuộc vào thiết bị cụ thể.Thực tế, ta
có thể xem hệ điều hành như hệ thống bao gồm nhiều máy tính trừu tượng xếp thành
nhiều lớp chồng lên nhau, máy tính mức dưới phục vụ cho máy tính mức trên. Lớp
trên cùng là giao diện trực quan nhất để chúng ta điều khiển.
Ngoài ra hệ điều hành theo có 4 chức năng sau:
· Quản lý quá trình (process management): hệ điều hành quản lý các tiến
trình, sắp xếp cho tiến trình nào chạy tiến trình nào dừng, phối hợp nhịp
nhàng các tiến trình.
· Quản lý bộ nhớ (memory management): hệ điều hành quản lý phân phối tài
nguyên nhớ cho các tiến trình chạy.
· Quản lý hệ thống lưu trữ (storage management): hệ điều hành quản lý lưu
trữ trên các ổ đĩa, đĩa CD.
· Giao tiếp với người dùng (user interaction)
Có 7 loại hệ điều hành [2]:
· Hệ điều hành cho Mainframe
· Hệ điều hành cho Server
· Hệ điều hành đa vi xử lý
· Hệ điều hành cho máy tính cá nhân
· Hệ điều hành thời gian thực
· Hệ điều hành nhúng
· Hệ điều hành cho thẻ thông minh
1. Hệ điều hành cho Mainframe
Hệ điều hành cho máy Mainframe là hệ điều hành ở mức cao nhất, loại máy
tính này được thấy nhiều ở các trung tâm cơ sở dữ liệu lớn. Những máy tính này phân
biệt với máy tính cá nhân ở giới hạn xử lý và sức chứa của chúng. Một máy tính
Mainframe với hàng nghìn đĩa và hàng nghìn gigabybe dữ liệu là điều bình thường hầu
như không có máy tính cá nhân thông thường nào có những chức năng mạnh này. Hầu
hết mainframe dùng cho những ứng dụng rất lớn.
Hệ điều hành cho mainframe có tính định hướng cao cho việc xử lý nhiều việc
mà mỗi việc cần lượng lớn I/O. Chúng thường được sử dụng ở những kiểu: mẻ, quảnĐồ án tốt nghiệp
Nghiên cứu và port hệ điều hành thời gian thực FreeRTOS lên vi điều khiển PIC 8
lý xử lý và phân chia thời gian. Hệ thống mẻ là hệ thống mà những công việc xử lý
đều đặn không có bất kỳ ảnh hưởng nào đến người sử dụng hiện tại. Nó được vận dụng
để giải quyết một số lượng lớn các yêu cầu nhỏ, ví dụ như quá trình kiểm tra ở nhà
băng hay sân bay. Mỗi phần của công việc thì nhỏ nhưng hệ thống phải xử lý hàng
trăm hay hàng nghìn công việc nhỏ trên một giây. Hệ thống chia sẻ thời gian chấp
nhận điều khiển từ xa để thực hiện công việc trên máy tính trong 1 lần, như những yêu
cầu về dữ liệu. Những chương trình này gần với: hệ điều hành mainframe thường thực
hiện tất cả. Ví dụ về hệ điều hành mainframe là OS/390, thế hệ sau của OS/360.
2. Hệ điều hành cho các Server
Dưới hệ điều hành mainframe một cấp là hệ điều hành chạy trên các server, một
trong các loại máy tính cá nhân rất lớn, những máy trạm, hay kiểu mainframe. Chúng
phục vụ nhiều user trong một thời điểm qua mạng và chấp nhận để các user chia sẻ
nguồn phần cứng hay phần mềm. Các Server có thể cung cấp dịch vụ in ấn, dịch vụ
file hay dịch cụ web. Các cung cấp Internet chạy trên nhiều server để hỗ trợ khách
hàng và các Website sử dụng trong server để lưu trữ các trang Web và trả lời các yêu
cầu đến. Điển hình là các hệ điều hành UNIX và Window2000. Linux cũng được sử
dụng cho các server.
3. Hệ điều hành đa vi xử lý
Cách kết hợp nhiều tổ hợp máy tính phổ biến hiện nay là kết nối nhiều CPU
trong một hệ thống. Phụ thuộc vào sự chuẩn xác kết nối thế nào và chia sẻ cái gì,
những hệ thống này được gọi là máy tính song song, hệ đa máy tính hay hệ đa xử lý.
Chúng cần những hệ điều hành đặc biêt nhưng thường những biến đổi này diễn ra trên
hệ điều hành server, với những chức năng đặc biệt cho giao tiếp và kết nối.
4. Hệ điều hành cho máy tính cá nhân
Loại tiếp theo là hệ điều hành cho máy tính cá nhân. Công việc của nó là cung
cấp giao diện tốt cho một người sử dụng. Nó được dùng chủ yếu để soạn thảo văn bản,
sửdụng bảng tính, và truy cập Internet. Ví dụ như Windows98, hệ điều hành
Macintosh và Linux. Hệ điều hành máy tính cá nhân được biết đến rất rộng rãi do chỉ
cần ít những chỉ dẫn. Trên thực tế, nhiều người có trình độ khác nhau đều có thể sử
dụng được.
5. Hệ điều hành thời gian thực
Một loại hệ điều hành khác là hệ điều hành thời gian thực. Hệ điều hành này
được mô tả là quản lý thời gian như thông số chìa khóa. Ví dụ như trong hệ thống điều
khiển công nghiệp, máy tính thời gian thực cần thu thập dữ liệu về quá trình sản
xuất và sử dụng dữ liệu đó để điều khiển các máy trong xí nghiệp theo đó các deadline
Ket-noi.com kho tai lieu mien phi Ket-noi.com kho tai lieu mien phiĐồ án tốt nghiệp
Nghiên cứu và port hệ điều hành thời gian thực FreeRTOS lên vi điều khiển PIC 9
cứng phải được thỏa mãn. Một ví dụ khác với dây chuyền lắp ráp ôtô, một hành động
nhất định phải được thực hiện thời điểm nhất định nào đó, nếu robot thực hiện sớm
quá hay muộn quá thì chiếc xe sẽ bị lỗi có thể dẫn đến phá hủy. Trong hệ thống mà
hành động buộc phải thực hiện vào thời điểm nhất định (hay trong khoảng cho phép)
thì đó là hệ thống thời gian thực cứng. Một hệ thời gian thực khác là hệ thời gian thực
mềm, trong đó có những đáp ứng deadline có thể không thỏa mãn toàn bộ, hệ truyền
tiếng nói số hay đa phương tiện là một ví dụ cho hệ này. Điển hình cho hệ điều hành
thời gian thực là VxWorks và QNX.
Hình 2: Sơ đồ hệ thống thời gian thực trong ô tô
6. Hệ điều hành nhúng
Tiếp tục với hệ nhỏ hơn, chúng ta đến với những máy tính palmtop và hệ
nhúng. Palmtop hay PDA là loại máy tính nhỏ hoạt động với số lượng nhỏ các chương
trình. Hệ nhúng chạy trên những máy tính điều khiển các thiết bị nói chung không
giống với máy tính, như TV sets, lò vi sóng, điện thoại di động. chúng thường có tính
thời gian thực nhưng kích cỡ, bộ nhớ và sự hạn chệ năng lượng làm chung đặc biệt.
Những hệ thông dụng là PalmOS và Windows CE.
7. Hệ điều hành cho thẻ thông minh
Hệ điều hành nhỏ nhất chạy trên các thẻ thông minh, như credit card, thiết bị
bao gồm chip CPU. Chúng quản lý rất nghiêm ngặt năng lượng sử dụng và cách nénĐồ án tốt nghiệp
Nghiên cứu và port hệ điều hành thời gian thực FreeRTOS lên vi điều khiển PIC 10
bộ nhớ. Một số hệ chỉ sử dụng cho một chương trình duy nhất như thanh toán điện tử,
nhưng những hệ khác phục vụ nhiều chương trình trong cùng một thẻ thông minh. Đó
thường là những hệ thống độc quyền.
Một số thẻ thông minh được viết trên Java, trên ROM của thẻ thông minh cần
chương trình dịch cho JVM. Java applet được tải về thẻ và được dịch ra để sử dụng.
Một số thẻ có thể chạy nhiều Java applet trong cùng một thời điểm, để quản lý nhiều
chương trình cần bộ lập lịch. Cần quản lý và đảm bảo cho hệ thống khi có hai hay
nhiều applet chạy trong cùng một thời điểm. Những vấn đề này cần được quản lý bởi
hệ điều hành hiện tại trên thẻ.
II. Tìm hiểu hệ điều hành thời gian thực
Trong phần này ta sẽ đi sâu vào tìm hiểu hệ điều hành thời gian thực với khái
niệm, các đặc điểm và tầm quan trọng của hệ điều hành thời gian thực trong thực tế.
Từ đó liên hệ trình bày cụ thể về hệ điều hành thời gian thực mã nguồn mở FreeRTOS
và các vấn đề cơ bản trong đó
1. Hệ điều hành thời gian thực (RTOS)
a) Khái niệm hệ điều hành thời gian thực
“A real-time system is one in which the correctness of the system depends not
only on the logical results, but also on the time at which the results are produced” [5].
Có thể dịch: hệ thống thời gian thực là hệ thống mà sự hoạt động tin cậy của nó không
chỉ phụ thuộc vào sự chính xác của kết quả, mà còn phụ thuộc vào thời điểm đưa ra kết
quả, hệ thống có lỗi khi yêu cầu về thời gian không được thoả mãn.
Nghiên cứu và port hệ điều hành thời gian thực FreeRTOS lên vi điều khiển PIC 57
o pvItemToQueue trỏ đến mục sẽ được đặt vào hàng đợi. Dung lượng của
mục mà hàng đợi sẽ giữ được định nghĩa khi hàng đợi được tạo ra, do đó
nhiều byte sẽ được sao chép từ pvItemToQueue vào vùng dự trữ của
hàng đợi.
o xCoRoutinePreviouslyWoken: cho ISR có thể đưa dữ liệu vào cùng một
hàng đợi trong nhiều thời điểm từ các ngắt đơn. Lời gọi đầu luôn chuyển
vào pdFALSE. Các lời gọi sau chuyển vào giá trị từ lời gọi trước
o Trả lại giá trị pdTRUE nếu co-routine được đánh thức bởi đưa dữ liệu
vào hàng đợi. Điều này được sử dụng bởi ISR để tiên liệu nếu chuyển
ngữ cảnh được yêu cầu theo các ngắt.
· vCoRoutineAddToDelayedList: Hàm này được tạo ra cho những sử dụng nội
tại chỉ bởi các co-routine macro. Các macro nguyên thủy của thực thi coroutie đòi hỏi có những nguyên mẫu ở đây. Hàm này không được sử dụng
bởi người viết ứng dụng. Hàm này loại bỏ co-routine hiện thời từ list sẵn
sàng và đặt chúng vào list trễ thích hợp.
e) portable.h
Đây có thể coi là file header của port.c, các hàm này sẽ được tìm hiểu kỹ hơn
trong phần port.c (Phần II.III.2):
· *pxPortInitialiseStack()
· xPortStartScheduler()
· vPortEndScheduler()
Bên cạnh đó file làm một số nhiệm vụ quan trọng cho việc tạo project:
· Khai báo đường dẫn vào file portmacro.h cho từng project riêng biệt cho
phù hợp với vi điều khiển và chương trình dịch.
· Với một số vi điều khiển file mày con include thêm một số file cần thiết để
tạo project. Ví dụ như tạo project cho PC ngoài tạo đường dẫn đến
portmacro.h còn phải include thêm file frconfig.h.
Ngoài ra còn đặt ra các chương trình con quản lý bộ nhớ yêu cầu cho port
· *prvPortMalloc()
· vPortFree()
· vPortInitialiseBlocks()
3. Các file còn lại trong kernel của FreeRTOS
Các file còn lại trong kernel là ba file:
· project.h: định nghĩa các kiểu ban đầu mà các hàm thực hiện phải phù hợp
· queue.h:
Do Drive thay đổi chính sách, nên một số link cũ yêu cầu duyệt download. các bạn chỉ cần làm theo hướng dẫn.
Password giải nén nếu cần: ket-noi.com | Bấm trực tiếp vào Link để tải:
You must be registered for see links
Last edited by a moderator: