mini2440开发板u-boot移植详细步骤
需积分: 4 25 浏览量
更新于2024-11-29
收藏 10KB TXT 举报
"mini2440 u-boot移植手册提供了详细的步骤,适用于在mini2440学习开发板上进行u-boot的移植工作。手册涵盖了从配置、编译到最终运行的关键过程,确保用户能够成功移植u-boot到该平台。"
在进行u-boot移植时,首先要了解的是MACH_TYPE,它是用来标识硬件平台的常量。在Kernel的`include/asm-arm/mach-types.h`文件中定义了MACH_TYPE_SMDK2440A782,这对应于SMDK2440开发板。同样,在u-boot的`include/asm-arm/mach-types.h`中也有相同的定义,这是为了确保u-boot与内核之间的一致性。在`board/smdk2440a/smdk2440a.c`文件中,通过设置`gd->bd->bi_arch_number`为MACH_TYPE_SMDK2440A来明确开发板类型。
移植过程中,有几个关键的源文件需要关注:
1. `/u-boot.1.1.6/cpu/arm920t/start.S`:这是启动汇编代码,初始化CPU和内存管理单元(MMU)。
2. `/u-boot.1.1.6/board/smdk2440a/lowlevel_init.S`:包含了低级初始化操作,比如设置时钟频率。
3. `/u-boot.1.1.6/lib_arm/board.c`中的`start_armboot()`函数负责调用C语言的初始化过程。
4. `/board/smdk2440a/smdk2440a.c`的`board_init()`函数执行具体的硬件初始化,如MPLL设置,这对于设置系统时钟速度至关重要。
5. `/cpu/arm920t/s3c24x0/serial.c`的`serial_init()`用于初始化串口通信。
6. 同样在`smdk2440a.c`中的`dram_init()`函数用于检测和配置系统内存。
7. `/u-boot.1.1.6/common/main.c`中的`main_loop()`是u-boot的主要循环,处理用户输入和系统操作。
移植过程中还需要注意配置文件的使用,例如`u-boot-1.1.6/Makefile`中的`smdk2440a_config`目标,它用于生成针对SMDK2440的配置。执行`make smdk2440a_config`会生成特定于SMDK2440的配置文件,并且`unconfig`命令可以清除当前配置。
配置完成后,编译u-boot,生成的映像文件会包含如`CONFIG_SETUP_MEMORY_TAGS`和`CONFIG_CMDLINE_TAG`等配置项,它们用于传递启动参数到内核。在`lib_arm/armlinux.c`中的`do_bootm_linux()`函数负责加载和启动Linux内核,传入参数包括内核地址、架构编号(即`bd->bi_arch_number`)以及引导参数地址(`bd->bi_boot_params`)。
总结来说,mini2440 u-boot移植涉及的步骤包括:配置开发板的MACH_TYPE,修改和编译源代码,执行硬件初始化,配置内存,初始化串口和内存,最后设置并启动内核。整个过程需要对嵌入式系统、ARM架构和u-boot有深入理解。通过遵循这个移植手册,开发者可以在mini2440平台上成功运行u-boot,为后续的系统开发和调试打下基础。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2012-03-27 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
bogongs
- 粉丝: 7
- 资源: 10
最新资源
- LCD1602显示模块测试 LCD1602显示模块测试 LCD1602显示模块测试
- 基于ARM核的嵌入式开发
- EXT 中文手册.pdf 相当好的入门手册
- 数模/模数(ADC-DAC)转换基础知识
- 数据结构课件-第三章栈和队列
- Java与模式在线视频
- 基于J2EE和Struts技术的电力营销管理信息系统设计与实现
- C#3.0新特性 NET2.0基础上进行了改进
- linux shell 基础
- 51单片机教程 WORD版 适合在MP3TXT阅读
- KWP2000协议分析
- 掌握 Ajax 的第二部分
- 掌握 Ajax第 1 部分
- ARCToolBoxs中英文对照
- C++标准库参考文献
- IPHONE开发环境搭建秘笈