'Nhúng' là một chút của thuật ngữ được tải ..
Trong một số khía cạnh, bất kỳ hệ thống nào dành riêng để chạy một ứng dụng có thể được gọi là hệ thống nhúng, miễn là có một số phần cứng được kiểm soát. Bạn có thể gọi một chiếc PPC.60 400 MHz với 2GB RAM đang chạy một ứng dụng java trên hệ điều hành linux, nếu nó tình cờ kiểm soát một quá trình thông qua các mô đun I / O cục bộ. Mặt khác, một arduino chỉ chạy một loại ứng dụng mạng tối thiểu nào đó sẽ không phải là một hệ thống nhúng. Nhưng có lẽ 'nhúng' làm cho hầu hết mọi người nghĩ về bộ điều khiển dựa trên flash chỉ với vài trăm byte RAM, không có hệ điều hành để nói và rất nhiều thiết bị ngoại vi trên chip.
Điều đó đang được nói, có lẽ hai rào cản lớn nhất mà các lập trình viên không nhúng thường gặp phải khi học các hệ thống nhúng là các thanh ghi I / O và các ngắt.
Các ngắt thực sự có thể dễ dàng hơn trong hai khái niệm đối với các lập trình viên không nhúng, vì các vấn đề chính với các chương trình này, đồng thời và lập trình hướng sự kiện, thường gặp trong các ứng dụng chính. Điều làm gián đoạn một nỗi đau là nhận ra sự nhạy cảm cực độ của một hệ thống đối với chất lượng xử lý ngắt của nó và sự phức tạp của việc xử lý phần cứng để xóa điều kiện ngắt và thiết lập cho điều kiện tiếp theo. Với GUI, bế tắc sẽ giết chết ứng dụng. Với một trình xử lý ngắt, sự bế tắc khiến toàn bộ hệ thống của bạn bị khóa.
Các thiết bị I / O dường như là khu vực gây ra nhiều khó khăn nhất. Đối với những người không quen biết, có thể khá ngạc nhiên khi phát hiện ra rằng việc đọc đăng ký này ở đây có ảnh hưởng đến đăng ký đó . Viết 1 'để xóa bit. Các bit trạng thái tự xóa khi bạn đọc một thanh ghi dữ liệu, v.v ... Có rất nhiều khả năng với phần cứng I / O không có quy tắc chung để xử lý nó, ngoại trừ tìm hiểu cách tìm và giải thích các bảng dữ liệu của thiết bị. Viết trình điều khiển thiết bị cho cổng nối tiếp sẽ dạy cho bạn nhiều về lập trình I / O cấp thấp.
Thực sự không có gì thay thế cho việc học những điều này ngoài việc xắn tay áo lên và lập trình một số ngôn ngữ C và / hoặc lắp ráp thẳng trên kim loại trần. Ngay cả hệ thống nhúng dựa trên java đã nói ở trên cuối cùng cũng cần trình điều khiển thiết bị cho I / O và điều này có nghĩa là cuối cùng xử lý một số C. Kinh nghiệm là giáo viên tốt nhất. Chọn một vi điều khiển, có thể là MSP430, TMS320, AVR, ARM, PIC, 68HC11, bất cứ điều gì, tìm một bộ eval và xây dựng một số hệ thống.