S3C44B0开发板移植u-boot-1.1.1详细过程
需积分: 12 126 浏览量
更新于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到新的硬件平台是一项涉及硬件理解、软件配置和调试技能的工作,需要对嵌入式系统有深入的理解。尽管这个过程在文档中看似简单,但实际操作中可能涉及到更多的细节和问题解决。
116 浏览量
125 浏览量
132 浏览量
2022-09-22 上传
113 浏览量
339 浏览量
2022-09-22 上传
JPLZL10000
- 粉丝: 6
- 资源: 45
最新资源
- Save Workspace to Struct:此功能允许将当前工作区中的所有变量保存到结构体数组中-matlab开发
- geojs-storm:GeoSJ Storm示例
- shush
- pablopunk:天哪,它的工作原理
- 广义真值表:生成“真值表”,其中列对应于任意碱基混合中的数字。-matlab开发
- 乡镇2013年第一季度工作总结
- PartyPlanner_Mobile
- PHP168 仿快车模板
- SuperStroke:笔画输入法练习
- ekyc
- 经济技术开发区2013年工作总结及2014年工作思路
- potatoCHIP:Durpa Nimrod实验
- worksheet.rar
- Rate-My-Professor-Vuejs
- LBS^2 loleg模板
- little-bear:Node.js Web框架