导航:首页 > 文件教程 > uboot配置文件

uboot配置文件

发布时间:2024-07-17 13:18:49

A. uboot是什么

U-Boot,全称 Universal Boot Loader,是遵循GPL条款的开放源码项目。U-Boot的作用是系统引导。U-Boot从FADSROM、8xxROM、PPCBOOT逐步发展演化而内来。其源码目录、编译形式容与linux内核很相似,事实上,不少U-Boot源码就是根据相应的Linux内核源程序进行简化而形成的,尤其是一些设备的驱动程序,这从U-Boot源码的注释中能体现这一点。

拓展资料:

选择U-Boot的理由:

① 开放源码;

② 支持多种嵌入式操作系统内核,如Linux、NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS, android;

③ 支持多个处理器系列,如PowerPC、ARM、x86、MIPS;

④ 较高的可靠性和稳定性;

⑤ 高度灵活的功能设置,适合U-Boot调试、操作系统不同引导要求、产品发布等;

⑥ 丰富的设备驱动源码,如串口、以太网、SDRAM、FLASH、LCD、NVRAM、EEPROM、RTC、键盘等;

⑦ 较为丰富的开发调试文档与强大的网络技术支持。

B. uboot涓閰嶇疆64浣嶇墿鐞嗗湴鍧

璇烽棶浣犳槸鎯抽棶u-boot涓鎬庝箞閰嶇疆64浣嶇墿鐞嗗湴鍧鍚楋紵u-boot涓閰嶇疆64浣嶇墿鐞嗗湴鍧锛岄渶瑕佽繘琛屼互涓嬫ラわ細
1銆乽-boot涓鍚鐢64浣嶆敮鎸侊紝杩欏彲浠ラ氳繃鍦╱-boot鐨勯厤缃鏂囦欢涓璁剧疆CONFIG_SYS_SUPPORT_64BIT_DATA涓1鏉ュ疄鐜般
2銆佸湪u-boot鐨勯厤缃鏂囦欢涓瀹氫箟64浣嶇墿鐞嗗湴鍧鐨勫畯锛屼緥濡傦細#definePHYS_64BIT銆
3銆佸湪u-boot涓浣跨敤64浣嶇墿鐞嗗湴鍧鐨勮惧囬┍鍔ㄧ▼搴忥紝闇瑕佸皢64浣嶇墿鐞嗗湴鍧杞鎹涓32浣嶈櫄鎷熷湴鍧杩涜屾搷浣溿傝繖鍙浠ラ氳繃浣跨敤u-boot鎻愪緵鐨勫嚱鏁皃hys_to_virt()鍜寁irt_to_phys()鏉ュ疄鐜般
4銆佸湪u-boot涓浣跨敤64浣嶇墿鐞嗗湴鍧鐨勫簲鐢ㄧ▼搴忎腑锛岄渶瑕佷娇鐢ㄦ棤绗﹀彿闀挎暣鍨嬶紙unsignedlonglong锛夌被鍨嬫潵琛ㄧず64浣嶇墿鐞嗗湴鍧銆

C. uboot怎么查找ddr的配置文件

如果因为uboot或者内核有错误而导致启动失败,出现卡死状态等,那么需要判断问题是出在uboot阶段还是linux阶段,这可以通过观察启动过程中的debug信息来判断,

如果uboot出现问题是比较麻烦的,因为这需要有一个装有正确的uboot/bootloader的flash芯片作为引导,

将系统重新引导至uboot界面中,之后再重新烧写uboot到系统本身的flash中,进而烧写内核(如有必要)。

一,重新烧写uboot

首先需要一个特定的PCLL(flash芯片),这个PCLL上固化了一个正确的bootloader, 通过这个bootloader可以成功进入bootloader界面, 在此条件下重新烧写uboot/bootloader。

使用此PLCC的步骤是:

在系统下电情况下, 使用跳线/拨码开关等将此系统的启动方式变从外部flash(即PLCC)引导,

之后将系统上电, 这时会从PLCC 启动。

启动成功后,进入uboot界面, 即命令行显示Dream 5220# #(类似命令行提示符)

此时将版卡的启动方式变为 从 nor flash 启动。 之后重新烧写uboot到此nor flash 上。

再用 kermit 来操作。

Kermit是一个串口服务工具,类似与minicom ,功能比minicom 多。

//kermit/usb0.cfg 是kermit 的配置文件, 在其中可以配置 /dev/ttyUSB0 等路径
kermit -y kermit/usb0.cfg

-y kermit/usb0.cfg 指定配置文件。

该文件内容如下:
/*

set line /dev/ttyUSB0
set speed 115200
set carrier-watch off
set hardshake none
set flow-control none
robust
set file type bin
set file name lit
set rec pack 1000
set send pack 1000
set window 5

*/
将此文件保存在主目录下, 命名为:kermit/usb0.cfg(可自定义)

执行后进入kermit 界面, 按 c

进入 串口界面(就是设备的界面)

切换回kermit 界面快捷键:Ctrl + \ , 之后再按 c 。

执行:
Dream 5220# # detect

显示:
Checking for NOR flash...
Flash detect 33554432Mb

这说明flash状态良好。

//让串口进入接受状态。
Dream 5220# # loadb

进入kermit 界面: ctrl + \ 按 c

执行:
send uboot.bin

就是将当前目录下的uboot.bin 文件发送给串口。

完成后,进入串口界面。

执行:
Dream 5220# # upgrade 0x20000000 0x1dc00000 +0xe0000

0x20000000 是 kermit 执行 send 后 将文件send 到的默认地址。
再将文件写到nor flash 的首地址:0x1dc00000 +0xe0000为写的长度。

执行:reset。让系统重启。

/*

至此,新的uboot烧写完成,reset后, 如果还是不成功的话,那么问题肯定出在linux的的启动阶段或者新的uboot还是有问题,这可以通过启动过程中的debug信息看出来

一,如果内核有问题,导致linux没有进入shell界面,要重新进入Uboot环境,就是在reset 之后,一直按 ctrl + c ,这样在uboot启动完成后, 不会进入kernel的启动阶段,而是停留在uboot的命令行中,

在这个uboot 环境下,烧写新内核, 配置ipaddr,serverip等,同最开始的例子中操作是一样的。

//本机uboot 的ip地址
setenv ipaddr 10.10.167.10

//服务器ip地址
setenv serverip 10.10.167.249

//下载linux内核vmlinux52
// 在服务器的tftpboot目录下存在相应文件,搭建到tftp服务环境
tftpboot 0 vmlinux52

// 烧写到flash 上。
// 0x20000000 是vmlinux52的存贮位置。
// 0x1dd00000 是系统内核的起始位置(每个设备位置不同),
// +0x600000是文件长度
upgrade 0x20000000 0x1dd00000 +0x600000

在reset 之前,一般还要设置一下环境变量。

比如

setenv linux_args mtdparts=octeon_nor0:1m(BOOT),7m(LINUX),21m(CONFIG),3m(MD)

setenv bootcmd 'bootoctlinux 0x1dd00000 coremask=0x3 mem=700'

//保存
saveenv

bootoctliux

二 ,如果新烧写的uboot本身有问题,那么修改uboot代码,编译通过后, 使用PLCC重复上述烧写过程。

D. uboot如何调用驱动接口

u-boot是一种普遍用于嵌入式系统中的Bootloader,Bootloader是在操作系统运行之前执行的一小段程序,通过它,我们可以初始化硬件设备、建立内存空间的映射表,从而建立适当的软硬件环境,为最终调用操作系统内核做好准备。Boot Loader的主要运行任务就是将内核映象从硬盘上读到RAM中,然后跳转到内核的入口点去运行,即开始配孝启动操作系统。系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的Boot Loader程序。u-boot目录结构:1、board中存放于开发板相关的配置文件,每一个开发板都以子文件夹的形式出现;2、Commom文件夹实现u-boot行下支持的命令,每一个命令对应一个文件;3、cpu中存放特定cpu架构相关的目录,每一款cpu架构都对应了一个子目录;4、Doc是文档目录,有u-boot非常完善的文档;5、Drivers中是u-boot支持的各种设备的驱动程序;6、Fs是支持的文件系统,其中最常用的是JFFS2文件系统;7、Include文件夹是u-boot使用的头文件,还有各种硬件平台支持的汇编文件,系统配置文件和文件系统支持的文件;8、Net是与网络协议相关的代码,bootp协议、TFTP协议、NFS文件系统得实现;9、Tooles是生成U-boot的工具。其中比较重要的目录就是/board、/cpu、/drivers和 /include目录,如果想实现u-boot在一个平台上的移植,就要对这些目录进行深入的分析。u-boot的启动过程:系统启动的入口点。既然我们现在要分析u-boot的启动过程,就必须先找到u-boot最先实现的是哪些代码,最先完成的是哪些任务。另一方面一个可执行的image必须有一个入口点,并且只能有一个全局入口点,所以要通知编译器这个入口在哪里。由此我们可以找到程序的入口点是在/board /lpc2210/u-boot.lds中指定的,其中ENTRY(_start)说明程序从_start开始运行,而他指向的是cpu /arm7tdmi/start.o文件。因为如闭我们用的是ARM7TDMI的cpu架构,在复位后从地址0x00000000取它的第一条指令,所以我们将Flash映射到这个地址上,这样培橡稿在系统加电后,cpu将首先执行u-boot程序。u-boot的启动过程是多阶段实现的,分了两个阶段:第一阶段是用汇编写的,主要任务是:1、CPU 自身初始化:包括MMU,Cache,时钟系统,SDRAM 控制器等的初始化;2、重定位:把自己从非易失性存储器搬移到 RAM 中;3、分配堆栈空间,设置堆栈指针;4、清零 BSS 数据段;5、跳转到第二阶段入口函数 start_armboot();第二阶段是用C写的,主要任务是:1、为 U-boot 内部私有数据分配存储空间,并清零;2、依次调用函数指针数组 init_sequence 中定义的函数进行一系列的初始化;3、如果系统支持 NOR Flash,调用flash_init ()和display_flash_config ()初始化并显示检测到的器件信息;4、如果系统支持 LCD 或VFD,调用lcd_setmem()或vfd_setmem()计算帧缓(Framebuffer)大小,然后在BSS 数据段之后为Framebuffer 分配空间,初始化gd->fb_base 为Framebuffer 的起始地址;5、调用 mem_malloc_init()进行存储分配系统(类似于C 语言中的堆)的初始化和空间分配;6、如果系统支持 NAND Flash,调用nand_init ()进行初始化;7、如果系统支持 DataFlash,调用AT91F_DataflashInit()和dataflash_print_info()进行初始化并显示检测到的器件信息;8、调用 env_relocate ()进行环境变量的重定位,即从Flash 中搬移到RAM 中;9、如果系统支持 VFD,调用drv_vfd_init()进行VFD 设备初始化;10、从 环 境 变 量 中 读 取 IP 地址和MAC 地址, 初始化gd->bd-> bi_ip_addr 和gd->bd->bi_enetaddr;11、调用 jumptable_init ()进行跳转表初始化,跳转表在global_data 中,具体用途尚不清楚;12、调用 console_init_r()进行控制台初始化;13、如果需要,调用 misc_init_r ()进行杂项初始化;14、调用 enable_interrupts ()打开中断;15、如果需要,调用board_late_init()进行单板后期初始化,对于AT91SAM9260EK,主要是以太网初始化;16、进入主循环:根据用户的选择启动 linux,或者进入命令循环执行用户输入的命令;这部分是一些相对变化不大的部分,我们针对不同的板子改变它调用的一些初始化函数,并且通过设置一些宏定义来改变初始化的流程,所以这些代码在移植的过程中并不需要修改,也是错误相对较少出现的文件。在文件的开始先是定义了一个函数指针数组,通过这个数组,程序通过一个循环来按顺序进行常规的初始化,并在其后通过一些宏定义来初始化一些特定的设备。在最后程序进入一个循环,main_loop。这个循环接收用户输入的命令,以设置参数或者进行启动引导。

E. 怎样在FPGA里嵌入linux操作系统

一、抄Preloader 和Uboot(新手不要作如何修改)。袭
二、可以是硬核(称hps)先启动然后配置FPGA,还有其它启动方式;在这里我们以hps先启动做例子。主要需要有3个文件,<1>Linux镜像zImage,<2>设备树文件dtb,<3>FPGA配置文件rbf。将上述3个文件(uboot启动后可以通过tftp来传输)放到启动分区中(一般会把磁盘分成不同的分区)。

阅读全文

与uboot配置文件相关的资料

热点内容
ps入门必备文件 浏览:348
以前的相亲网站怎么没有了 浏览:15
苹果6耳机听歌有滋滋声 浏览:768
怎么彻底删除linux文件 浏览:379
编程中字体的颜色是什么意思 浏览:534
网站关键词多少个字符 浏览:917
汇川am系列用什么编程 浏览:41
笔记本win10我的电脑在哪里打开摄像头 浏览:827
医院单位基本工资去哪个app查询 浏览:18
css源码应该用什么文件 浏览:915
编程ts是什么意思呢 浏览:509
c盘cad占用空间的文件 浏览:89
不锈钢大小头模具如何编程 浏览:972
什么格式的配置文件比较主流 浏览:984
增加目录word 浏览:5
提取不相邻两列数据如何做图表 浏览:45
r9s支持的网络制式 浏览:633
什么是提交事务的编程 浏览:237
win10打字卡住 浏览:774
linux普通用户关机 浏览:114

友情链接