>>DataSheet(STM8L052C6) หน้านึง มันบอกการกินกระแส
code executed from RAM (1MHz, HSE) = 0.20 mA
code executed from FLASH (1MHz, HSE) = 0.52 mA
>>เลยสงสัยว่า โคดแบบไหน มัน exexcuted จาก FLASH หรือครับ ?
เพราะ ปกติที่รู้ เมื่อ ON MCU.. มันก็โหลด Code ลงสู่ RAM ไม่ใช่หรือครับ
ขอบคุณล่วงหน้าครับ :o
MCU ส่วนใหญ่จะ execute บน Flash ครับ
ส่วนตัวที่ execute บน RAM จะเป็นพวก Microprocessor (พวก Embedded Linux) ครับ
การ execute บน RAM จะมีข้อดีมากกว่า แต่ RAM มันแพงครับ
และก็ยุ่งยากตรงต้องมาโหลดโปรแกรมขึ้น RAM ก่อน เพราะ RAM
ไม่สามารถเก็บข้อมูลไว้ได้เมื่อไม่มีไฟเลี้ยง ส่วนใหญ่โปรแกรมใน
MCU ที่มีการ execute บน RAM จะเป็นโปรแกรมเฉพาะทาง เช่น
โปรแกรมที่ต้องการความเร็วในการ execute สูง ๆ หรือไม่ก็พวก
bootloader ที่ต้องทำการลบ Flash และโปรแกรมใหม่ทั้งหมด
ขณะที่ทำการลงโปรแกรมใหม่อยู่ โปรแกรม bootloader
จึ่งต้องหลบไปอยู่ใน RAM แทน ไม่งั้นจะโดนลบไปด้วย
MCU ส่วนใหญ่เลยเลือก execute บน Flash แทน เพราะราคาถูกกว่า
แล้วก็โปรแกรมใน MCU มักไม่มีการเปลี่ยนแปลงอะไรอยู่แล้ว
ไม่เหมือน Embedded Linux ที่โปรแกรมอาจมีการโหลดเข้า
โหลดออกตลอดเวลา