Chuyển đến nội dung chính

Bắt đầu với FreeRTOS (Bài 2)

Bài trước: Bắt đầu với FreeRTOS (Bài 1)
Sau khi kết thúc bài đầu tiên ta đã có cái nhìn cơ bản về hệ điều hành FreeRTOS và các công cụ để học rồi, bây giờ ta sẽ bắt tay vào nghiên cứu code.
NOTE: Nhớ phải copy cả folde source-code-for-standard-edition-examples vào C:\WATCOM 
            và đổi tên nó thành 1 cái tên đơn giản như Source chẳng hạn.
Vào folde đó, vào mục examples\example001 đây là code của ví dụ của example 1 trong sách.
Chạy rtosdemo.wpj ta được:


Ta thấy có 1 cây chứa các files mà dùng trong chương trình này. Khi cần muốn xem hoặc sửa đổi ở file nào thì ta chỉ cần click vào đó ok.
Để built code ta click vào nút màu đỏ mà mình đánh dấu. Nếu không có lỗi gì thì khi quay lại thư mục ta sẽ thấy có nhiều file được sinh ra trong đó có file rtosdemo.exe chính là cái mà ta sẽ chạy.

Xong! tiếp đến là bật DOSBOX lên. và gõ vào các dòng lệnh:
Z:\>  MOUNT c c:\WATCOM\Source\examples\example001
Câu lệnh này để trỏ đến nơi chứa file .exe mà mình cần chạy.
Z:\> c:
Z:\>rtosdemo.exe
Hưởng thụ thành quả thôi.



Đến đây rồi công việc còn lại là phụ thuộc vào các bạn, Hãy tích cực code và code, tất cả sẽ nằm trong tầm tay của chúng ta!

Nhận xét

  1. rất cảm ơn bạn
    những tài liệu, thông tin thật bổ ích và đáng quí, phải share rộng rãi hơi mới dc :)

    Trả lờiXóa
  2. Cám ơn bạn, rất vui vì những điều mình viết có thể giúp ích cho mọi người.

    Trả lờiXóa
  3. bạn cho mình hỏi sau khi chạy file exe của Example002,nó chỉ hiện ntn nhể
    http://i.imgur.com/XW0Xxcj.png
    Chạy file exe của các Example khác cũng thế. chỉ hiện tác vụ nào đang chạy mà k biết nó thực hiện những gì

    Trả lờiXóa
    Trả lời
    1. Bạn nhấn Ctrl + F12 để tăng tốc độ của Cpu speed lên nhé, vì đây là mô phỏng nên tốc độ cũng là mô phỏng. Kết quả ở đây chỉ hiện ra dòng thông báo là Task nào đang chạy thôi.

      Xóa

Đăng nhận xét

Bài đăng phổ biến từ blog này

Bắt đầu với FreeRTOS (Bài 1)

NOTE: 1 vài tài liệu mình sử dụng trong bài này là mình sưu tầm được, có thể không có bản quyền, nếu tác giả không muốn đăng lên thì mình sẽ xóa. Trước khi tìm hiểu mọi người có thể biên dịch thử 1 chương trình để lấy khí thế tại  đây. FreeRTOS là 1 hệ điều hành nhúng phù hợp cho các ứng dụng có yêu cầu về thời gian thực 1 cách chặt chẽ. Và vì nó miễn phí, nhỏ gọn và có thể nhúng vào các dòng vi điều khiển thông thường như PIC, AVR, MSP430, ARM...nên mình làm hướng dẫn này cho những ai muốn bắt đầu tìm hiểu về FreeRTOS. Trang chủ của nó  http://www.freertos.org/ Đầu tiên là phải tải FreeRTOS về đã: vào  http://sourceforge.net/projects/freertos/files/   Click vào  Download FreeRTOSV7.5.2.exe (9.3 MB) (thời điểm này bản mới nhất là 7.5.2) để tải về. Sau khi tải về bạn click đúp vào file .exe ấy để giải nén. Ta được 1 folder FreeRTOSV7.5.2. Xong Bước 1  Tiếp theo là nên đọc 1 tài liệu để hiểu sơ qua xem RTOS nó là cái gì và nó hoạt động như thế nào: Các bạn lấy tài l

Chap 1: Task management (Quản lý Task).

Bài trước: Bắt đầu với FreeRTOS (Bài 2) 1 tháng rồi bận bịu quá nà. Bài này sẽ tổng hợp lại những thứ cần chú ý ở trong Chap 1 cuốn "Using the freertos real time kernel" Câu 1: Task là gì? và được tạo ra thế nào? Task được hiểu nôm na như là 1 chương trình thực hiện 1 nhiệm vụ nào đó. 1 Task gồm có: tên, chức năng, giá trị ưu tiên, độ sâu stack, task handle (như kiểu cái móc để tác động ấy), biến tác động vào task. Để tạo task thì đầu tiên phải định nghĩa chức năng của nó trước, cấu trúc hàm cơ bản như sau: void ATaskFunction(void *pvParameters) { // Khởi tạo biến ở đây for( ; ; ) { // Chức năng thực hiện ở đây } } Ví dụ: void vTask1(void *pvParameters) {                const char *pcTaskName = "This is Task 1 \r\n";                for ( ; ; ) { vPrintString(pcTaskName); } } Sau đó phải dùng hàm xTaskCreate()

Chapter 3: Interrupt management (quản lý ngắt).

Bài trước: Chapter 2: Queue Management (Quản lý hàng đợi). Nối tiếp chương 2 về quản lý hàng đợi, hôm nay chúng ta sẽ tìm hiểu về quản lý ngắt. Ngắt là 1 thành phần cực kỳ quan trọng trong lập trình nhúng, nếu bạn đã học qua về vi điều khiển thì chắc không phải nói nhiều về cái này làm gì. Còn nếu chưa thì hiểu nôm na Ngắt là 1 sự kiện mà nó luôn được ưu tiên cao nhất, tức là khi sự kiện ngắt xảy ra thì tất cả mọi sự kiên khác đều phải dừng lại để ngắt thực hiện công việc của mình. Nhưng có 1 sự khác nhau ở ngắt trong FreeRTOS và ngắt thông thường ở chỗ: Khi ngắt thông thường xảy ra nó sẽ nhảy vào hàm ngắt và các công việc cần phải làm đều đặt trong hàm ngắt. Còn ở FreeRTOS thì khi ngắt xảy ra nó sẽ nhảy vào hàm thủ tục ngắt, hàm thủ tục ngắt lại phát đi 1 "tín hiệu" để hàm thực hiện chức năng của ngắt Unblocking và hàm này có Priority cao hơn tất cả các task khác nên nó sẽ thực hiện ngay lập tức. Tín hiệu ở đây chính là Semaphore, có 2 loại Semaphore là Binary Semaph