知识点一:U-Boot简介 U-Boot(Universal Boot Loader)是一个广泛使用的开源引导加载器,主要用于嵌入式设备。它能够初始化硬件设备,建立内存空间的映射图,并且可以加载操作系统内核并将其传递给操作系统内核。U-Boot具有丰富的设备支持,灵活性高,支持多种处理器架构和不同的启动模式。 知识点二:U-Boot移植过程 U-Boot移植涉及到源文件的解压、配置目标板支持、添加目标板特定文件、配置编译环境、编译以及启动等步骤。在移植过程中,需要针对特定硬件平台进行源代码的修改,包括添加对处理器的支持、修改时钟设置、内存初始化等,以确保U-Boot能够在新的硬件平台上正常工作。 知识点三:开发板与处理器支持 文档中提到了GT2440开发板和S3C2440处理器。S3C2440是三星公司推出的一款基于ARM920T内核的处理器,广泛用于嵌入式系统。移植U-Boot时需要针对S3C2440处理器进行特化处理,包括时钟频率调整、内存初始化等。 知识点四:时钟配置与分频系数 对于嵌入式系统而言,处理器的时钟频率至关重要。U-Boot移植时通常需要根据硬件手册来调整时钟分频系数,以确保处理器的时钟设置正确。在文档中,作者针对2440处理器调整了MDIV、PDIV、SDIV的值,这些值定义在S3C2440芯片手册255页,用于确保系统时钟FCLK达到405MHz。 知识点五:内存初始化与配置 在U-Boot的移植过程中,内存初始化是一个重要步骤。通过在Makefile中添加宏定义CONFIG_SKIP_LOWLEVEL_INIT,可以禁用某些底层初始化,让U-Boot在RAM中运行。此外,内存初始化代码通常位于/arch/arm/cpu/arm920t/start.S文件中。 知识点六:NAND Flash启动支持 NAND Flash是一种常见的非易失性存储器,常用于嵌入式系统中。为了支持从NAND Flash启动,需要对U-Boot进行配置,确保能够正确地识别和操作NAND Flash。文档中提到了K9F2G08U0A这款NAND Flash,它具有特定的数据页和块大小结构。需要通过特定的命令集和时序要求来访问NAND Flash。 知识点七:编译环境配置与编译 移植U-Boot需要在特定的编译环境下进行。首先需要配置编译环境,包括添加目标板的配置文件,如hzb2440.h,然后进行配置,如执行make hzb2440_config。通过执行make ARCH=arm命令来编译U-Boot源码,生成u-boot.bin文件。 知识点八:启动与测试 编译完成后,需要将生成的u-boot.bin文件下载到开发板上进行测试。如果直接下载执行没有反应,可能需要检查并修改系统时钟配置。文档中建议参考smdk2410板子进行时钟调整,因为GT2440开发板的时钟频率为400MHz,而smdk2410为200MHz。 知识点九:命令行接口调整 移植U-Boot还需要对命令行接口进行调整,以便于对开发板进行控制。这包括修改include/configs/hzb2440.h文件,以添加或修改启动时的命令行参数。 知识点十:硬件初始化代码修改 由于开发板的硬件配置可能与参考板子有所不同,因此需要修改U-Boot中与硬件初始化相关的代码。这包括LED灯的初始化、时钟初始化以及内存控制等。这涉及到对smdk2410.h、start.S等文件的修改,以及可能需要自定义的s3c24x0/speed.c中函数的调整。 以上知识点详细描述了U-Boot移植的具体过程和需要关注的关键点。在实际操作中,这些知识能够指导开发者针对不同的硬件平台进行U-Boot的移植和调试工作。
- JimTam2017-12-08可以参考 还行吧
- liushiqian19842018-02-05看了一下可以作为参考,总的来说还行吧
- d198108292015-10-04不错的资源,可以作为参考
- cruisef2015-10-06感觉还行,只是感觉用着不是特别顺手
- 粉丝: 8
- 资源: 13
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助