zmain_ram_init();//初始化堆栈内存空间<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
//初始化堆栈内存,以“高水位线”为准。这段程序真的是没有看懂,这段程序跟链接器,程序段在链接文件中的存放,以及IAR C/C++编译器都有莫大的关系,真的没看懂只知道是初始化了调用和返回时要用到的堆栈空间,暂时不管,用吧!
static ZSEG void zmain_ram_init( void )
{
uint8 *end;
uint8 *ptr;
// Initialize the call (parameter) stack
end = (uint8*)CSTK_BEG; // Lower end
ptr = (uint8*)(*( __idata uint16*)(CSTK_PTR)); // Upper end
while ( --ptr > end )
*ptr = STACK_INIT_VALUE;
// Initialize the return (address) stack
ptr = (uint8*)RSTK_END - 1; // Upper end
while ( --ptr > (uint8*)SP )
*(__idata uint8*)ptr = STACK_INIT_VALUE;
}
文章评论(0条评论)
登录后参与讨论