Lập trình nhúng là gì?

Lập trình nhúng là gì?
Lập trình nhúng đang là ngành hot hiện nay. Chúng ta hãy cùng tìm hiểu xem cần những kiến thức để trở thành một lập trình trong nghề nhé!

Lập trình nhúng là gì?

Lập trình nhúng là một thuật ngữ lập trình chỉ một hệ thống có khả năng tự trị, nó được nhúng vào trong một môi trường hay một hệ thống mẹ nào đó. Đó là các hệ thống tích hợp cả phần cứng và phần mềm.

Mục đích chủ yếu là để phục vụ các bài toán chuyên dụng trong nhiều lĩnh vực công nghiệp, tự động hóa điều khiển, truyền tin. Hệ thống nhúng thường được thiết kế để thực hiện một chức năng chuyên trách, riêng biệt nào đó.

Lập trình nhúng là gì?

Các thành phần cơ bản trong hệ thống nhúng

  • ROM: Chứa chương trình, các dữ liệu được fix hoặc các constant data. Hiện nay, đa số các hệ thống đều sử dụng EEPROM hoặc FLASH để thay cho ROM bởi chúng có khả năng ghi xóa, update chương trình mới.
  • RAM: Lưu chương trình thực thi và các biến tạm.
  • MCU: Là bộ xử lý tính toán trung tâm.

Ngoài ra, còn có các ngoại vi như ADC, DAC, các khối giao tiếp UART, I2C…

Lập trình nhúng là gì?

Ứng dụng lập trình nhúng

  • Được sử dụng rộng rãi trong các ngành máy tính, điện tử, viễn thông ngân hàng.
  • Hệ thống nhúng được tích hợp cả phần mềm và phần cứng, tích hợp được 1 thiết bị lập trình như vi xử lý.
  • Hệ thống nhúng và PC, thiết bị cầm tay PDA có sự khác biệt do sự thiết kế để chuyên biệt hóa chức năng cụ thể nhằm tăng chất lượng cho hệ thống giảm thiểu giá thành.

Học lập trình nhúng ra làm nghề gì?

Embedded software

Bạn sẽ là một developer (lập trình viên) đúng nghĩa, và có thể phát triển trở thành một lập trình viên giỏi, bạn sẽ cùng với đội nhóm của mình phát triển các sản phẩm phần mềm cho các sản phẩm nhúng, có thể là application (web, desktop hay mobile app), firmware, OS (hệ điều hành), driver.

Công việc chủ yếu là viết code, test code, viết requirement, document cho sản phẩm.

Embedded hardware

Là một người chuyên thiết kế board mạch hay còn gọi là thiết kế PCB, test board mạch. Công việc này đòi hỏi bạn phải rất giỏi về phần cứng và điện tử. 

Mỗi project mà bạn tham gia trong công ty sẽ có một process nhất định mà buộc bạn phải làm quen trước khi nhận task và hoàn thành nó. Nhưng bạn hãy yên tâm, bạn chắc chắn sẽ làm được việc.

Những kiến thức cơ bản về lập trình nhúng

  • Học lập trình C: bạn cần học C đến mức chuyên gia, đây là ngôn ngữ quan trọng bật nhất trong lập trình nhúng.
  • Tiếng anh: ít nhất bạn phải đọc được tài liệu chuyên ngành kĩ thuật, nhất là datasheet.
  • Kiến thức về điện tử: các kiến thức về logic, vi điều khiển, vi xử lý, ADC, TIMER, INTERRUPT.
  • Các loại giao tiếp (protocol): UART, I2C, SPI, RS232, JTAG… (nâng cao: SATA, PCIE, USB, CAN, MOST).
  • Hệ điều hành: kiến trúc hệ điều hành, kiến trúc máy tính, nhất là hệ điều hành linux.
  • Cấu trúc dữ liệu và giải thuật: là chuyên gia phần cứng, bạn cũng phải code, đã code thì phải có giải thuật.
  • Memory: NOR, NAND, SRAM, DRAM.
  • Hệ điều hành thời gian thực (Real time OS).

Lập trình nhúng là gì?

Kiến thức chuyên ngành

Embedded software

  • Lập trình ứng dụng (application): C++, Java.
  • Lập trình device driver (dùng ngôn ngữ C).
  • Lập trình Android, lập trình web (basic).
  • Scrip: Perl, Python, đặc biệt là Shell script trên linux.
  • Cấu trúc dữ liệu và giải thuật cực tốt.
  • Xây dựng môi trường (build environments): Makefile, Cmake.

Embedded hardware

  • Thiết kế PCB: Allegro hay Antium.
  • Design schematic: bạn cần có kiến thức điện tử thật tốt để làm việc này.
  • Test board: sau khi đã thiết kế xong, bạn cần phải biết test board.
  • Đánh giá và lựa chọn linh kiện cho dự án sao cho tối ưu.
  • Sử dụng các loại dụng cụ máy đo.
  • Kĩ năng hàn mạch, sửa mạch (nếu bạn là Freelancer).