AUTOSAR/OSEK Real-Time OS

Nếu bạn muốn biết thêm thông tin về khoá học. Hãy liên hệ với chúng tôi.

📧 EMAIL : Hala.daotao@gmail.com

☎ SỐ ĐIỆN THOẠI : 0972 595 711

TỔNG QUAN KHÓA HỌC

  • Khóa học AUTOSAR/OSEK Real-Time OS được thiết kế dành cho những học viên muốn làm chủ hệ điều hành thời gian thực trong lĩnh vực hệ thống nhúng ô tô. Khóa học tập trung vào nguyên lý hoạt động và cấu trúc của AUTOSAR Classic OS, giúp học viên từng bước xây dựng một hệ điều hành chuẩn AUTOSAR chạy trên STM32F103 (Cortex-M3).
  • Khóa học đi sâu vào các chủ đề như quản lý Task, Event, Alarm, Schedule Table, Resource, IOC, cơ chế Context Switching và phân vùng ứng dụng, đồng thời rèn luyện kỹ năng triển khai thực tế thông qua dự án điều khiển đồng hồ tốc độ xe điện.

MỤC TIÊU KHÓA HỌC

  • Hiểu rõ kiến trúc và nguyên lý hoạt động của AUTOSAR/OSEK RTOS.
  • Tự tay phát triển một hệ điều hành thời gian thực có thể chạy trên vi điều khiển STM32.
  • Làm chủ các kỹ thuật lập lịch, quản lý task, đồng bộ hóa, tài nguyên và shutdown hệ thống.
  • Áp dụng tiêu chuẩn thiết kế của AUTOSAR Classic vào thực tế để xây dựng OS mạnh mẽ, tin cậy.

TẠI SAO BẠN NÊN THAM GIA KHÓA HỌC NÀY?

  • Học sâu hệ điều hành thực chiến: Viết từ nhân RTOS đến API tiêu chuẩn AUTOSAR/OSEK.
  • Sát với tiêu chuẩn công nghiệp, hướng đến việc làm trong lĩnh vực automotive embedded systems.
  • Dự án thực tế cuối khóa có thể sử dụng làm đồ án tốt nghiệp hoặc bổ sung vào portfolio.
  • Làm việc trực tiếp trên STM32, sử dụng UART log để debug và theo dõi ngữ cảnh.

HỌC PHÍ VÀ PHƯƠNG THỨC THANH TOÁN

Tổng học phí: 10,000,000 VND
Chia làm nhiều đợt linh hoạt:

  • 3 buổi học thử miễn phí: Trải nghiệm nội dung và phương pháp đào tạo.
  • Đợt 1: 3,000,000 VND (sau học thử)
  • Đợt 2: 5,000,000 VND (tháng thứ hai)

AUTOSAR/OSEK
Real-Time OS

8.000.000 VNĐ

  • Tổng thời gian học: 2 tháng
  • Hình thức: Online
AUTOSAR/OSEK Real-Time OS

LỘ TRÌNH KHÓA HỌC

PHẦN 1: NỀN TẢNG OS VÀ NHÂN HỆ ĐIỀU HÀNH

Bài 01: Kiến trúc OS – Task Control Block (TCB)

Lý thuyết

  • Tổng quan hệ điều hành thời gian thực (RTOS) và AUTOSAR OS
  • Phân tích khái niệm TCB (Task Control Block)
    • Cấu trúc: stackPtr, state, priority, activation
  • Vòng lặp Kernel Scheduler cơ bản
  • Danh sách Task (Ready List), bảng cấu hình
  • FSM của Task: SUSPENDED → READY → RUNNING → WAITING
  • Thuật toán lập lịch: Round-Robin, Priority-based
Bài 02 : SysTick và chuyển ngữ cảnh (Context Switch)

Lý thuyết

  • Thiết lập SysTick 1ms để tạo nhịp hệ thống
  • SysTick_Handler() → kích hoạt PendSV_Handler()
  • Cấu trúc hàm chuyển ngữ cảnh (Context Switching)
    • Lưu R4–R11 vào Stack (Push)
    • Phục hồi từ PSP khi chuyển Task (Pop)
  • Sử dụng thanh ghi PSP để tách stack các task

Thực hành

  • Chuyển luân phiên giữa 2 task LED bằng switch context
Bài 03 : Stack Frame và phân tích bộ nhớ

Lý thuyết

  • Stack Frame tự động khi xảy ra exception
    • xPSR, PC, LR, R12, R0–R3 (8 thanh ghi hệ thống)
  • Cấu trúc Stack Pointer (SP): phân biệt MSP và PSP
  • Khởi tạo vùng stack cho từng task độc lập
  • Ghi log trạng thái stack qua UART để debug context switch
Bài 04: Task trong AUTOSAR OS

Lý thuyết

  • Sử dụng typedef struct TaskType, TaskStateType
  • API: ActivateTask, TerminateTask, GetTaskState, ChainTask
  • Quản lý activation, giới hạn số lần activate
  • Chuyển trạng thái: FSM chi tiết
  • Cấu trúc quản lý bảng task (tĩnh)

Thực hành

  • Triển khai 3 task thực hiện theo lịch, switch LED tuần tự
Bài 05 : Event và EventMask

Lý thuyết

  • Extended Task: phân biệt Basic vs Extended Task
  • API: SetEvent, WaitEvent, ClearEvent, GetEvent
  • Kiểm tra bitmap EventMask để quyết định chuyển trạng thái
  • Cơ chế Wait → Blocked đến khi được SetEvent

Thực hành

  • Task chờ sự kiện từ nút nhấn hoặc task khác
Bài 06 : Counter & Alarm

Lý thuyết

  • Timer2 tạo Counter Tick 1ms
  • Cấu trúc CounterType, AlarmType
  • API: SetRelAlarm, SetAbsAlarm, CancelAlarm, GetAlarm
  • Quản lý alarm queue, trigger action theo offset

Thực hành

  • Task tự động được Activate theo thời gian định kỳ
Bài 07 :Schedule Table

Lý thuyết

  • Schedule Table vs Alarm
  • ExpiryPoint, Offset, ActionType (ActivateTask, SetEvent…)
  • API: StartScheduleTableRel, StopScheduleTable, SyncScheduleTable
  • Quản lý vòng lặp hoặc một lần

Thực hành

  • Lập lịch định kỳ thay đổi chế độ đèn LED (normal → warning → off)
Bài 08 : Hook Functions

Lý thuyết

  • Khái niệm Hook trong AUTOSAR OS
  • Các loại Hook:
    • StartupHook
    • ShutdownHook
    • ErrorHook
    • PreTaskHook / PostTaskHook
  • Viết logic kiểm tra lỗi: invalid ActivateTask, stack overflow

Thực hành

  • Ghi log qua UART mỗi khi gọi Hook
Bài 09 : Resource Management

Lý thuyết

  • Tranh chấp tài nguyên trong hệ đa task
  • Priority Ceiling Protocol (PCP)
  • API: GetResource, ReleaseResource
  • Cấu trúc ResourceType và TaskPriority kết hợp

Thực hành

  • Task 1 và Task 2 chia sẻ biến toàn cục, có và không có resource bảo vệ
Bài 10 : IOC – Inter OS Communication

Lý thuyết

  • Mô hình truyền dữ liệu giữa các task
  • IOC_1_1, IOC_N_1, IOC_1_N
  • API: IocSend, IocReceive, IocReceiveGroup
  • Notification và flag đồng bộ

Thực hành

  • Task sensor gửi giá trị ADC cho task xử lý hiển thị
Bài 11 : OSApplication, TrustedFunction

Lý thuyết

  • Phân vùng logic: OSAppID, quyền gọi API
  • TrustedFunction: chỉ cho phép ứng dụng đáng tin cậy sử dụng
  • API: CallTrustedFunction

Thực hành

  • Task chỉ định mới có quyền ghi log hoặc điều khiển LED nguy hiểm
Bài 12 : OS Shutdown và Reset

Lý thuyết

  • API: ShutdownOS, StartOS, RestartOS
  • Gọi từ task khi xảy ra lỗi nghiêm trọng
  • Hook: ShutdownHook xử lý lưu trạng thái

Thực hành

  • Nếu task bị lỗi → system shutdown

PHẦN 2: PROJECT CUỐI KHÓA

Đề tài: Xây dựng OS điều khiển đồng hồ tốc độ xe máy điện

Chức năng:

  • Mô phỏng ECU đồng hồ xe điện: hiển thị tốc độ, pin, chế độ
  • Task đọc tốc độ (Sensor), pin (ADC), chế độ (nút/UART)
  • Task hiển thị UART: Dashboard (Tốc độ / Pin / Mode)
  • Schedule Table cấu hình theo chu kỳ
  • LED cảnh báo pin thấp / TF log sự kiện

Tổ chức OS

Thành phầnMô tả chức năng
Task_SpeedSensorMô phỏng đọc cảm biến tốc độ (tick counter hoặc interrupt counter)
Task_BatterySensorMô phỏng đọc điện áp pin
Task_ModeHandlerĐọc nút nhấn/UART để thay đổi chế độ lái
Task_DisplayGửi UART thông tin: tốc độ, pin, mode (5Hz)
Task_WarningHandlerNếu pin thấp < 30% → gửi cảnh báo (bằng LED hoặc UART)

Lập lịch thời gian:

  • SpeedSensor: mỗi 200ms
  • BatterySensor: mỗi 500ms
  • Display: mỗi 200ms
  • WarningHandler: mỗi 1s
  • ModeHandler: chờ sự kiện (nút/UART)

Kết quả đầu ra:

  • Log UART: “Speed: 35 km/h | Battery: 78% | Mode: Normal”
  • Thay đổi Mode bằng UART / Button
  • Hiển thị mỗi 200ms qua UART