看邏輯地址是否統(tǒng)一編址。
FLASH,RAM在同一個邏輯地址空間的,都是直接用用const,如arm,stm8,msp430等。
FLASH,RAM邏輯地址空間分開的,要用其它辦法,通常是特殊關(guān)鍵字,__flash,__code等。
如AVR,8051等。
注:const本身并沒有flash的意思。
如果flash,ram邏輯地址統(tǒng)一編址,那么編譯器把全局或靜態(tài)const變量分配到FLASH,RAM都可以。
為了節(jié)省ram,通常編譯器會把全局或靜態(tài)const變量分配到FLASH。
如果flash,ram邏輯地址分開編址,那么全局或靜態(tài)const變量只能放到ram所在的邏輯地址空間,而無法放到FLASH。
注:邏輯地址統(tǒng)一編址,可以是哈弗結(jié)構(gòu)結(jié)構(gòu),也可能不是。
邏輯地址分開編址,通常是哈弗結(jié)構(gòu)。