在8051的keil可以使用xdata、idata等关键字将变量放到不同的区域。在MDK、或GNU等编译器中,看到使用指针或__attribute__((at(ARRAY_ADDRESS_START)))这样的操作,但是多个变量这种方案是不是有点麻烦,而且象heap和stack也不能所以指定区域
引用: fxyc87 发表于 2023-12-10 13:56 SDRAM由于需要初始化,在未初始化前处于不可用状态。所以堆栈不能指定在这个范围。
你的观点不严谨,只是说bootload的第一阶段不可以使用SDRAM,其它的代码是可以使用的,例如:linux系统是将bootload的代码就是,初始化好的代码装载到SDRAM中的,后继的kernel都是在SDRAM中的,所以heap和stack的位置只取决于编译器。