p3_al0n3ly_kut3

New Member
Tải Nghiên cứu hệ điều hành nhúng thời gian thực FreeRTOS

Download miễn phí Nghiên cứu hệ điều hành nhúng thời gian thực FreeRTOS
Từ trạng thái Ready,Co-routine có thể chuyển sang trạng thái Running
-Từ trạng thái Running,Co-routine có thể chuyển về trạng thái Ready hay chuyển sang trạng thái Blocked khi có macro block API gọi đến .
-Từ trạng thái Blocked, Co-routine sẽ chuyển về trạng thái Ready bằng một sự kiện.

Trong FreeRTOS có file croutine.c chứa các hàm viết sẵn cho Co-routine như một thư viện.
VD tạo Co-routine dùng hàm xCoRoutineCreate() , bắt đầu dùng hàm crSTART(), dừng bằng crEND()


Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Tóm tắt nội dung tài liệu:iện cho nhiều chương trình cùng làm việc trên cùng một tập hợp dữ liệu.
Một lý do nữa là độ tin cậy. Các chức năng được xử lý trên nhiều bộ xử lý và sự hỏng hóc của một bộ xử lý sẽ không ảnh hưởng đến toàn bộ hệ thống.
Hệ thống đa xử lý thông thường sử dụng cách đa xử lý đối xứng, trong cách này mỗi bộ xử lý chạy với một bản sao của hệ điều hành, những bản sao này liên lạc với nhau khi cần thiết. Một số hệ thống sử dụng đa xử lý bất đối xứng, trong đó mỗi bộ xử lý được giao một công việc riêng biệt.. Một bộ xử lý chính kiểm soát toàn bộ hệ thống, các bộ xử lý khác thực hiện theo lệnh của bộ xử lý chính hay theo những chỉ thị đã được định nghĩa trước. Mô hình này theo dạng quan hệ chủ tớ. Bộ xử lý chính sẽ lập lịch cho các bộ xử lý khác.
Một ví dụ về hệ thống xử lý đối xứng là phiên bản Encore của UNIX cho máy tính Multimax. Hệ thống này có hàng tá bộ xử lý. Ưu điểm của nó là nhiều tiến trình có thể thực hiện cùng lúc . Một hệ thống đa xử lý cho phép nhiều công việc và tài nguyên được chia xẻ tự động trong những bộ xử lý khác nhau.
Hệ thống đa xử lý không đồng bộ thường xuất hiện trong những hệ thống lớn, trong đó hầu hết thời gian hoạt động đều dành cho xử lý nhập xuất.
II.1.2.5 Hệ thống phân tán
Hệ thống này cũng tương tự như hệ thống chia xẻ thời gian nhưng các bộ xử lý không chia xẻ bộ nhớ và đồng hồ, thay vào đó mỗi bộ xử lý có bộ nhớ cục bộ riêng. Các bộ xử lý thông tin với nhau thông qua các đường truyền thông như những bus tốc độ cao hay đường dây điện thoại. 
Các bộ xử lý trong hệ phân tán thường khác nhau về kích thước và chức năng. Nó có thể bao gồm máy vi tính, trạm làm việc, máy mini, và những hệ thống máy lớn. Các bộ xử lý thường được tham khảo với nhiều tên khác nhau như site, node, computer v.v.... tùy thuộc vào trạng thái làm việc của chúng.
Các nguyên nhân phải xây dựng hệ thống phân tán là:
Chia xẻ tài nguyên : Một người sử dụng A có thể sử dụng máy in laser của người sử dụng B và người sử dụng B có thể truy xuất những tập tin của A. Tổng quát, chia xẻ tài nguyên trong hệ thống phân tán cung cấp một cơ chế để chia xẻ tập tin ở vị trí xa, xử lý thông tin trong một cơ sở dữ liệu phân tán, in ấn tại một vị trí xa, sử dụng những thiết bị ở xa đểõ thực hiện các thao tác.
Tăng tốc độ tính toán : Một thao tác tính toán được chia làm nhiều phần nhỏ cùng thực hiện một lúc. Hệ thống phân tán cho phép phân chia việc tính toán trên nhiều vị trí khác nhau để tính toán song song.
An toàn : Nếu một vị trí trong hệ thống phân tán bị hỏng, các vị trí khác vẫn tiếp tục làm việc.
Thông tin liên lạc với nhau :Có nhiều lúc , chương trình cần chuyển đổi dữ liệu từ vị trí này sang vị trí khác. Ví dụ trong hệ thống Windows, thường có sự chia xẻ và chuyển dữ liệu giữa các cửa sổ. Khi các vị trí được nối kết với nhau trong một hệ thống mạng, việc trao đổi dữ liệu diễn ra rất dễ. Người sử dụng có thể chuyển tập tin hay các E_mail cho nhau từ cùng vị trí hay những vị trí khác.
II.1.2.6 Hệ thống xử lý thời gian thực
Hệ thống xử lý thời gian thực được sử dụng khi có những đòi hỏi khắt khe về thời gian trên các thao tác của bộ xử lý hay dòng dữ liệu, nó thường được dùng điều khiển các thiết bị trong các ứng dụng tận hiến (dedicated). Máy tính phân tích dữ liệu và có thể chỉnh các điều khiển giải quyết cho dữ liệu nhập.
 Một hệ điều hành xử lý thời gian thực phải được định nghĩa tốt, thời gian xử lý nhanh. Hệ thống phải cho kết quả chính xác trong khoảng thời gian bị thúc ép nhanh nhất. Có hai hệ thống xử lý thời gian thực là hệ thống thời gian thực cứng và hệ thống thời gian thực mềm..
Hệ thống thời gian thực cứng là công việc được hoàn tất đúng lúc. Lúc đó dữ liệu thường được lưu trong bộ nhớ ngắn hạn hay trong ROM. Việc xử lý theo thời gian thực sẽ xung đột với tất cả hệ thống liệt kê ở trên.
Dạng thứ hai là hệ thống thời gian thực mềm, mỗi công việc có một độ ưu tiên riêng và sẽ được thi hành theo độ ưu tiên đó. Có một số lĩnh vực áp dụng hữu hiệu phương pháp này là multimedia hay thực tại ảo.
II.2 GIỚI THIỆU VI ĐIỀU KHIỂN ATmega 128
II.2.1 TỔNG QUAN
Những chức năng Chính Của ATmega128:
- ROM : 128 Kbytes
-SRAM: 4Kbytes
-EEPROM : 4Kbytes
- 64 thanh ghi I/O
-160 thanh ghi vào ra mở rộng
-32 thanh ghi đa mục đích.
- 2 bộ định thời 8 bit (0,2).
-2 bộ định thời 16 bit (1,3).
-Bộ định thời watchdog
-Bộ dao động nội RC tần số 1 MHz, 2 MHz, 4 MHz, 8 MHz
-ADC 8 kênh với độ phân giải 10 bit (Ở dòng Xmega lên tới 12 bit )
-2 kênh PWM 8 bit
-6 kênh PWM có thể lập trình thay đổi độ phân giải từ 2 tới 16 bit
-Bộ so sánh tương tự có thể lựa chọn ngõ vào
-Hai khối USART lập trình được
-Khối truyền nhận nối tiếp SPI
-Khối giao tiếp nối tiếp 2 dây TWI
-Hỗ trợ boot loader
-6 chế độ tiết kiệm năng lượng
-Lựa chọn tần số hoạt động bằng phần mềm
-Đóng gói 64 chân kiểu TQFP.
-Tần số tối đa 16MHz
-Điện thế : 4.5v - 5.5v.
Vi điều khiển AVR do hãng Atmel ( Hoa Kì ) sản xuất được gới thiệu lần đầu năm 1996. AVR có rất nhiều dòng khác nhau bao gồm dòng Tiny AVR ( như AT tiny 13, ATtiny 22…) có kích thước bộ nhớ nhỏ, ít bộ phận ngoại vi, rồi đến dòng AVR ( chẳn hạn AT90S8535, AT90S8515,…) có kích thước bộ nhớ vào loại trung bình và mạnh hơn là dòng Mega ( như ATmega32, ATmega128,…) với bộ nhớ có kích thước vài Kbyte đến vài trăm Kb cùng với các bộ ngoại vi đa dạng được tích hợp trên chip, cũng có dòng tích hợp cả bộ LCD trên chip ( dòng LCD AVR ). Tốc độ của dòng Mega cũng cao hơn so với các dòng khác. Sự khác nhau cơ bản giữa các dòng chình là cấu trúc ngoại vi, còn nhân thì vẫn như nhau.
Hình 1.2. Đặt biệt, năm 2008, Atmel lại tiếp tục cho ra đời dòng AVR mới làXmegaAVR, với những chức năng mạnh mẽ chưa từng có ở các dòng AVR trước đó. Có thể nói XmegaAVR là dòng MCU 8 bit mạnh mẽ nhất hiện nay.
Hình1.2 Các dòng AVR khác nhau: Tiny, AVR và Mega
Cấu trúc cơ bản của vi điều khiển AVR được thể hiện ở hình 1.2.
Hình 1.3 Cấu trúc của Vi điều khiển AVR
II.2.2 CẤU TRÚC BỘ NHỚ VÀ CỔNG VÀO – RA
CẤU TRÚC BỘ NHỚ.
Giới Thiệu:
Bộ nhớ vi điều khiển AVR có cấu trúc Harvard là cấu trúc có đường Bus riêng cho bộ nhớ chương trình và bộ nhớ dữ liệu. Bộ nhớ AVR được chia làm 2 phần chính: Bộ nhớ chương trình ( program memory ) và bộ nhớ dữ liệu ( Data memory ).
Bộ Nhớ Chương Trình : Bộ nhớ chương trình của AVR là bộ nhớ Flash có dung lượng 128 K bytes. Bộ nhớ chương trình có độ rộng bus là 16 bit. Những địa chỉ đầu tiên của bộ nhớ chương trình được dùng cho bảng véc tơ ngắt. Cần để ý là ở vi điều khiển ATmega128 bộ nhớ chương trình còn có thể được chia làm 2 phần : phần boot loader ( Boot loader program section ) và phần ứng dụng ( Application program section ).
Phần boot loader chứa chương trình boot loader. Chương trình Boot loader là một phần mềm nhỏ nạp trong vi điều khiển và được chạy lúc khởi động. Phần mềm này có thể tải vào trong vi điều khiển c...
 
Top