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

Cập nhật ngày: 29/03/2024 - Đã có 768 lượt xem bài viết này!
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 liệu học lập trình nhúng - 5 bước bắt đầu với lập trình nhúng

Danh mục bài viết:  

1. Học C

2. Tìm hiểu một số thiết bị điện tử cơ bản

3. Nhận thiết bị cơ bản

4. Chọn Vi điều khiển và Toolchain

5. Chọn linh kiện và và tìm hiểu về Datasheets

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.

Tại sao bạn nên chọn Học LẬP TRÌNH HỆ THỐNG NHÚNG EMBEDDED SYSTEM ngay hôm nay???

✍️ Qua những nội dung dưới đây, bạn sẽ biết tại sao nên theo học & làm lập trình hệ thống nhúng? Những công việc nào trong hệ thống nhúng sẽ được thực hiện? Vậy hãy bắt đầu!!
✍️ Hệ thống nhúng là sự kết hợp của phần cứng và phần mềm. Mục đích của lập trình nhúng là kiểm soát một thiết bị, một quy trình hoặc một system/framework lớn hơn. Chúng hiện diện ở khắp mọi nơi xung quanh chúng ta. 
✍️ Một số ví dụ về những thứ bao gồm hệ thống nhúng là những thứ điều khiển các đơn vị cơ bản của một chiếc xe, kiểm soát giao thông, chipset và lập trình trong hộp giải mã cho TV tiên tiến, máy điều hòa nhịp tim, chip trong thiết bị chuyển mạch viễn thông, thiết bị xung quanh và hệ thống điều khiển được nhúng trong lò phản ứng hạt nhân,...
✍️ Có sự phát triển theo cấp số nhân trong lĩnh vực lập trình hệ thống nhúng. Một trong những lý do quan trọng nhất cho điều này là nó là một phần chính của IoT. Giờ đây, các hệ thống ngày càng trở nên thông minh và phân tán, chúng cũng trở nên phức tạp hơn và phụ thuộc lẫn nhau. Điều này dẫn đến sự chuyển đổi trong các hệ thống nhúng từ thông thường sang thông minh. Điều này làm tăng vai trò của các kỹ sư lập trình nhúng (embedded developer).

👉👉 Công việc trong lĩnh vực lập trình hệ thống nhúng là gì?
🍁 Kỹ sư lập trình nhúng, nhưng không tương tự như kỹ sư phần mềm, họ cần hiểu biết sâu sắc về phần cứng mà nó chạy trên đó. 
Kỹ sư lập trình nhúng biết sơ đồ của phần cứng và cách các biểu dữ liệu chip liên quan đến mã được viết cho phần cứng. 
🍁 Các kỹ sư lập trình nhúng chịu trách nhiệm thiết kế, phát triển, tối ưu hóa và triển khai phần mềm được lập trình vào các thiết bị được xây dựng xung quanh bộ vi xử lý.

👉👉 Cơ hội nghề nghiệp cho các lập trình viên Nhúng?
🍁 Theo nghiên cứu, một trong những kỹ năng hàng đầu trong những năm gần đây là Internet Of Things(IoT), Machine Learning,  Artificial Intelligence (AI) và đây là những lĩnh vực cốt lõi trong lập trình nhúng, khiến nó trở thành một trong những công việc được trả lương cao nhất. 
🍁 Các kỹ sư lập trình nhúng hiện đang có nhu cầu cao, làm tăng công việc trong các hệ thống nhúng. 
Điều đó có nghĩa là bạn có thể mong đợi một mức lương hợp lý hơn. Theo nghiên cứu, mức lương trung bình hàng năm cho một kỹ sư lập trình nhúng ở Hoa Kỳ là khoảng 83.000 USD. Các thuật ngữ được sử dụng phổ biến nhất để mô tả các kỹ sư nhúng:
🏅 Kỹ sư phần mềm (Firmware engineer)
🏅 Kỹ sư người máy (Robotics engineer)
🏅 Kỹ sư phần mềm nhúng (Embedded firmware engineer)
🏅 Kỹ sư hệ thống (Systems engineer)

👉👉 Việc làm tự do (Freelance Jobs)?
🍁 Nghề làm việc tự do đang gia tăng, với sự gia tăng của các sản phẩm như tủ lạnh và hệ thống nhà thông minh và các thiết bị được kết nối sử dụng nhiều phần mềm hơn, nó cũng làm gia tăng nhu cầu công việc về lập trình hệ thống nhúng.

👉👉 Vậy những ai nên tham gia khóa đào tạo này?
1️⃣ - Tất cả những ai đang tìm hiểu về lập trình Nhúng & muốn nắm được nhiều chuyên môn về phát triển các dự án Nhúng để tham gia vào dự án tại Doanh nghiệp.
2️⃣ - Những lập trình viên là newbie hoặc đang tự học nghề lập trình Nhúng (Embedded) nhưng mãi nhưng chưa thành công.
3️⃣ - Các nhà quản lý kinh doanh trong lĩnh vực hệ thống Nhúng (Embedded System) muốn hiểu rõ hơn về qui trình phát triển dự án lập trình hệ thống Nhúng, cách để tạo ra các sản phẩm để hiệu quả hơn trong công tác điều hành quản lý dự án.
4️⃣ - Các kiểm thử viên trong lĩnh vực Nhúng muốn nâng cao hơn sự hiểu biết của mình.
5️⃣ - Hoặc đơn giản nếu bạn chỉ muốn tham gia khám phá nghề "lập trình Nhúng" để từ đó tìm kiếm giải pháp cho ý tưởng của mình.

👉👉 Lời cam kết của khóa đào tạo nhân sự lập trình Nhúng?
1️⃣ - Đây là khóa đào tạo đầy đủ và chi tiết nhất về lập trình Nhúng từ trước đến nay.
2️⃣ - Các bài thực hành trong khóa đào tạo là các "Case Study" rất thực tế mà Chuyên gia IMIC đã dành nhiều tâm huyết biên soạn và đã đưa vào khóa đào tạo cho chính các Học viên của mình.
3️⃣ - Tất cả các phần trong khóa đào tạo được diễn đạt một cách trực quan nhất, dễ hiểu nhất, bạn được tự tay thực hiện các thử nghiệm trên thiết bị để thỏa mãn niềm đam mê của mình với lập trình Nhúng.
4️⃣ - Cam kết hỗ trợ học viên sau khóa đào tạo qua: Group Zalo, Facebook, Website, Email & Hotline.
⚠️ Đặc biệt! Cam kết hỗ trợ giới thiệu nhân sự sau Tốt nghiệp sang một số Doanh nghiệp là đối tác Tuyển dụng nhân sự của IMIC (với điều kiện bạn cần nghiêm túc & nỗ lực học tập để đạt kết quả tốt nhất).

 

Bạn đang muốn tìm kiếm 1 công việc với mức thu nhập cao.
✅ Hoặc là bạn đang muốn chuyển đổi công việc mà chưa biết theo học ngành nghề gì cho tốt.
✅ Giới thiệu với bạn Chương trình đào tạo nhân sự dài hạn trong 12 tháng với những điều đặc biệt mà chỉ có tại IMIC và đây cũng chính là sự lựa chọn phù hợp nhất dành cho bạn:
👉 Thứ nhất: Học viên được đào tạo bài bản kỹ năng, kiến thức chuyên môn lý thuyết, thực hành, thực chiến nhiều dự án và chia sẻ những kinh nghiệm thực tế từ Chuyên gia có nhiều năm kinh nghiệm dự án cũng như tâm huyết truyền nghề.
👉 Thứ hai: Được ký hợp đồng cam kết chất lượng đào tạo cũng như mức lương sau tốt nghiệp và đi làm tại các đối tác tuyển dụng của IMIC. Trả lại học phí nếu không đúng những gì đã ký kết.
👉 Thứ ba: Cam kết hỗ trợ giới thiệu công việc sang đối tác tuyển dụng trong vòng 10 năm liên tục.
👉 Thứ tư: Được hỗ trợ tài chính với mức lãi suất 0 đồng qua ngân hàng VIB Bank.
👉  Có 4 Chương trình đào tạo nhân sự dài hạn dành cho bạn lựa chọn theo học. Gồm có:
1)  Data Scientist full-stack
2)  Embedded System & IoT development full-stack
3)  Game development full-stack
4)  Web development full-stack 
✅ Cảm ơn bạn đã dành thời gian lắng nghe những chia sẻ của mình. Và tuyệt vời hơn nữa nếu IMIC được góp phần vào sự thành công của bạn. 
✅ Hãy liên hệ ngay với Phòng tư vấn tuyển sinh để được hỗ trợ về thủ tục nhập học.
✅ Chúc bạn luôn có nhiều sức khỏe và thành công!

Tham khảo các khóa đào tạo nhân sự qua danh mục