Appearance
启动过程
ARM-CM3处理器使用的是哈佛结构
哈佛结构是一种将程序指令存储和数据存储分开的存储器结构,如下图所示。中央处理器首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数据存储器中读取数据,并进行下一步的操作(通常是执行)。程序指令存储和数据存储分开,可以使指令和数据有不同的数据宽度
哈佛结构的微处理器通常具有较高的执行效率。其程序指令和数据指令分开组织和存储的,执行时可以预先读取下一条指令。
哈佛结构是指程序和数据空间独立的体系结构, 目的是为了减轻程序运行时的访存瓶颈。
哈佛结构能基本上解决取指和取数的冲突问题。
芯片上电以后会触发复位异常, 之后会寻找中断向量表, 之后会进行偏移
上电以后会汇获取复位异常位位置, 修改复位异常里面的内容, 就可以让处理器进行执行
可以通过设置引脚的状态来进行设置芯片启动的时候读取的位置
复位以后时钟的第四个上升沿的时候引脚的状态会被锁定
在启动延迟之后,CPU从地址0x0000 0000获取堆栈顶的地址,并从启动 存储器的0x0000 0004指示的地址开始执行代码。 因为固定的存储器映像,代码区始终从地址0x0000 0000开始(通过ICode和DCode总线访问), 而数据区(SRAM)始终从地址0x2000 0000开始(通过系统总线访问)。
- 从主闪存存储器启动:主闪存存储器被映射到启动空间(0x0000 0000),但仍然能够在它原 有的地址(0x0800 0000)访问它,即闪存存储器的内容可以在两个地址区域访问,0x0000 0000或0x0800 0000.
- 从系统存储器启动:系统存储器被映射到启动空间(0x0000 0000),但仍然能够在它原有的 地址(互联型产品原有地址为0x1FFF B000,其它产品原有地址为0x1FFF F000)访问它。
- 从内置SRAM启动:只能在0x2000 0000开始的地址区访问SRAM
启动文件
;* - Set the initial SP ;* - Set the initial PC == Reset_Handler ;* - Set the vector table entries with the exceptions ISR address ;* - Configure the clock system ;* - Branches to __main in the C library (which eventually ;* calls main()).
在链接的时候会把启动文件的中断向量表放置在最前面