摘要:
最近要在Cortex-M3上写一个简单的操作系统,打算使用IAR,为了写好启动代码,花了一些时间了解了IAR在main()以前做了些什么事。
首先系统复位时,Cortex-M3从代码区偏移0x0000'0000处获取栈顶地址,用来初始化MSP寄存器的值。
接下来从代码区偏移0x0000'0004获取第一个指令的跳转地址。这些地址,是CM3要求放置中断向量表的地方。
这里是一个程序的启动区的反汇编:
__vector_table: 08004000 2600
08004002 2000
08004004 7E1D
08004006 0800
这个程序是由IAP程序来启动的,IAP程 阅读全文