DevBriX
Firmware·Jul 15, 2026·11 min read

RTOS hay bare-metal trên STM32 cho ứng dụng công nghiệp?

So sánh hai hướng tiếp cận về thời gian đáp ứng, khả năng bảo trì và chi phí kiểm định, kèm hướng dẫn lựa chọn cho từng loại máy.

RTOS hay bare-metal trên STM32 cho ứng dụng công nghiệp?

RTOS hay bare-metal trên STM32: một quyết định, không phải sở thích

Đội firmware công nghiệp nào cũng từng tranh luận chuyện này, và thường được giải quyết bằng thói quen hơn là bằng yêu cầu thực tế của máy. Đây là cách tiếp cận thực dụng hơn.

Thời gian đáp ứng

Code bare-metal chạy theo ngắt cho đáp ứng tất định, dưới mức micro giây, không có jitter do lập lịch — vì đơn giản là không có bộ lập lịch. RTOS cộng thêm độ trễ chuyển task, thường ở mức vài micro giây trên Cortex-M4 168 MHz — không đáng kể với hầu hết vòng điều khiển công nghiệp, nhưng lại quan trọng nếu bạn đang đóng vòng dòng điện ở 100 kHz.

Khả năng bảo trì khi codebase phình to

Đây là chỗ bare-metal bắt đầu gây đau đầu. Khi bạn phải xử lý đồng thời hơn bốn, năm trách nhiệm — truyền thông, điều khiển chuyển động, giám sát an toàn, ghi log — một superloop phẳng sẽ biến thành mạng lưới cờ (flag) và state machine mà chỉ người viết gốc mới dám sửa an toàn. RTOS (FreeRTOS là lựa chọn mặc định thực dụng trên STM32) cho bạn task, queue, semaphore như những khối nền tảng có sẵn, và một kỹ sư mới có thể hiểu một task mà không cần đọc toàn bộ codebase.

Chi phí kiểm định và chứng nhận

Nếu sản phẩm cần chứng nhận IEC 61508 hay tương đương về an toàn chức năng, mỗi task, mỗi mức ưu tiên ngắt, mỗi tài nguyên dùng chung đều là thứ kiểm toán viên sẽ hỏi đến. Bare-metal có bề mặt cần chứng nhận nhỏ hơn. RTOS vẫn chứng nhận được (SafeRTOS sinh ra chính vì mục đích này), nhưng cần dành thời gian kỹ thuật thực sự cho việc đó — nó không phải là thứ thay thế FreeRTOS "cắm vào là chạy" trong một hồ sơ an toàn.

Hướng dẫn lựa chọn nhanh

  • Một trục động cơ, vòng thời gian thực khắt khe, team nhỏ: superloop bare-metal với ngắt.
  • Máy nhiều trục, có stack truyền thông, HMI, log chạy song song điều khiển: RTOS.
  • Máy có chứng nhận an toàn: dù chọn hướng nào, hãy dành ngân sách cho kernel đã chứng nhận hoặc lõi bare-metal được review nghiêm ngặt — đừng ứng biến ở đây.
  • Team dự kiến sẽ mở rộng: RTOS đáng giá ngay khi bạn có hơn hai kỹ sư firmware cùng động vào một binary.

Một hướng trung gian đáng cân nhắc

Không ít thiết kế STM32 trong sản xuất chạy một bộ lập lịch hợp tác (cooperative scheduler) nhẹ — không phải RTOS đầy đủ, cũng không phải superloop phẳng — cho phép tách task mà không tốn overhead hay gánh nặng chứng nhận của một kernel preemptive. Nếu ngân sách thời gian của bạn còn dư dả và team nhỏ, đây thường là câu trả lời thực dụng mà ít ai nhắc tới trong cuộc tranh luận RTOS-vs-bare-metal.

Kết luận: hãy quyết định dựa trên ràng buộc thời gian thực khắt khe nhất và lộ trình mở rộng của team, không phải dựa trên thứ bạn từng dùng lần trước.