一个很二的问题,关于s3c2440的中断与“起步阶石”

2019-07-16 09:32发布

s3c2440跑裸机中断程序时,程序的链接地址设置在0x30000000,那么所有的地址标号都是基于0x30000000的偏移,这时程序中必须有代码将程序整体搬移到起始地址为0x30000000的存储空间。而同时“起步阶石”中仍旧有程序的前4k代码,这和0x30000000的前4k代码相同。那么当中断发生时,比如说IRQ中断发生,由于ARM9的机制,PC将被强制指向0x00000018处,这应该是指向“起步阶石”中的一个地址,然后实现中断函数的调用。不知道,我分析的对不对,请高手解答。
       另外,如果事实就是这样,那么可以在程序的前4k代码中放置总中断向量表,系统硬件初始化代码,和程序搬移代码。4k后的代码是操作系统和应用程序。而且,前4k代码中的程序搬移代码,只用搬移4K以后的代码到0x30000000处。事实是否如此?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。