Với các hệ thống nhúng dựa trên bộ vi điều khiển 8 và 16 bit, việc phát triển phần mềm có thể phù hợp với nguồn lực hạn chế của những hạn chế lưu trữ rất khiêm tốn này có thể dễ dàng hơn (có thể là vài byte RAM cho bộ vi điều khiển 8 bit cấp thấp , với 2-8 KiB ROM hoặc EPROM / Flash để lưu trữ mã).
Trong những trường hợp đó, các ngôn ngữ nhỏ như C hoặc lắp ráp có xu hướng là ngôn ngữ phát triển được sử dụng phổ biến nhất. Là một so sánh tương đối thô sơ, một trình biên dịch hoàn chỉnh và trình biên dịch C99 có thể vừa với một đĩa mềm, trong khi bạn cần một vài MiB cho một hệ thống phát triển C ++ hiện đại (với STL, v.v.).
Khi bạn đang tìm kiếm micros micros cao cấp hơn (16 bit cao cấp và chủ yếu là 32 bit, với 64 bit khá hiếm) và DSP trong môi trường nhúng thì các hạn chế sẽ yếu đi và sự phát triển phần mềm có thể chiếm phần lớn sự phát triển vì vậy, thật hợp lý khi sử dụng các công cụ phát triển hiệu quả nhất, bao gồm các ngôn ngữ nâng cao hơn với các tính năng như ngôn ngữ lập trình hướng đối tượng (OOP) như C ++ và các ngôn ngữ mới hơn (Java, Perl, Ruby, Python).
Có thể lắp ráp và C để dự đoán dung lượng bộ nhớ đang được sử dụng, do đó thiết kế bị giới hạn không gian là khả thi, nhưng các tính năng nâng cao như mẫu, xử lý ngoại lệ và ràng buộc thời gian chạy khiến không thể biết chính xác dấu chân bộ nhớ cần thiết cho một chương trình C ++ tiêu chuẩn trước. Tôi không biết đủ về MISRA C ++ , một tập hợp con của C ++, để bình luận về nó.
Các ngôn ngữ dựa trên các máy ảo chạy mã byte (Java, Perl, Python) kém trưởng thành hơn trong trải nghiệm của nhà phát triển nhúng và vì các ngôn ngữ này được thiết kế để cách ly lập trình viên khỏi phần cứng cụ thể, điều đó cũng gây khó khăn hơn cho lương tâm những hạn chế và hạn chế của hệ thống phần cứng nhúng. Đây không phải là vấn đề với bộ xử lý 32 bit nhanh (ví dụ ARMv7) với MiB nếu không phải là GiB của RAM.
Tất cả các triển khai BASIC mà tôi biết là khá đơn giản trong các tính năng ngôn ngữ, phần lớn vẫn đúng với di sản của Dartmouth BASIC từ những năm 1960. Điều này có nghĩa là ngôn ngữ không có bất kỳ thư viện thời gian chạy hoặc xử lý ngoại lệ phức tạp nào và trình thông dịch hoặc trình biên dịch khá đơn giản để viết và cũng có kích thước tệp nhỏ. Hầu hết các bộ vi điều khiển đều có ít nhất một trình biên dịch BASIC cho nó.
Tôi hy vọng rằng những phác thảo rộng rãi về lý do bạn sẽ tìm thấy C và lắp ráp chủ yếu được sử dụng trên các hệ thống nhúng nhỏ hơn hoặc cũ hơn và với những hạn chế của các hệ thống nhúng từ trung bình đến cao cấp mới hơn chỉ khác một chút so với máy tính cá nhân để bàn truyền thống.