编译添加了ALPHA开发板的NXP官方uboot

一.  简介

之前文章学习了 如何在NXP(恩智浦)官方 uboot 中添加正点原子的 ALPHA 开发板

如何在NXP(恩智浦)官方 uboot 中添加正点原子的 ALPHA 开发板,文章如下:

向NXP官方uboot添加Nand版开发板-CSDN博客

本文对 添加了 ALPHA开发板的 uboot源码进行编译。

二.  编译添加了ALPHA开发板的NXP官方uboot

1.  编写 编译脚本文件

在 uboot 根目录下创建一个编译脚本文件 ,名字可自定义 mx6ull_alientek_nand.sh。

这里所使用的配置文件为 之前我创建的新配置文件,即 configs目录下的 mx6ull_alientek_nand_defconfig 配置文件。

编译脚本文件内容如下:

#!/bin/shmake ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_alientek_nand_defconfig
make  ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- 

更改  编译脚本文件的权限,命令如下:

chmod 777 mx6ull_alientek_nand.sh 

2.  编译 uboot

运行 编译脚本文件 mx6ull_alientek_nand.sh ,对 Uboot进行编译。命令如下:

./mx6ull_alientek_nand.sh 

如何确认编译了 之前我更改的 (针对 ALPHA开发板NAND版) uboot源码呢?

可以通过在 编译后的 Uboot源码工程中搜索 "mx6ull_alientek_nand.h" 文件确定。如果有很多地方调用了该头文件,说明是编译了更改后的针对 ALPHA-Nand版开发板的 uboot。

"mx6ull_alientek_nand.sh"文件即  uboot根目录下的 /include/configs下。

因为 "mx6ull_alientek_nand.sh"文件是针对 ALPHA-NAND版开发板的配置头文件。

进入 Uboot源码的根目录下,输入如下命令:

wangtian@wangtian-virtual-machine:~/zhengdian_Linux/linux/uboot/nxp_uboot/uboot-imx-rel_imx_4.1.15_2.1.0_ga$ grep -nR "mx6ull_alientek_nand.h"
drivers/mmc/.mmc_write.o.cmd:40:  include/configs/mx6ull_alientek_nand.h \
drivers/mmc/.mmc.o.cmd:48:  include/configs/mx6ull_alientek_nand.h \
drivers/mmc/.fsl_esdhc.o.cmd:58:  include/configs/mx6ull_alientek_nand.h \
drivers/block/.disk-uclass.o.cmd:133:  include/configs/mx6ull_alientek_nand.h \
drivers/input/.input.o.cmd:134:  include/configs/mx6ull_alientek_nand.h \
drivers/i2c/.i2c_core.o.cmd:139:  include/configs/mx6ull_alientek_nand.h \
drivers/i2c/.mxc_i2c.o.cmd:154:  include/configs/mx6ull_alientek_nand.h \
drivers/crypto/fsl/.sec.o.cmd:135:  include/configs/mx6ull_alientek_nand.h \
drivers/serial/.serial_mxc.o.cmd:135:  include/configs/mx6ull_alientek_nand.h \
drivers/serial/.serial.o.cmd:136:  include/configs/mx6ull_alientek_nand.h \
drivers/pcmcia/.tqm8xx_pcmcia.o.cmd:138:  include/configs/mx6ull_alientek_nand.h \
drivers/thermal/.imx_thermal.o.cmd:42:  include/configs/mx6ull_alientek_nand.h \
drivers/thermal/.thermal-uclass.o.cmd:133:  include/configs/mx6ull_alientek_nand.h \

.........

可以看出,有很多地方调用了 "mx6ull_alientek_nand.h" 头文件。至此,可以确定编译了更改后的uboot。否则,在编译时未编译到针对 ALPHA开发板的更改代码。

3.   烧录运行

将 编译好的 u-boot.bin 裸机程序烧录到 SD卡,开发板从 SD卡启动。验证uboot是否可以在 ALPHA开发板启动。

(1)  插入SD卡到读卡器,读卡器插入 电脑usb口。连接到 ubuntu系统。

(2) 烧写 uboot到 SD卡。使用 imxdownload工具烧写uboot。命令如下:

wangtian@wangtian-virtual-machine:~/zhengdian_Linux/linux/uboot/nxp_uboot/uboot-imx-rel_imx_4.1.15_2.1.0_ga$ ./imxdownload u-boot.bin /dev/sdb -256m

(3) 开发板的拨码开关拨到从 SD卡启动,开发板上电,串口 Log信息如下:

U-Boot 2016.03 (Oct 17 2023 - 18:27:11 +0800)CPU:   Freescale i.MX6ULL rev1.1 69 MHz (running at 396 MHz)
CPU:   Industrial temperature grade (-40C to 105C) at 32C
Reset cause: POR
Board: MX6ULL 14x14 EVK
I2C:   ready
DRAM:  256 MiB
NAND:  512 MiB
MMC:   FSL_SDHC: 0, FSL_SDHC: 1
*** Warning - bad CRC, using default environmentDisplay: TFT43AB (480x272)
Video: 480x272x24
In:    serial
Out:   serial
Err:   serial
Net:   Board Net Initialization Failed
No ethernet found.
Normal Boot
Hit any key to stop autoboot:  0 NAND read: device 0 offset 0x4000000, size 0x8000008388608 bytes read: OKNAND read: device 0 offset 0x5000000, size 0x1000001048576 bytes read: OK
Bad Linux ARM zImage magic!

可以看出 ,uboot已经在 ALPHA开发板上启动。uboot的编译时间是 2023年10月17号18:27分。

说明添加 ALPHA开发板的 NXP官方 uboot可以在 ALPHA开发板上启动。但是,也显示LCD存在问题,网络也存在问题。后面解决这些问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/108762.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【webrtc 】FEC 1: 音频RED rfc2198及视频ULPFEC的RED封装

1 参考和引用 M79 代码。 ULPFEC报文构建流程 与大神的分析: WebRTC-FEC协议总结 一致 CrystalShaw 大神的文章 ULPFEC在WebRTC中的实现 WebRTC研究:FEC之RED封装 本文是大神们文章和代码的学习笔记。red封包(rfc2189)1.1 RED(Redundant Coding) 封装 Ulpfec 非均等保护前向纠…

HarmonyOS云开发基础认证---练习题二

【判断题】 2/2 Serverless是云计算下一代的默认计算范式。 正确(True) 【判断题】 2/2 接入认证服务后,用户每次收到验证码短信都需要开发者买单。 错误(False) 【判断题】 2/2 认证服务手机号码登录需要填写国家码。 正确(True) 【判断题】 2/2 在Cloud Functi…

大数据Flink(九十八):SQL函数的归类和引用方式

文章目录 SQL函数的归类和引用方式 一、SQL 函数的归类

Vue_Bug Failed to fetch extension, trying 4 more times

Bug描述: 启动electron时出现Failed to fetch extension, trying 4 more times的问题 解决方法: 去src/background.js文件中进行代码注释工作 app.on(ready, async() > {// if (isDevelopment && !process.env.IS_TEST) {// // Install V…

小程序长期订阅

准备工作 ::: tip 管理后台配置 小程序类目:住建(硬性要求) 功能-》订阅消息-》我的模版 申请模版:1、预约进度通知 2、申请结果通知 3、业务办理进度提醒 ::: 用户订阅一次后,可长期下发多条消息。目前长期性订阅…

【SA8295P 源码分析 (一)】41 - SA8295所有镜像位置、拷贝脚本、生成QFIL包 及 Fastboot 下载命令介绍

【SA8295P 源码分析】41 - SA8295所有镜像位置、拷贝脚本、生成QFIL包 及 Fastboot 下载命令介绍 一、SA8295 各镜像位置二、SA8295 QNX 侧镜像拷贝脚本三、SA8295 Android 侧镜像拷贝脚本四、使用QFIL 下载整包五、Fastboot 下载命令整理系列文章汇总见:《【SA8295P 源码分析…

STM32如何使用PWM?

一:PWM介绍 PWM 是 Pulse Width Modulation 的缩写,中文意思就是脉冲宽度调制,简 称脉宽调制。它是利用微处理器的数字输出来对模拟电路进行控制的一种非常有 效的技术,其控制简单、灵活和动态响应好等优点而成为电力电子技术最广…

Vue之Vue的介绍安装开发实例生命周期钩子

博主心得: keyup必须与change一起使用v-on.click可以直接写成clickclick“setVal”里的setVal换成数字之后有惊喜VS Code是真的狗,一些报错根本不会直接显示总结:VS code太狗了 1.vue介绍 1.1 什么是vue vue是一个构建用户界面UI的渐进式jav…

【配置环境】SQLite数据库安装和编译以及VS下C++访问SQLite数据库

一,环境 Windows 11 家庭中文版,64 位操作系统, 基于 x64 的处理器SQLite - 3.43.2Microsoft Visual Studio Community 2022 (64 位) - Current 版本 17.5.3 二,SQLite简介 简要介绍 SQLite(Structured Query Language for Lite&a…

Babel 在Powershell 上无法查看版本

ES6 模块语法不能应用在ES5环境中 (ES6模块化语法不能在node.js中执行),此时需要Babel进行转码 通过npm install -g babel-cli 安装好后,想通过 babel --version产看版本。但是无法查看 首先,我们要以管理员方式运行PowerShell,&…

密码学二: md5 网站服务器与用户通信过程 ca原理 签名原理 Flame 病毒原理

md5被破解? MD5(Message Digest Algorithm 5)是一个较早的哈希函数,但由于其弱点和漏洞,它已经被认为不再适合用于安全性要求较高的应用。MD5的一些安全性问题包括: 碰撞攻击: MD5已经被证明容易受到碰撞攻…

9-k8s-亲和力与反亲和力

文章目录 一、概念二、实操节点亲和力1三、实操pod亲和力2 一、概念 节点亲和力概念(反亲和力相反) ps:官方文档http://kubernetes.p2hp.com/docs/concepts/scheduling-eviction/assign-pod-node.html 节点亲和力(Node Affinity&a…

手撕Vue-数据驱动界面改变下

经过上一篇的介绍,已经实现了观察者模式的基本内容,接下来要完成的就是将上一篇的发布订阅模式运用到 Nue 中,实现数据驱动界面改变。 在监听数据变化的章节当中,根据指定的区域和数据去编译渲染界面 这个步骤处,我写了…

Docker逃逸---授权 SYS_ADMIN Capability逃逸原理浅析

目录 一、产生原因 二、利用条件 三、复现过程 1、容器内挂载宿主机cgroup 2、设置notify_no_release并寻找容器在宿主机上的存储路径 3、将恶意脚本写入release_agent 一、产生原因 给容器额外授权了SYS_ADMIN Cap,并且容器以root权限运行,攻击者…

数据结构----算法--五大基本算法

数据结构----算法–五大基本算法 一.贪心算法 1.什么是贪心算法 在有多个选择的时候不考虑长远的情况,只考虑眼前的这一步,在眼前这一步选择当前的最好的方案 二.分治法 1.分治的概念 分治法:分而治之 将一个问题拆解成若干个解决方式…

计算机毕业设计--基于SSM+Vue的物流管理系统的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

基于寄生捕食优化的BP神经网络(分类应用) - 附代码

基于寄生捕食优化的BP神经网络(分类应用) - 附代码 文章目录 基于寄生捕食优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.寄生捕食优化BP神经网络3.1 BP神经网络参数设置3.2 寄生捕食算法应用 4.测试结果…

QT中使用QMediaPlayer + QVideoWidget播放视频

QT中使用QMediaPlayer QVideoWidget播放视频 项目中有要在qt中播放视频的要求,这里做下记录 CMakeLists.txt文件编写 主要修改如下两处 find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets multimedia multimediawidgets) find_package(Qt${QT_VERSIO…

【JVM】JVM类加载机制

JVM类加载机制 加载双亲委派模型 验证准备解析初始化 JVM的类加载机制,就是把类,从硬盘加载到内存中 Java程序,最开始是一个Java文件,编译成.class文件,运行Java程序,JVM就会读取.class文件,把文件的内容,放到内存中,并且构造成.class类对象 加载 这里的加载是整个类加载的一…

RabbitMQ概述,死信队列

RabbitMQ(Rabbit Message Queue)是一个开源的消息队列中间件,它实现了高级消息队列协议(AMQP)并提供可靠的消息传递机制。RabbitMQ 在分布式系统中广泛用于消息传递和事件驱动的架构。以下是一些 RabbitMQ 的重要知识点…