มีแพลตฟอร์มฝังตัวหลายระดับโดยใช้ C เป็นภาษาการเขียนโปรแกรม (แน่นอนว่าคุณมีอิสระในการใช้ภาษาแอสเซมบลีได้ตลอดเวลา)
สำหรับ 'ระดับ' ฉันกำลังพูดถึงระดับ SRAM ภายในและระดับทรัพยากร ROM ของระบบ
บางครั้งแพลตฟอร์มเหล่านี้มีข้อ จำกัด ด้านทรัพยากร (เช่น 8051 แพลตฟอร์มบางรุ่นมี 128 ไบต์ของ User SRAM เท่านั้น)
มันไม่มีความหมายเลยที่จะรองรับการจัดสรรหน่วยความจำแบบไดนามิกที่มีจำนวนเล็กน้อยสำหรับ RAM (ใหม่ / ลบ) หรือแม้กระทั่ง malloc ใน C
หนึ่งในการปรับปรุงหลักจาก C ถึง C ++ คือกระบวนทัศน์เชิงวัตถุ C ++ เหมาะสำหรับซอฟต์แวร์ที่มีหน่วยความจำขนาดใหญ่กว่า
แต่ไม่ใช่ในเฟิร์มแวร์ในตัวที่มีขนาด จำกัด สูงสุดถึง 32KB (เช่นใน plaform MCU แบบ 16 บิต)
ไม่จำเป็นต้องมีคอมไพเลอร์ C ++ ซึ่งโดยทั่วไปแล้วจะซับซ้อนกว่าคอมไพเลอร์ C (อย่างน้อยผู้ให้บริการ SDK จะไม่สนใจสิ่งนี้)
ในความเป็นจริงฉันแทบจะไม่สามารถหาคอมไพเลอร์ C ++ บนแพลตฟอร์ม ARM7 แบบ 32 บิต
มันก็ไม่คุ้มกับความซับซ้อน
ในบาง 8051 (8 บิต): ROM 1MB, RAM 128B
TI MSP430 (16 บิต): 32KB ROM, 4KB RAM
ST Microelectronics ARM คอร์เท็กซ์™แบบ 32 บิต -M3 ซีพียูคอร์ (STM32F103T4): 16 หรือ 32 Kbytes ของหน่วยความจำแฟลช 6 หรือ 10 Kbytes ของ SRAM