amlogic uboot user
### Amlogic U-Boot 使用说明及调试移植指南 #### 一、U-Boot 概述 U-Boot(Universal Boot Loader)是一个遵循 GPL 条款的开源项目,它旨在为各种嵌入式设备提供一个通用的引导加载程序。U-Boot 的设计与 Linux 内核相似,具有类似的源代码目录结构和编译方式。Amlogic U-Boot 特别适用于基于 Amlogic 芯片组的设备,提供了丰富的功能和良好的兼容性。 **特点:** 1. **开放源码:** U-Boot 是一个完全开放源码的项目,这使得开发者能够自由地查看、修改和分发其源代码。 2. **广泛的操作系统支持:** 它支持多种嵌入式操作系统,如 Linux、QNX、VxWorks 等。 3. **多处理器支持:** 支持多种处理器架构,如 ARM、MIPS、PowerPC 等。 4. **高可靠性和稳定性:** 经过多年的开发和完善,U-Boot 已经非常成熟稳定。 5. **灵活的功能设置:** 用户可以根据不同的需求定制 U-Boot 的功能,使其更加符合特定的应用场景。 6. **丰富的设备驱动源码:** 包括但不限于串口、以太网、SDRAM、FLASH、LCD、NVRAM、EEPROM、RTC 和键盘等。 7. **详尽的技术文档和支持:** 提供了丰富的文档和技术支持,便于用户快速上手和解决问题。 #### 二、Amlogic U-Boot 源码结构 Amlogic U-Boot 是基于 U-Boot 2009.03 版本进行移植和开发的,其源码可以从指定的 SVN 仓库获取:`https://svn-bj.amlogic.com/svn/model_ae/aml-uboot`。 **主要目录结构:** 1. **board/**:包含与目标板相关的文件,如 SDRAM、FLASH 驱动和外设 IO 配置等。 2. **common/**:包含独立于处理器体系结构的通用代码,例如内存大小探测与故障检测。 3. **cpu/**:包含与处理器相关的文件,如串口、网口、LCD 驱动及中断初始化等。 4. **driver/**:包含通用设备驱动,例如 CFIFLASH 驱动(目前对 INTEL FLASH 支持较好)。 5. **doc/**:包含 U-Boot 的说明文档。 6. **examples/**:包含可在 U-Boot 下运行的示例程序,如 hello_world.c、timer.c 等。 7. **include/**:包含 U-Boot 头文件,尤其是 configs 子目录下的与目标板相关的配置头文件,这是移植过程中经常需要修改的文件。 8. **lib_arc/**:包含 ARC 处理器体系相关的文件。 9. **net/**:包含与网络功能相关的文件目录,如 bootp、nfs、tftp。 10. **tools/**:包含用于创建 .bin 和 .img 文件等的工具。 11. **fs/**:包含与文件系统相关的文件。 #### 三、Amlogic U-Boot 实现的功能 Amlogic U-Boot 支持以下功能: 1. **支持 CPU:** Nike 2. **支持目标板:** dvbc_8218_ts_ref_v1.0 3. **已实现功能:** - UART 驱动,包括 Stdin、Stdout、Stderr。 - SPINor flash 读写操作。 - NAND flash。 - IPL(Initial Program Load)。 - Loader。 - SD/SDHC/MMC Card 驱动。 - Nike Ethernet 驱动,支持 TFTP、BOOTP、DHCP 等功能。 - Mkimage Tool。 - 存取启动参数。 - FAT 文件系统。 #### 四、Amlogic U-Boot 使用步骤 **4.1 编译** 为了编译 U-Boot,需要使用 ARC-ELF32-GCC 交叉编译器,在 Linux 环境下进行。如果使用 Windows 机器,则可以在 Cygwin 环境下完成编译。交叉编译器及相关工具需要额外获取,并确保相关路径已经被添加到系统的环境变量 PATH 中。具体编译步骤如下: 1. 在 Cygwin 下,确保编译路径指向 U-Boot 的根目录。 2. 清除以往编译的结果:`make distclean` 3. 配置目标板:`make xxx_config` 4. 编译链接:`make all` **4.2 调试** 配置 `aml-uboot/trunk/include/configs/***\.h` 文件中的 UART 通信相关参数,如系统时钟、波特率、校验位、数据位、停止位等。重新编译 U-Boot,并将目标板与 PC 串口连接。使用“makedown”命令将编译生成的 `.out` 文件通过 JTAG 下载到目标板的内存中。运行 U-Boot 后,在 PC 端可以通过串口调试工具(如超级终端)进行调试。 **4.3 Flash 烧写** 目前支持对 NAND 和 SPINOR Flash 的读写操作。 **对于 SPI Flash:** 1. 发送命令:`loady offset`,通过串口加载二进制文件到内存的 `offset` 处。 2. 使用 PC 端串口调试工具中的 Send Ymodem file 功能,将需要烧写的 bin 文件发送到目标板的内存中。 3. 发送命令:`sfprobe 2`,探测 SPI Flash。 4. 发送命令:`sferase offset len`,对 SPI Flash 相关区域进行擦写。 5. 发送命令:`sfwrite addr offset len`,将内存地址 `addr` 开始长度为 `len` 的数据写入 SPI Flash 的偏移 `offset` 处。 **对于 NAND:** 1. `nanderase 0 300000`,从 0 地址开始擦除 3MB 空间。 2. `nandwrite 0x1c00000 300000`,烧录从 0x1c00000 开始的 3MB 数据到 NAND 的 0 地址。 3. `nandread 0x1c00000 300000`,从 NAND 的 0 地址开始读取 3MB 数据到内存的 0x1c00000 地址。 以上步骤详细介绍了如何使用 Amlogic U-Boot 进行调试和移植。通过遵循这些步骤,可以有效地利用 Amlogic U-Boot 来为基于 Amlogic 芯片组的设备开发自定义的引导加载程序。
- Gavin_Guo80982013-03-21非常有用,第一次熟悉android系统,有这个东西好下手多啦!
- bill_anson2013-07-25值得参考啊
- 粉丝: 234
- 资源: 7
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助