S3C44B0开发板移植u-boot-1.1.1详细过程

需积分: 12 17 下载量 185 浏览量 更新于2024-09-12 收藏 6KB TXT 举报
"这篇文档记录了将u-boot-1.1.1版本移植到S3C44B0开发板(恒丰)的过程,主要涉及CPU、FLASH、SDRAM等硬件配置,以及编译工具的选择和配置文件的修改。虽然移植过程中没有添加网络功能(因为网卡芯片故障),但成功实现了基本的U-Boot启动打印信息。" 在移植u-boot-1.1.1到S3C44B0开发板的过程中,主要涉及到以下几个关键知识点: 1. **硬件配置**: - CPU:S3C44B0是移植的目标处理器,它是一款基于ARM架构的微控制器。 - FLASH:使用了SST39VF160,容量为16Mbit,16位接口,地址空间从0x00000000到0x00200000,总计2MB。 - SDRAM:使用HY57V641620,容量为64Mbit,16位接口,地址空间从0x0c000000到0x0c800000,总计8MB。 - 网络芯片:RTL8019,其I/O地址为0x06000300,但由于网卡芯片损坏,移植过程中未集成网络功能。 2. **编译工具**: 使用了arm-elf-tools-20040427.sh,这是一个针对ARM架构的交叉编译工具链,用于构建能在S3C44B0上运行的代码。 3. **源码目录与配置**: - 修改Makefile中关于架构的设置,将`CROSS_COMPILE=arm-linux-`改为`CROSS_COMPILE=arm-elf-`,以适应交叉编译环境。 - 创建针对该开发板的配置文件,如`sky_config`,通过`mkconfig`命令生成。 - 在board目录下创建或修改特定于开发板的子目录,例如从`dave`更改为`sky`,并调整相应的文件结构和内容。 4. **代码修改**: - 修改`B2.c`文件,可能涉及到初始化代码的调整。 - 更新Makefile中的`OBJS`变量,将`B2.oflash.o`改为`sky.oflash.o`,确保正确编译新创建的源文件。 - 修改`config.mk`中的`TEXT_BASE`值,从`0x0C100000`改为`0x0C700000`,以适应新的内存布局。 - 调整`memsetup.S`,以初始化内存设置,包括FLASH、SDRAM和内存映射。这通常需要引用`include/configs/`目录下的配置文件,可能需要创建一个新的配置头文件,如`sky.h`。 5. **CPU相关代码**: - 在`cpu/s3c44b0`目录下,可能存在针对S3C44B0处理器特定的初始化和驱动代码,这些代码需要根据目标平台进行定制和优化。 移植过程中需要注意的点: - 确保所有硬件接口和配置参数正确无误,以确保U-Boot能正确识别和初始化硬件。 - 对于CPU和外围设备的驱动代码,需要确保与实际硬件兼容,并进行适配。 - 在编译过程中,检查编译选项和链接脚本,确保生成的二进制文件能够正确加载到目标硬件的内存地址。 - 测试过程中,逐步验证各个阶段的功能,如初始化、内存管理、设备探测等,以尽早发现潜在问题。 移植U-Boot到新的硬件平台是一项涉及硬件理解、软件配置和调试技能的工作,需要对嵌入式系统有深入的理解。尽管这个过程在文档中看似简单,但实际操作中可能涉及到更多的细节和问题解决。