S3C2440移植uboot之编译烧写uboot

S3C2440移植uboot之编译烧写uboot移植环境主机:VMWare–ubuntu16.04开发板:S3C24402440编译器:arm-linux-gcc-4.3.2.tgzu-boot:u-boot-2012.04.01.tar.bz2获取uboot进入https://www.denx.de/wiki/U-Boot下载uboot一直往下拉选择如下将下载好的压缩包解压到任意文件夹,并创建sourceinsig…

大家好,又见面了,我是你们的朋友全栈君。

移植Uboot其他文章链接:

S3C2440移植uboot之新建单板_时钟_SDRAM_串口

S3C2440移植uboot之启动过程概述

S3C2440移植uboot之支持NAND启动

S3C2440移植uboot之支持NORFLASH

S3C2440移植uboot之支持NANDFLASH操作

S3C2440移植uboot之支持DM9000

S3C2440移植uboot之裁剪和修改默认参数

S3C2440移植uboot之支持烧写yaffs映像及制作补丁

移植环境

主 机:VMWare–ubuntu16.04
开发板:S3C2440
编译器:arm-linux-gcc-4.3.2.tgz
u-boot:u-boot-2012.04.01.tar.bz2

获取uboot

  进入https://www.denx.de/wiki/U-Boot下载uboot
在这里插入图片描述
在这里插入图片描述
  一直往下拉选择如下
在这里插入图片描述
  将下载好的压缩包解压到任意文件夹,并创建source insight工程。将下载好的u-boot-2012.04.01.tar_2.bz2放到ubuntu服务器/work/system中。执行以下命令解压uboot:

cd /work/system
tar xjf u-boot-2012.04.01.tar_2.bz2

进入文件夹配置uboot

cd u-boot-2012.04.01
make smdk2410_config
make

  编译报错如下
在这里插入图片描述
  发生了段错误,arm-linux-ld 工具链版本不支持uboot中新的属性。我们的交叉编译链版本为3.4.5,因此,需要更换新的交叉编译链支持uboot。

更新交叉编译工具

  将arm-linux-gcc-4.3.2.tar.bz2上传到ubuntu服务器/work/tools。将arm-linux-gcc-4.3.2.tar.bz2解压到/work/tools/tmp文件夹。

cd /work/tools
mkdir tmp
tar xjf arm-linux-gcc-4.3.2.tar.bz2 -C tmp/

  解压完成,进入tmp目录查看usr/local/arm/4.3.2/bin文件夹,有各种工具链。

cd tmp/usr/local/arm/4.3.2/bin
ls

在这里插入图片描述

配置环境变量

  将新的工具链解压到根目录并配置环境变量,新的交叉编译工具链就生效了。

sudo tar xjf arm-linux-gcc-4.3.2.tar.bz2 -C /

  为什么要设置环境变量?
  因为我们执行ls 命令时,系统会去寻找所执行的命令,去哪里找呢?就在环境变量中。在ubuntu查看环境变量如下
在这里插入图片描述
  设置新的环境变量

export PATH=/usr/local/arm/4.3.2/bin:.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

  执行

arm-linux-gcc -v

在这里插入图片描述
  永久修改环境变量需要修改/etc/environment

sudo vi /etc/environment

  修改前

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/work/tools/gcc-3.4.5-glibc-2.3.6/bin"

  修改后

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/4.3.2/bin"

  重启后即可生效。

  再次编译新的uboot

cd /work/sysytem/u-boot-2012.04.01
make distclean
make smdk2410_config
make

  编译没有报错,将新的uboot.bin烧写到开发板发现,程序不能运行。所以需要分析并修改uboot
下一节S3C2440移植uboot之启动过程概述我们将分析UBOOT的整个启动流程。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/131124.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • for循环和while循环区别

    for循环和while循环区别for 循环 while 循环旨在与迭代一个数组 最终完成结果一样 区别 for 循环变量的作用域在于 for 循环内 而 while 循环变量的作用域在 while 外部 for inti 0 i lt 5 i nbsp nbsp i 在 for 循环内部 外部不可能使用这个 i 值 intj 0 while j lt 5 在该 while 循环执行完后 j 变量依然可以操作 j

    2025年9月2日
    2
  • 说说 SpringMVC 工作原理

    说说 SpringMVC 工作原理说说SpringMVC工作原理1、SpringMVC流程2、组件说明3、MVC模式4、SpringMVC是什么先看一张SpringMVC的工作原理图:1、SpringMVC流程1、用户发送请求至前端控制器DispatcherServlet。2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServ

    2022年5月14日
    42
  • sql文件导入数据库变乱码_sql查询的汉字乱码是怎么办

    sql文件导入数据库变乱码_sql查询的汉字乱码是怎么办首先建立同名空数据库1.用记事本(或UE)打开刚才的导出的SQL文件;2.另存此文件——打开另存为对话框,选择对话框中的编码格式为UNICODE编码;3.保存文件,然后CTRL+A,全选;4.复制里面的SQL语句到SQLyog中的“SQL编码器”当中,再执行一次SQL语句;5.执行完成后切记刷新一次,查看中文的数据表,乱码消除,大功告成;…

    2022年9月28日
    4
  • mba毕业后年薪一般多少_刚毕业年薪10万算什么水平

    mba毕业后年薪一般多少_刚毕业年薪10万算什么水平以前在一起读书他是学渣,我是学霸,但是为啥现在他工资多我这么多?

    2025年6月11日
    2
  • method exists php,浅谈php method_exists检测类中是否包括函数

    method exists php,浅谈php method_exists检测类中是否包括函数php教程method_exists检测类中是否包括函数?或许有些人不是很明白其中道理,下面做如下详细分析。method_exists()函数的语法如下:boolmethod_exists(objectobject,stringmethod_name)method_exists()函数的作用是检查类的方法是否存在。如果method_name所指的方法在object所指的…

    2022年7月15日
    16
  • docker(10)上传本地镜像到镜像仓库「建议收藏」

    docker(10)上传本地镜像到镜像仓库「建议收藏」前言之前通过docker搭建过jenkins+python3环境,如果想要在不同的机器上搭建一样的环境,就可以将之前搭建的镜像上传到镜像仓库,这样方便在不同的机器上快速搭建同一套环境。如果公开的话

    2022年8月6日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号