手上一块英倍特的EM-SAM3S开发板,拿到已经有一个月了。本来是做uLoong活动使用的板子,可当初由于不熟悉这个芯片,使用了STM32F4当作了替代。最近准备抽点时间折腾下这个板子。
这个板子的资源如下:
今天从启动开始看看。以下内容是我分析英倍特提供的例程时的产物。
【预备知识】
【启动分析】
至于为什么会从vector加载,可以查看分散加载文件(.sct)。这里有这么一段:
Vector_region 0x400000
{
board_cstartup_keil.o (vectors, +FIRST)
}
这个声明就是让链接器将board_cstartup_keil.o加载到0x400000。
board_cstartup_keil.o由board_cstartup_keil..c生成。这个文件中,定义了两个东西:__vector_table[]和static void _Reset_Handler( void )
在这个函数中跳转到main函数。好了,花花丽丽的C开始了。
(至于为什么加载到了0x400000是__vector_table而不是_Reset_Handler,那是因为那个+FIRST这个属性)
【总结一下】
3、汇编文件workaround.s没用了。删掉里边的内容都没关系。于是一行汇编代码都没有了,这也算是自己写sct文件的好处吧。