Tài liệu học lập trình nhúng - 5 bước bắt đầu với lập trình nhúng

Tôi đã được hỏi câu hỏi, "Tôi sẽ bắt đầu với phát triển nhúng như thế nào?" gần đây thường xuyên hơn. Đây thực sự là một câu hỏi khó. Nó không giống như, Làm thế nào tôi có thể bắt đầu với Haskell?, Hay Làm thế nào để tôi bắt đầu với Rust?. Lập trình nhúng là khác lạ và đa dạng đến mức gần giống như hỏi về “Cách tôi bắt đầu với lập trình như thế nào? “.


Tôi nghĩ rằng những người hỏi có một trong hai mục tiêu:
Tôi muốn làm cho phần mềm của mình ảnh hưởng đến những thứ mang tính chất vật lý.
Tôi muốn tìm hiểu những gì thực sự xảy ra ở phía trong của những cỗ máy.
Nếu bạn chủ yếu quan tâm đến mục tiêu đầu tiên, thì tôi khuyên bạn nên tìm hiểu nền tảng nhúng hiện có ( Arduino , Raspberry Pi , Particle , v.v ...). Họ có rất nhiều cộng đồng tuyệt vời để tham gia và học hỏi. Tuy nhiên, nếu bạn quan tâm hơn đến mục tiêu thứ hai, nhiệm vụ của bạn khó hơn một chút, đó là:
1. Học C
Vì nhiều lý do, phần lớn các công cụ nhúng được thiết kế với C là ngôn ngữ chính. Nếu bạn muốn viết phần mềm nhúng không chỉ cho một vài sở thích, bạn sẽ cần học C (và hy vọng có thể cuối cùng là Rust ).
2. Tìm hiểu một số thiết bị điện tử cơ bản
Đừng lo lắng, bạn không cần phải tham gia một lớp học hay bất cứ điều gì. Bạn chỉ cần một sự hiểu biết cơ bản về điện áp, dòng điện, công suất, điện trở, định luật ohms. Bạn có thể có thể nhận được chỉ bằng một vài hướng dẫn trực tuyến và một số thử nghiệm với các trình giả lập trực tuyến và / hoặc các mạch thực.
3. Nhận thiết bị cơ bản
Vì đây là phần mềm nhúng và bạn thực sự sẽ tương tác với thế giới thực,  bạn sẽ cần một số thiết bị vật lý. Ít nhất bạn sẽ cần:
Mỏ hàn
Đồng hồ đo kỹ thuật số (DMM)
Bộ test  phần cứng / bộ điều hợp JTAG (như bộ điều hợp ST-Link hoặc OLMEX)
Tôi cũng khuyên bạn nên có một Trình phân tích logic. Ví dụ như  from Saleae, bạn cũng có thể tìm hiểu một số trình phân tích khác rẻ hơn.
4. Chọn Vi điều khiển và Toolchain
Bây giờ chúng ta đã có các nguyên tắc cơ bản, chúng ta có thể bắt code được không?!
Để chạy các chương trình, bạn sẽ cần một vi điều khiển, một trình biên dịch có thể biên dịch các chương trình của cho vi điều khiển và các công cụ khác để tải các chương trình lên phần cứng cũng như  sửa lỗi.
Cá nhân tôi thích họ vi điều khiển STM32 . Chúng được hỗ trợ tốt bởi công cụ nhúng như: arm-gcc cùng với openOCD . Sự kết hợp này không thân thiện với người dùng như Arduino, nhưng nó cũng phù hợp với nhiều ứng dụng trong thế giới thực hơn.
Một lựa chọn khởi đầu tốt là bộ STM discovery kit ; chúng rẻ, tương đối dễ tiếp cận và dễ dàng để bắt đầu.
ARM cho đến nay là kiến trúc phổ biến nhất cho  embedded micros (đặc biệt là micros 32 bit) và arm-gcc.
5. Chọn linh kiện và và tìm hiểu về Datasheets
Lựa chọn linh kiện và tạo ra một mạch thích hợp! Một số nơi tốt để tìm kiếm linh kiện là sparkfun và adafbean.
Khi bạn đã tìm thấy một vài linh kiện mà bạn nghĩ sẽ làm những gì bạn muốn, bạn sẽ phải đào sâu vào datasheets. Datasheets về cơ bản là các hướng dẫn cho các linh kiện điện tử. Chúng là chìa khóa để tìm ra cách sử dụng một linh kiện và để đảm bảo rằng nó sẽ hoạt động cho ứng dụng của bạn. Hầu hết các câu hỏi về linh kiện có thể được trả lời bằng datasheets. Nhưng datasheets có thể là khó khăn. Nó đủ rắc rối để tôi có 3 quy tắc lập trình nhúng của riêng mình:
Quy tắc đầu tiên của lập trình nhúng: Đọc datasheets.
Quy tắc thứ 2 của lập trình nhúng: Đọc datasheets.
Quy tắc thứ 3 của lập trình nhúng: Đừng tin datasheets.
Datasheets là nguồn gốc của tất cả các kiến thức, nhưng cũng không hoàn toàn trực quan hoặc thậm chí chính xác. Tôi khuyên bạn nên đọc datasheets  và hướng datasheets  của Sparkfun khi mới bắt đầu.

Share:

ĐỐI TÁC LIÊN KẾT TUYỂN DỤNG NHÂN SỰ CỦA IMIC TECHNOLOGY

IMIC Technology

IMIC Technology tự hào là doanh nghiệp đầu tiên tại Việt Nam triển khai các Chương trình Đào tạo chuyên môn dự án cho Học viên ngành CNTT/CNPM. Cũng là một trong những doanh nghiệp đạt được nhiều giải thưởng lớn trong lĩnh vực này. Góp phần phát triển mạnh ngành CNTT/CNPM tại nước ta hiện nay.