计算机运行的条件是,程序必须放在它可【取指】的存储器中,它不知道(也无须知道)这个存储区域是用什么材料做的(ROM、FLASH、EPROM、EEPROM、RAM……)
所以就有一个先决的条件:你的RAM必须在程序区(可程序取指)。
接下来你只要将程序放入这个区就可以了。
例如:单片机只有4K程序区,你用16K的RAM扩充了程序区。这样就可以达成你的愿望了。
不过。你的系统不能掉电,掉电后放进RAM的程序就没有了。
一般用RAM运行程序有两个情况:
1、故意增加程序**难度。
2、有外部存储程序,切换工作。
这样就不用巨大的程序空间了,谁需要工作,谁把谁载入RAM。不工作的不载入。
这类似于PC机的工作方式。
void APROM_UpDateTest(void)__attribute((section(".ARM.__at_(1024ul*16)")));
void code APROM_UpDateTest(void)_at_((1024ul*10));
u8 code FlashParameter[10] _at_((1024ul*18)-128);
|