实验2BootLoader编译与下载.docx

上传人:牧羊曲112 文档编号:3435921 上传时间:2023-03-13 格式:DOCX 页数:11 大小:40.62KB
返回 下载 相关 举报
实验2BootLoader编译与下载.docx_第1页
第1页 / 共11页
实验2BootLoader编译与下载.docx_第2页
第2页 / 共11页
实验2BootLoader编译与下载.docx_第3页
第3页 / 共11页
实验2BootLoader编译与下载.docx_第4页
第4页 / 共11页
实验2BootLoader编译与下载.docx_第5页
第5页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《实验2BootLoader编译与下载.docx》由会员分享,可在线阅读,更多相关《实验2BootLoader编译与下载.docx(11页珍藏版)》请在三一办公上搜索。

1、实验2BootLoader编译与下载3、Boot Loader 实验 熟悉交叉工具链的配置. 掌握Jflash 的使用。 熟悉Blob 编译过程。 熟悉Blob的启动流程. 掌握Blob的基本调试方法。 Boot Loader 编译环境搭建 第一步: 在编译Boot Loader之前,首先要确保已经安装了交叉编译工具链,可以利用which arm-linux-gcc 命令进行检测,如果未安装,会显示如下提示信息。 检测arm-linux-gcc是否安装 图1 检测arm-linux-gcc视图 第二步: 如果未安装,请将发货过光盘放入到光驱当中,进入/mnt/cdrom/Toolchain 目

2、录下,将xscalev1_liod_qt_2.3.7.tar.gz 工具链解压到/usr/local/ 目录下面,如下图2 所示。 root local host root# tar xzvf xscalev1_liod_qt_2.3.7.tar.gz C /usr/local 图2解压交叉编译工具链 第三步: 利用export命令将交叉编译工具的路径加入到系统PATH环境变量中。然后利用which命令查看交叉编译工具是否已在系统搜索路径中。 图3 添加arm-linux-gcc 交叉编译工具视图 Blob 的交叉编译 第四步: 将光盘中的BootLoader文件夹中的Boot-XSBase2

3、70-2.6.tar.gz文件复制到/root/work/Blob 目录下。 第五步: 利用tar 命令对Boot-XSBase270-2.6.tar.gz压缩文件进行解压。解压后,Blob 源码解压在BootXSBASE270文件夹中。 图4 解压Boot Loader视图 第六步: 利用make命令在Blob 源码所在的目录中对源码进行编译,编译成功后在该目录中产生Blob 映象文件boot。 图5 编译Boot Loader视图 Blob 的下载 第七步: 将Blob 的映象文件boot拷贝Jflash-XSBase270目录下。 第八步: 连好开发平台的JTAG下载器,并利用Jflas

4、h-XSBase270目录中jflashmm程序将Blob 映象文件boot烧写到开发板上。 第九步: 下载完毕后,利用RS-232平台的FFUART串口与PC串口相连,利用minicom启动串口,设置串口参数。重新启动目标平台,Blob 启动界面。 Blob 使用: 第十步: Blob 各菜单项的含义。 选项 0 ComanndLine mode 1 View current configuration 2 Bootp 3Download default Kernel (zImage_qt) 4 Flash Kernel 5 Download default Filesystem (root

5、fs270qt.img) 描述 进入命令行模式 查看配置参数 运行bootp命令用来获取HOST主机发送的BOOTP的数据包,解析 下载内核镜像 烧写内核镜像 下载文件系统镜像 6 Flash Filesystem 7 Boot system 8 Reboot system 9 Reset to factory default configuration aSet default Kernel filename and Filesystem filename b Set boot delay time c Help(to get a list of commands) 烧写文件系统镜像 在SD

6、RAM中运行kernel 软件复位 重设默认配置 设置将要下载的内核和文件系统镜像 设置Blob 等待用户输入时的停留时间 打印命令的帮助信息 第十一步: 输入“0”后进入命令模式,Blob 命令的使用方法。 help 用法 描述 参数 举例 Load 用法 描述 参数 举例 bootp 用法 描述 参数 举例 tftp 用法 描述 参数 Tftp文件名 address/loader/kernel/root/ramdisk 通过以太网下载主机的数据或文件到目标平台的SDRAM 文件名 - 主机平台需要传输的文件名 loader - 把传输到目标平台的文件放置在SDRAM的loader区域 ke

7、rnel - 把传输到目标平台的文件放置在SDRAM的kernel区域 root - 把传输到目标平台的文件放置在SDRAM的root区域 ramdisk - 把传输到目标平台的文件放置在SDRAM的ramdisk区域 address - 把传输到目标平台的文件放置在SDRAM的指定地址 Bboot tftp zImage kernel Bboot tftp rootfs.img root Flash loader/kernel/root/ramdisk 把SDRAM中的数据烧录到FLASH中特定的地址 loader - 把SDRAM中的数据烧录到FLASH中的loader区域 kernel

8、把SDRAM中的数据烧录到FALSH中的kernel区域 root 把SDRAM中的数据烧录到FLASH中的root区域 ramdisk 把SDRAM中的数据烧录到FLASH中的ramdisk的区域 Bboot flash kernel Bboot flash root erase loader/kernel/ramdisk/root 擦除FALSH中的相应区域 loader 擦除FALSH中loder区域 Bootp 运行bootp命令用来获取HOST主机发送的BOOTP的数据包,解析 BOOTP的数据包,获取本机的IP地址 无 Bboot bootp load kernel/ramdisk

9、 把存放在FLASH中的映像文件拷贝到SDRAM中。在Autoboot 过程中会自动运行,把内核映像从FLASH加载到SDRAM中。 Kernel 把内核映像从FLASH拷贝到SDRAM中 Ramdisk 从FLASH中拷贝RAMDISK到SDRAM Bboot load kernel 帮助 简短显示各命令的介绍 无 Bboot Help 举例 flash 用法 描述 参数 举例 erase 用法 描述 参数 举例 boot 用法 描述 参数 举例 set 用法 描述 参数 举例 kernel 擦除FLASH中的kernel区域 root 擦除FLASH中的root区域 ramdisk 擦除F

10、LASH中的ramdisk区域 bboot erase kernel Boot boot addr 在SDRAM中运行kernel 通过参数中指定的地址运行kernel addr kernel image address bboot boot set name value 设置IP地址,MAC地址以及autoboot参数 Name myipaddr destipaddr myhaddr autoboot Value ip ip mac address load kernel; boot bboot set /输出设置信息 bboot set myipaddr 192.168.100.X /改变

11、目标平台的IP地址 bboot set destipaddr 192.168.100.XX /改变主机平台的IP地址 bboot set myhaddr 00:0E:6F:CE:59:21 /设置目标平台的MAC地址 bboot set autoboot load kernel; boot /装载kernel后自动启动 Ping 检查目标平台和主机平台的网络连接 Ping主机平台的ip地址 Ping 192.168.100.xx Reboot 软件复位 None Reboot ping 用法 描述 参数 举例 reboot 用法 描述 参数 举例 Blob打印跟踪实验 Blob第1阶段分析 第

12、一步: 打开Boot-XSBase270srcstart.S,该源码文件完成系统的Blob 程序的第1阶段的编程及程序调用实现过程。(主要包括:GPIO的初始化调用-bl define_gpio;系统时钟信号使能调用-bl clock_enable;SDRAM内存设置调用-bl setup_memory、Blob 自拷贝、堆栈的设置-ldr sp, stack_point-4以及跳转到Blob 第二阶段- ldrpc, main) 第二步: 打开Boot-XSBase270srcfixgpio.S 文件,找到配置GPIO的define_gpio函数,该函数主要实现对系统微处理器的GPIO的初始

13、化过程。其中涉及GPIO的输入/输出方向设置寄存器:GPDRn、置位和清零寄存器以及功能配置寄存器GPFRnL、GPFRnH等。 第三步: 打开Boot-XSBase270src memsetup.S文件,找到setup_memory函数,该函数主要对系统外部的DRAM、SRAM(FLASH)、PC Card接口等存储设备所需参数进行配置,其中包括:MDCNFG、MDREFR、MSCn等寄存器的配置。 Blob 第2阶段分析 第四步: 打开Boot-XSBase270srcmain.c文件,找到int main(void)函数,该函数完成系统的Blob 程序的第2阶段的硬件初始化和菜单显示等程

14、序调用实现过程 第五步: 打开Boot-XSBase270srcserial.c文件,分别找到uart_init(void)、int uart_putc(int ch)和int uart_getc(void)三个串口操作基本函数。主要完成串口初始化与从串口获取和输出字符等操作。实现对PXA270的串口相关寄存器进行配置。其他与串口相关的函数都直接或间接调用这三个函数。 串口输入输出函数 第六步: 打开Boot-XSBase270srcPartition.c文件,找到init_map(void)和find_map(const char* name)函数,这两个函数主要完成对存储分配映射进行配置和

15、查找某个指定类型的内存映射参数。其中parts结构体数组定义了整个系统的SRAM、SDRAM等内存映射的相关参数。 内存分配映射结构体数组 第七步: 打开Boot-XSBase270srcFlash.c文件,该文件中函数主要完成对flash的编程、擦除、加/解锁等操作。其中iflash_init(void)函数主要实现查询平台的flash存储芯片的相关信息,flash操作的命令可参考flash芯片的资料文档。 第八步: 打开Boot-XSBase270srcFlash.c文件,该文件中函数主要实现lan91c111网络芯片的底层操作配置操作,其中lan91c111_init(void)函数由m

16、ain.c文件中的eth_init函数间接调用。具体寄存器操作方法参考lan91c111的资料文档。 第九步: 打开Boot-XSBase270src Network.c文件,该文件中的函数主要完成网络传输相关协议的封装、网络数据包的解压以及网络传输请求数据包的发送等操作。 第十步: 打开Boot-XSBase270srctftp.c文件,该文件中的函数主要完成文件TFTP传输相关操作。 Blob 跟踪调试信息输出 第十一步: 打开Boot-XSBase270srcmain.c文件,屏蔽config_init函数后面的printf(033H033Jn);语句,同时将该语句添加到uart_ini

17、t函数后,并在uart_init函数后面添加printf(UART init overn);语句。 第十二步: 打开Boot-XSBase270src Lan91c111.c文件,在lan91c111_init函数返回前添加test_get_reg函数,测试lan91c111网卡芯片的相关寄存器。 第十三步: 打开Boot-XSBase270srcTime.c文件,分别在time_init函数中添加如下调试输出信息。 printf(time_init+n); printf(udelay : msecond_boundary : %d 0x%08lxn, msecond_boundary, ms

18、econd_boundary); printf(time_init-n); 第十四步: 息。 打开Boot-XSBase270src Partition.c文件,在init_map函数中增加如下调试信printf(Memory map name is %sn,part-name); printf(Memory map SRAM Base Address is 0x%08xn,part-sramb); printf(Memory map SRAM SIZE is 0x%08xn,part-srams); printf(Memory map DRAM Base Address is 0x%08xn

19、,part-dramb); printf(Memory map DRAM Size is 0x%08xn,part-drams); printf(Memory map Max Size is 0x%08xn,part-maxs); 第十五步: 打开Boot-XSBase270srcFlash.c文件,去掉/#define detail(fmt,args.)printf(fmt, #args)宏定义的屏蔽符“/”,使该宏定义功能有效。 第十六步: 保存所有修改后的文件在Boot-XSBase270目录下利用make命令对修改后的源码进行编译;编译后将生成boot文件。 make clean make 第十七步: 将成功编译后的boot文件拷贝到Jflash-XSBase270文件夹中,连接JTAG,开启电源,并在该目录下执行下载烧录命令。./jflashmm boot; 第十八步: 息。 重新启动开发板,在延时时间内按空格键,Blob 显示修改后调试信

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号