1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Chức năng timer của hệ điều hành thời gian thực Freescale MOX RTOS

53 872 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 53
Dung lượng 12,5 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Freescale MQX TimerGiới thiệu về module Timer trong MQXGiải thích cơ thế hoạt động khối timer trong MQX RTOSGiải thích thời gian tương đối và thời gian tuyệt đốiCác hàm quan trọng trong khối timer của MQX RTOSGiải thích về Watchdog trong MQX RTOS

Trang 1

EMBEDDED SYSTEM

LECTURE 11: FREESCALE MQX

RTOS TIMER

Trang 2

Mục tiêu

Understanding on how the MQX maintain the timing feature.

Introduce about the MQX timer Component

Introduce about the MQX software Watdog component

Trang 3

TABLE OF CONNTENTS

MQX Timing features

Deep look at how kernel handles time

Absolute time and Elapsed time

Time Component Watchdog

Trang 4

GIẢI THÍCH CÁC THUẬT NGỮ

 Freescale: Tên một công ty đa quốc

gia trụ sở Austin – Texas  NXP

semiconductors (2015).

 MQX RTOS: Real Time Operating System được phát triển bởi Precise

Software Technologies Inc 

Freescale MQX(Message Queue

eXecutive)

Trang 5

BSP: (Board Suport package) là một mã thực thi nhằm

cung cấp một giao diện chuẩn giữa phần cứng và phần hệ điều hành BSP không trực tiếp truy cập vào phần cứng BSP chỉ cung cấp giao diện device driver cho phép kernel giao tiếp với tài nguyên phần cứng như CPU, RAM, …

Trang 6

Thời gian thực: là thời gian phản ánh về độ trung thực

của thời gian hay không? có phải là hiển thị chính xác và đồng bộ theo đúng nhịp đồng hồ đếm thời gian hay không?

Thời gian thực được hiểu là yêu cầu của hệ thống phải

đảm bảo thoả mãn về tính tiền định trong hoạt động của

hệ thống Tính tiền định nói lên hành vi của hệ thống thực hiện đúng trong một khung thời gian cho trước hoàn toàn xác định Khung thời gian này được quyết định bởi đặc điểm hoặc yêu cầu của hệ thống, có thể là vài giây và cũng có thể là vài nano giây hoặc nhỏ hơn nữa Ở đây chúng ta phân biệt yếu tố thời gian gắn liền với khái niệm về thời gian thực

Trang 7

Hard Readtime: nếu không đáp ứng yêu cầu thời gian

thực, hệ thống sẽ sụp đổ hay gây ra hậu quả khôn lường (Fire System, hệ thống túi khí xe hơi, hệ thống làm mát điện hạt nhân,…)

Soft Realtime: nếu không đáp ứng yêu cầu thời gian

thực, hệ thống sẽ bị suy giảm về chất lượng dịch vụ

(Quality of Service – QoS) (hệ thống Video, Audio,…)

RTOS – Hệ điều hành thời gian thực: là phần mềm điều

khiển chuyên dụng thường được dùng trong những ứng dụng điện toán nhúng có tài nguyên bộ nhớ hạn chế và yêu cầu ngặt nghèo về thời gian đáp ứng tức thời, tính sẵn sàng cao và khả năng tự kiểm soát một cách chính xác Ví dụ: Windows, Linux, Unix, VxWorks

Trang 8

MQX Timing

MQX timer được sử dụng cho các ứng dụng như

sau:

Round – Robin Scheduling

Định giờ cho hàm gọi MQX (msg_recv,…)

Tạm ngưng 1 tác vụ/tiến trình nào đó một khoảng thời

gian (time delay) chưa chính xác nguyên nhân độ phân giải của BSP

Date and time

Trang 9

Round-Robin Scheduling

time 50ms 100ms 150ms

Trang 10

Timeouts for MQX function calls

And time_delay

Trang 11

Timer là một thành phần tùy chọn mà bạn có thể

enable hoặc disable ở cấp BSP(BSP level).

Có 2 loại time: Thời gian tuyệt đối và thời gian tương đối.

Bạn có thể thay đổi thời gian tuyệt đối.

Resolution depends on hardware and app settings

MQX RTOS sử dụng Counter 64 – bit để đếm số lượng

ngắt kể từ khi hệ thống khởi động (Cung cấp một giá trị lớn trước khi timer bị tràn, ví dụ nếu “Tick” xảy ra trong

1 nanosecond, timer sẽ bị tràn sau 584 năm – User manual MQX)

Trang 12

Sau đó giá trị trả về cho ứng dụng là 1 số 32 –bit thể hiện

số lượng hardware tick kể từ lần tick cuối cùng

Thông thường MQX RTOS đọc giá trị này từ hardware

counter phục vụ trong chương trình timer Kết quả nhận được thời gian một cách chính xác vì số lần “tick” có thể được xác định.

Trang 13

Cái nhìn sâu về xử lý T/gian của Kernel

Trang 14

Trong lý thuyết về hệ điều hành, kernel chính là

một phần của hệ điều hành, nó sẽ được nạp lên bộ nhớ đầu tiên và vẫn tồn tại trong lúc chương trình hoạt động

Một kernel thời gian thực sẽ cung cấp hầu hết các

dịch vụ cần thiết cho các ứng dụng nhúng.Do đó chỉ là một phần của hệ điều hành và được nạp

thẳng lên bộ nhớ, nên một kernel thời gian thực thường có kích thước rất nhỏ, rất phù hợp cho các

bộ nhớ có dung lượng thấp trong các hệ thống

nhúng.

Trang 15

Kernel là một lõi mềm giám sát hệ thống, cung cấp

các khối logic, các giải thuật lập lịch, các giải thuật quản lý tài nguyên Mỗi một hệ thống thời gian

thực đều có một kernel Mỗi hệ thống thời gian

thực là một sự tổng hợp của nhiều module trong

đó bao gồm kernel, file system, network protocol stack, và các module khác tùy thuộc vào yêu cầu chức năng của hệ thống.

Trang 17

Kiến trúc của hệ thống thời gian thực

Kiến trúc của một hệ thống thời gian thực sẽ quyết

định các luồng được thực thi khi nào và bằng cách nào

Có 2 kiến trúc phổ biến là kiến trúc điều khiển

vòng lặp với polling và mô hình sắp xếp ưu tiên Trong kiến trúc điều khiển vòng lặp với polling, kernel sẽ thực thi một vòng lặp vô hạn, vòng lặp này sẽ chọn ra luồng trong một mẫu được định trước

Trang 18

Nếu một luồng cần dịch vụ, nó sẽ được xử lý Có

một vài biến thể của phương pháp này, tuy nhiên vẫn phải đảm bảo mỗi luồng đều có khả năng truy cập đến vi xử lý Hình dưới mô tả cách xử lý của phương pháp này.

Trang 20

Mặc dù phương pháp điều khiển vòng lặp với

polling rất dễ thực hiện, tuy nhiên nó vẫn có

những hạn chế nghiêm trọng

Thứ nhất đó chính là nó sẽ mất rất nhiều thời gian, khi

mà một luồng cần truy cập đến vi xử lý sẽ phải chờ đến lượt của mình, và một chương trình có quá nhiều luồng

sẽ bị chậm đi rất nhiều.

Thứ hai, phương pháp này không có sự phân biệt giữa

các luồng, luồng nào quan trọng và luồng nào ít quan trọng, từ đó xác định mức độ ưu tiên giữa các luồng.

Trang 21

Một phương pháp khác mà các kernel thời gian

thực hay sử dụng đó chính là mô hình sắp xếp

mức độ ưu tiên

Trong mô hình này, mỗi luồng sẽ đi kèm với mức

độ ưu tiên của nó, lúc này, vi xử lý sẽ thiết lập

đường truy cập tới luồng nào có mức độ ưu tiên cao nhất khi nó đòi hỏi được phục vụ Cũng có

một vài biến thể của phương pháp này, tuy nhiên vẫn phải đảm bảo các luồng có mức độ ưu tiên

thấp nhất vẫn phải có thể truy cập tới vi xử lý một vài lần

Trang 23

Một ưu điểm cực kỳ quan trọng của phương pháp

này đó chính là nó có khả năng tạm hoãn thực thi một luồng khi có một luồng khác với mức độ ưu tiên cao hơn cần phục vụ Quá trình lưu trữ lại các

thông tin hiện thời của luồng bị tạm hoãn thực thi khi có một luồng khác với mức độ ưu tiên cao hơn cần phục vụ gọi là “context switching” Quá trình này phải được thực hiện nhanh và đơn giản để

luồng bị tạm hoãn có thể thực hiện tiếp nhiệm vụ

của mình một cách chính xác khi nó lấy lại đươc

quyền điều khiển.

Trang 24

Một hệ thống nhúng thời gian thực phải có khả năng

đáp ứng lại các tín hiệu ngõ vào hay các sự kiện một cách nhanh nhất và chính xác nhất, đây chính là các ngắt của hệ thống Ngắt của hệ thống sẽ phải làm cho

vi xử lý ngưng nhiệm vụ đang thực thi để xử lý ngắt

Một ngắt sẽ được xử lý bởi ISR (interrupt service

routine), nó có khả năng kích hoạt một luồng có mức

độ ưu tiên cao hơn luồng đang được thực thi Lúc

này, nó sẽ tạm hoãn lại luồng hiện tại để dành quyền cho luồng mới có mức độ ưu tiên cao hơn Ngắt có thể được tạo ra bởi phần mềm (ngắt mềm) hay bởi các

thiết bị phần cứng (ngắt cứng).

Trang 25

Absolute Time and Elapsed Time

Elapsed Time:

Elapsed Time is the amount of time since MQX

RTOS boot up following a power reset to intire

system or a processor reset.

MQX Bootup

Time 0

End

Elapsed Time Absolute Time

X

Trang 26

Absolute Time and Elapsed Time

Trang 27

Time Formats

Trang 30

0:00:00:0000 Jan 1, 1970

What is it? Unix Time, Epoch Time, Posix Time

Jan 1, 1970

Trang 31

0:00:00:0000 Jan 1, 1970

Trang 32

Update the current time

Trang 36

Getting Elapsed Time

Trang 39

Getting Absolute Time

Trang 41

Setting Absolute Time

Trang 44

Blocking until a future Absolute Time

Trang 45

Timer Component

Trang 48

Giới thiêệu về Watchdog

Các hệ thống nhúng: thường

nằm trong các cỗ máy được kỳ

vọng là sẽ chạy hàng năm trời

liên tục mà không bị lỗi hoặc

có thể khôi phục hệ thống khi

gặp lỗi

TẠI SAO LẠI CẦN ĐẾN WATCHDOG ?

→ CẦN MÔÔT KỸ THUÂÔT

ĐẢM BẢO SỰ ỔN ĐỊNH

ĐÓ

Trang 49

Giới thiêệu về Watchdog

WATCHDOG LÀ GÌ?

và khôi phục lại trạng thái

của hệ thống trong trường

hợp hệ thống bị lỗi, do

phần cứng hoạt phần mềm

gây ra

Trang 50

Giới thiêệu về Watchdog

BẢN CHẤT CỦA WATCHDOG

 Watchdog về bản

chất sẽ là một bộ

định thời gian đặc

biệt để định nghĩa

thời gian hoạt động

bình thường của hệ

thống

 Khi có một sự cố, hệ thống bị treo hoặc chạy quẩn,

CPU sẽ không thực hiện đúng chức năng, lúc này

thời gian hoạt động sẽ có sự sai lệch

Trang 51

Giới thiêệu về Watchdog

HOẠT ĐỘNG CỦA WATCHDOG

Dựa vào yếu tố trên, nguyên tắc hoạt động của

Watchdog :

 Nếu hệ thống hoạt động bình thường Watchdog sẽ

nhận lệnh reset lại bộ đếm của nó sau 1 khoảng thời

gian, và tiếp tục đếm lên từ 0

 1 khoảng thời gian ở đây sẽ nhỏ hơn thời gian mà

Watchdog đã lưu ở trên

 Watchdog sẽ lưu lại thời gian hoạt động bình

thường của mạch

Trang 52

Giới thiêệu về Watchdog

HOẠT ĐỘNG CỦA WATCHDOG

 Quá trình hoạt động này lặp đi lặp lại cho đến khi

gặp sự cố.

 Lúc này CPU sẽ không chạy đúng chức năng, bị treo

và sẽ không gửi lại lệnh Reset cho bộ đếm

Watchdog

Trang 53

Giới thiêệu về Watchdog

HOẠT ĐỘNG CỦA WATCHDOG

 Watchdog vẫn tiếp tục đếm cho đến khi thời gian

đếm vượt quá thời gian hoạt động bình thường của hệ thống.

 Watchdog sẽ gửi tín hiệu Reset đến CPU để khôi

phục lại hệ thống

Ngày đăng: 23/06/2016, 10:18

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w