所需E币: 3
时间: 2020-1-16 14:24
大小: 229.83KB
4510bootloader的实现与分析Twentyonexuzhouhe@hotmail.com4510BBOOTLOADER(uCLinux)的实现与分析前段时间,写了一个简单直接的4510Bbootloader用来装载uclinux内核。在这篇文档里,我将结合源代码介绍一下4510Bootloader的实现和分析。源代码很简单很直接,希望对初学的朋友有点帮助。也许在分析中有很多错误,希望大家能够指正,共同进步。Bootloader的实现基于三星4510B,假设开发板上有2M的Flash作为Bootrom,SDRAM的大小是16M。开发环境是ADS1.2。一.相关介绍1.Bootloader的基本任务Bootloader一般是被烧录或者下载到bootrom的0x0地址处,作为上电后执行的第一部分指令,bootloader需要完成两个任务:(1).memoryremap,(2).把kernel装载到SDRAM里合适的位置上去。在完成这两个任务后,bootloader就“功成身退”了。下面的讨论都只围绕这两个任务进行。其他跟这两个不相关的东东不在介绍范围之内,相关的东东我都会顺带介绍。2.4510B开发板上的存储介质一块4510B开发板上,一般有三种存储介质:FLASH,SDRAM和4510片内的SRAM。FLASH一般是只读的(只在运行的时候),而且一般都作为bootrom使用,因为FLASH里存储的内容在掉电的时候也不会丢失,所以flash很适合作为bootrom,用来保存bootloader。SDRAM,大家应该都很熟悉的,是可读写的存储介质,速度比FLASH快的多,在系统运行的时候,SDRAM是主要的存储介质。但SDRAM里的数据在掉电后即消失,……