thumbnail - Tại sao hầu hết các lập trình viên không thích lập trình nhúng phần cứng?
Kim Ánh Vu
Hà Nội

Tại sao hầu hết các lập trình viên không thích lập trình nhúng phần cứng?

Để thích làm công việc lập trình phần mềm nhúng phần cứng (và tại sao phải làm một công việc nếu bạn không thích nó), bạn phải thực sự hiểu phần cứng và cảm thấy thoải mái với nó. Đây là bàn làm việc của tôi tại nơi làm việc:

Tại sao hầu hết các lập trình viên không thích lập trình nhúng phần cứng? 

Các lập trình viên nhúng ít nhất phải có khả năng đọc và hiểu các biểu dữ liệu dành cho bộ vi xử lý hoặc bộ vi điều khiển dài hàng trăm hoặc thậm chí vài nghìn trang; có khả năng đọc giản đồ, sử dụng máy hiện sóng, đồng hồ vạn năng và các thiết bị kiểm tra khác; và biết cách sử dụng tất cả các thiết bị ngoại vi vi điều khiển phổ biến, như I2C, SPI, UART, USB, DMA, I2S, ADC, DAC và nhiều thiết bị khác.

Khi lập trình hệ thống nhúng, bạn thường có tài nguyên rất hạn chế, bắt đầu từ vài trăm byte Flash và có thể chỉ 16 byte RAM cho một vi điều khiển 8 bit nhỏ (PIC10F200). Bạn bị hạn chế sử dụng hợp ngữ cho những thứ nhỏ bé này.

Các chương trình nhúng thường không có hệ điều hành (“được gọi là chạy trên kim loại trần”) và không có hệ thống tệp tích hợp sẵn. Đôi khi có sẵn một framework, chẳng hạn như Harmony của Microchip cho bộ xử lý 32-bit.

Gỡ lỗi có thể là một nỗi đau. Bạn thường có thể đặt các điểm ngắt trong IDE (hệ thống phát triển tích hợp) nhưng vì điều đó sẽ dừng mọi thứ nên chúng có thể không hữu ích khi làm việc với hệ thống thời gian thực. Đôi khi bạn có một lỗi chỉ xuất hiện mười phút một lần và rất khó để tái tạo.

Tôi đã có bằng cấp về cả phần cứng (BSEE) và phần mềm (MSCS) và ăn nên làm ra. Tôi đã thiết kế hệ thống nhúng trong hơn 40 năm (dự án đầu tiên là hệ thống đa 8080 vào năm 1975).

Tôi đã làm việc với nhiều kỹ sư điện học lập trình, nhưng có rất ít lập trình viên tự học chuyên sâu về phần cứng. Tôi hơn 70 tuổi, làm việc toàn thời gian với tư cách là nhà phát triển được nhúng và vẫn thấy vui vẻ.

Có thể bây giờ các bạn trẻ đã khác thời của tôi, nhưng tôi vẫn thấy rằng các lập trình viên không thích lập trình phần mềm nhúng. 

Tom Crosley

Kỹ sư Kỹ thuật & Hệ thống nhúng, Đại học Bách khoa Turin (2018) và George Pikoulis, Thạc sĩ Khoa học Máy tính & Hệ thống Nhúng, Đại học Piraeus (2016)

Chủ đề liên quan

Chủ đề khác