Cortex-M
启动代码的使用
上一篇扯了一些关于启动代码的原理,了解了额原理不去使用意义就没有那么大了,了解了启动代码不是终极目的,我们的目的是深入理解Cortex-M系列MCU的底层原理,并应用到实际的产品中,加速开发,提升产品稳定性;下面就小编我的实际使用经历来看一下,启动代码的具体应用。
启动代码的本质是在程序进入用户代码(main函数)之前初始化向量表、完成分散加载以及C语言运行环境初始化的一段代码,可以说你需要在进入用户代码(main函数)之前需要搞定的工作都可以放在这里来完成,而且有些代码放到启动代码里面去完成会比在用户代码,main函数最开始完成效果要好得多。
1、如何在启动代码中调用函数?以及什么样的函数不能再启动代码中被调用?
因为默认的标准的启动代码主要工作是在Reset_Handler里面完成的,调用函数一般也会再这里。
Reset_Handler PROC
EXPORT Reset_Handler [WEAK]
IMPORT SystemInit
IMPORT __main
LDR r0, =SystemInit