关于启动代码的疑问,还请大家赐教
本帖最后由 596863302 于 2017-2-12 10:46 编辑写驱动依据的是芯片厂商提供的外设手册,那启动代码依据的是啥?虽然一般来说keil和uboot中都有现成的,但是这是根据什么手册写出来的呢? 这是问题问得好!
主要依据IDE(编译器、汇编器)、C运行时库、具体器件的存储器映射等。 启动代码就是些中断定义,这个需要芯片手册。
堆栈设置和初始化, 这个跟芯片基本没有关系了。 首先,上电之后,所有芯片都是从设定好的位置(这大多是通过硬件实现的)读取第一条指令开始执行,但是C语言之类的高级语言,并不能和内核进行交流,这就需要用到汇编了。但是用汇编写程序确实是一件繁琐的事情,为了方便后期的编程,我们使用汇编来写一些必要的前期工作,所有这些前期工作的总和,就被称作“启动文件”,它为我们准备好了面向高级语言编程的接口。
主要依据当然是内核对应的汇编指令集、编译环境指令(可以辅助汇编程序编写的伪指令和编译条件设置指令),知道用什么指令写程序之后,就是常规的启动步骤编写,初始化堆栈、PC、中断向量表、系统时钟、然后跳转到主程序。
大家一直都这么做的,只是因为这样做合乎逻辑。以后估计也会这么做,而且以后估计也不会有哪本官方手册告诉你如何一步步编写他们的启动代码。。。
页:
[1]