文档库

最新最全的文档下载
当前位置:文档库 > 移植接口

移植接口

移植接口

下面说下移植接口,这些接口是供内核使用的,是需要移植人员实现的。下面主要从这些接口功能及实现来描述这些接口。

启动接口

移植人员必须要新建一个名为start的文件,后缀可以随不同开发平台不一样,比如.s,.asm等。这个文件就是启动代码,做一些简单的初始化后必须跳转到c语言入口函数acoral_start.这个文件的代码一般是汇编,做的事就是bootloader要做的事。

具体来说:

涉及如下方面:关中断,配置时钟,清看门狗,如果需要拷贝代码,则要做拷贝工作(这个之前要配置内存控制器),然后要配置堆栈,因为进入c语言后就必须用到堆栈了,然后进入acoral_start。

内存相关硬件抽象层接口

HAL_HEAP_START变量

堆内存开始地址。

HAL_HEAP_END变量

堆内存结束地址。

上面两个都必须是变量,这两个变量之间的这段内存必须是连续的,且是除了内核映像外的内存,这两个值具体为多少要根据平台来计算。比如一个16M的SDRAM存储器,内核代码占用了前面10K,内存的起始地址为0x3000,则HAL_HEAP_START=0x3000+10k,HAL_HEAP_END=0x3000+16M.,由于不同配置,内核映像的大小会变,我门可以使用lds链接脚本来给我们提供信息,以达到自动配置HAL_HEAP_START,HAL_HEAP_END的值。

例子:

比如s3c2440的lds链接配置文件:

移植接口

(共14页)