(1)UBOOT编译体验

嵌入式系统:
bootloader -->linux内核 --> 挂载根文件系统 --> 应用

一、uboot体验

1、烧写u-boot

uboot体验的时候,我们怎么知道是怎么配置编译的呢,可以查看README文件。

(1)解压缩

(2)打补丁

patch -p1 <../补丁文件

(3)配置

u-boot_1.1.6:make 100ask4x0_config

(4)编译

make

u-boot_1.1.6编译出现warning: target CPU does not support interworking 解决办法:
https://blog.csdn.net/qq_40674996/article/details/105036704

u-boot_1.1.6编译出现如下错误:

/usr/local/arm/4.3.2/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.2/armv4t/libgcc.a(_udivsi3.o): In function `__aeabi_uidiv':
(.text+0x0): multiple definition of `__udivsi3'
lib_arm/libarm.a(_udivsi3.o):/work/u-boot-1.1.6/lib_arm/_udivsi3.S:17: first defined here
arm-linux-ld: ERROR: Source object /usr/local/arm/4.3.2/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.2/armv4t/libgcc.a(_udivdi3.o) has EABI version 5, but target u-boot has EABI version 0
arm-linux-ld: failed to merge target specific data of file /usr/local/arm/4.3.2/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.2/armv4t/libgcc.a(_udivdi3.o)
arm-linux-ld: ERROR: Source object /usr/local/arm/4.3.2/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.2/armv4t/libgcc.a(_udivsi3.o) has EABI version 5, but target u-boot has EABI version 0
arm-linux-ld: failed to merge target specific data of file /usr/local/arm/4.3.2/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.2/armv4t/libgcc.a(_udivsi3.o)
arm-linux-ld: ERROR: Source object /usr/local/arm/4.3.2/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.2/armv4t/libgcc.a(_dvmd_lnx.o) has EABI version 5, but target u-boot has EABI version 0
arm-linux-ld: failed to merge target specific data of file /usr/local/arm/4.3.2/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.2/armv4t/libgcc.a(_dvmd_lnx.o)
arm-linux-ld: ERROR: Source object /usr/local/arm/4.3.2/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.2/armv4t/libgcc.a(_clz.o) has EABI version 5, but target u-boot has EABI version 0
arm-linux-ld: failed to merge target specific data of file /usr/local/arm/4.3.2/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.2/armv4t/libgcc.a(_clz.o)
/usr/local/arm/4.3.2/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.2/armv4t/libgcc.a(_dvmd_lnx.o): In function `__aeabi_ldiv0':
(.text+0x8): undefined reference to `raise'
Makefile:263: recipe for target 'u-boot' failed
make: *** [u-boot] Error 1

解决方法:将gcc version 4.3.2 换成3.4.5即可
把arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2解压到/work/tools目录下
然后修改环境变量vim /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/4.3.2/bin"
改成
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/work/tools/gcc-3.4.5-glibc-2.3.6/bin“
然后重启,不重启的话就手动更改:
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/work/tools/gcc-3.4.5-glibc-2.3.6/bin

2、uboot命令

uboot有哪些命令?
输入help
对某个命令的具体解释,如:? md

print 环境变量

二、uboot概述

BIOS怎么启动内核?
从硬盘上读入内核

那么UBOOT怎么启动LINUX内核?
从Flash读出内核,放到SDRAM上,启动内核。

那么uboot需要实现的内容?(基本)
1、读Flash
2、初始化SDRAM
3、启动内核
那么uboot需要实现的内容?(延申)
写Flash ===> 通过网络或者usb把内核写到Flash
1、读Flash
初始化时钟 ===> 因为默认上电是12M晶振
初始化串口 ===> 为了查看信息
2、初始化SDRAM
3、启动内核

总结UBOOT功能:
硬件相关的功能:

  • 初始化时钟
  • 关闭看门狗
  • 初始化SDRAM
  • 读Flash

开发板功能:

  • 网卡
  • usb
  • 串口
  • 写Flash
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值