APLHA开发板系统启动

news2024/11/26 14:55:04

一.  简介

前面学习了 uboot的移植,在 NXP的 Kernel内核源码里添加 ALPHA开发板的工作。本文为设置CPU主频做准备,开发板从 Nand-Flash中启动根文件系统。

具体来说,我的目的是开发板能正常启动(从Nand-Flash加载根文件系统)。

二.  APLHA开发板系统启动

1.  开发板启动文件

uboot: 添加过ALPHA开发板的NXP官方 uboot

zImage(kernel镜像):添加过ALPHA开发板的 NXP官方 kernel

设备树文件(.dtb):添加过ALPHA开发板的 NXP官方kernel内部,设备树文件

根文件系统:正点原子提供的 文件系统。

MFG烧录工具: 正点原子提供的 MFG烧录工具

2.  APLHA开发板系统启动

(1)  首先,通过 MFG-Tool工具烧录文件到 Nand-Flash中。

这里使用正点原子提供的 MFG-Tool工具,将添加了ALPHA开发板的 u-boot.imx复制到 MFG-Tool工具 mfgtool/Profiles/Linux/OS Firmware/files/boot 目录下,并重命名为 如下的文件名:

因为我使用的是 Nand-Flash开发板,DDR是 256MB,所以,我这里将编译后的 (经过移植的NXP官方的 uboot)u-boot.imx拷贝到该目录下后,重命名为 u-boot-imx6ull-14x14-ddr256-nand.imx。

更新好 uboot文件后,开始烧录开发板。开发板拨码开关拨到 usb启动,开发板上电。打开如下文件开始烧录:

(2)  其次,设置从 tftp服务下载 zImage与设备树文件(.dtb文件)到开发板,设置从 Nand-Flash启动 根文件系统。具体就是设置 bootcmd bootargs参数。

开发板烧录完成后,断电。开发板开发板拨码开关拨到 nand-Flash启动,上电,按下 "Enter"回车键进入uboot命令模式。

首先,保证 开发板可以 ping通 ubuntu。具体是:开发板设置网络相关的一系列地址,tftp服务可以使用。设置网络相关地址包括如下:

setenv ipaddr 192.168.1.50 
setenv ethaddr b8:ae:1d:01:00:00
setenv gatewayip 192.168.1.1
setenv netmask 255.255.255.0 
setenv serverip 192.168.1.66 

uboot命令模式下设置完上面的ip 地址后,也需要保存,保存命令如下:

=> saveenv

设置环境变量 bootcmd,操作如下:

=> setenv bootcmd 'tftp 0x80800000 zImage;tftp 0x83000000 imx6ull-alientek-nand.dtb;bootz 0x80800000 - 0x83000000;'
=> saveenv
Saving Environment to NAND...
Erasing NAND...
Erasing at 0x3c00000 -- 100% complete.
Writing to NAND... OK
=>

环境变量 bootcmd设置后,开发板重新上电后,就会通过 tftp服务从ubuntu系统加载 zImage和 imx6ull-alientek-nand.h(即设备树文件),并启动。这里可以进行测试。

注意:这里需要保证 ubuntu虚拟机已经开启!!!

设置 环境变量 bootargs,操作如下:

=> setenv bootargs 'console=ttymxc0,115200 ubi.mtd=5 root=ubi0:rootfs rootfstype=ubifs mtdparts=gpmi-nand:4m(u-boot),128k(env),1m(logo),1m(dtb),8m(kernel),-(rootfs)'
=> saveenv
Saving Environment to NAND...
Erasing NAND...
Erasing at 0x3c00000 -- 100% complete.
Writing to NAND... OK

可以看出,bootargs设置的是与开发板交互的串口:ttymxc0,波特率为 115200。

ubi.mtd=5表示:根文件系统存放在nand-flash的第 5个分区。

mtdparts=gpmi-nand:4m(u-boot),128k(env),1m(logo),1m(dtb),8m(kernel),-(rootfs)

表示uboot,环境变量,logo,dtb设备树文件,内核镜像,根文件系统存在 nand-Flash中的大小。

注意:这里的 uboot,环境变量,logo,dtb设备树文件,内核镜像,根文件系统的分区大小草考的是:正点原子出厂uboot源码的nand-Flash分区分配大小(参考 uboot根目录下/include/configs/mx6ullevk.h中 Nand-Flash部分,开发文档中也有说明过)。

最后,确认bootcmd与 bootargs环境变量是否设置成功:

=> printenv
baudrate=115200
board_name=EVK
board_rev=14X14
bootargs=console=ttymxc0,115200 ubi.mtd=5 root=ubi0:rootfs rootfstype=ubifs mtdparts=gpmi-nand:4m(u-boot),128k(env),1m(logo),1m(dtb),8m(kernel),-(rootfs)
bootcmd=tftp 0x80800000 zImage;tftp 0x83000000 imx6ull-alientek-nand.dtb;bootz 0x80800000 - 0x83000000;
bootcmd_mfg=run mfgtool_args;bootz ${loadaddr} ${initrd_addr} ${fdt_addr};
bootdelay=3
..........................

serverip=192.168.1.66

Environment size: 1064/131068 bytes

(3)  最后,开发板重新上电启动。保证开发板能成功从 Nand-Flash启动根文件系统。

开发板重新上电,如下:

=> reset
resetting ...


U-Boot 2016.03 (Nov 03 2023 - 02:32:33 +0800)

CPU:   Freescale i.MX6ULL rev1.1 69 MHz (running at 396 MHz)
CPU:   Industrial temperature grade (-40C to 105C) at 52C
Reset cause: WDOG
Board: MX6ULL ALIENTEK NAND
I2C:   ready
DRAM:  256 MiB
NAND:  512 MiB

.......................................

* starting FTP Server: vsftpd... done.
Starting crond: fec 20b4000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
OK
Starting nginx: nginx.
Running local boot scripts (/etc/rc.local).

root@ATK-IMX6U:~# icm20608: version magic '4.1.15-g19f085b-dirty SMP preempt mod_unload modversions ARMv7 p2v8 ' should be '4.1.15 SMP preempt mod_unload modversions ARMv6 p2v8 '

root@ATK-IMX6U:~#
root@ATK-IMX6U:~#

可以看出,开发板重新上电后,最后按下 "Enter"回车键,出现可以输入命令,即出现了# 符号,即说明开发板已经成功从 nand-Flash中启动。

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

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

相关文章

MyBatis底层原理(小白版本)

!特别声明!:这篇文章只是单纯用来应对面试,并不能用来当作深度解析的文章来看。本人才疏学浅,文章也可能有不对的地方,望指正。 此源码分析使用的是Java11 基本使用流程: String resource &q…

DAY43 完全背包理论基础 + 518.零钱兑换II

完全背包 有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品都有无限个(也就是可以放入背包多次),求解将哪些物品装入背包里物品价值总和最大。 完全背包和01背包问题唯一不同…

【51单片机】串口与LED点阵屏(学习笔记)

一、串口 1、串口的概述 串口是一种应用十分广泛的通讯接口,串口成本低、容易使用、通信线路简单,可实现两个设备的互相通信。 单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信,极大的扩展了单片机的应用…

数据中心如何散热?

数据中心的散热是一个非常重要的问题,因为数据中心内运行的服务器、存储设备以及网络设备等都会产生大量的热量,如果不能有效地进行散热,将会导致设备故障和性能下降。下面是一些常见的数据中心散热方法: 空调系统:数据…

20231103配置cv180zb的编译环境【填坑篇】

20231103配置cv180zb的编译环境【填坑篇】 2023/11/3 11:36 感谢您选择了晶视科技的cv180zb,让我们一起来填坑。 在你根据文档找不到答案的时候,是不是想把他们家那个写文档的家伙打一顿,我顶你。 当你在在网上找一圈,BAIDU/BING/…

C++初阶(八)类和对象

📘北尘_:个人主页 🌎个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上,不忘来时的初心 文章目录 一、Static成员1、Static概念2、Static特性3、试题 二、友元1、友元的类型2、友元函数3、 友元…

CSS中flex和inline-flex的区别

CSS中flex和inline-flex的区别 起因 display:flex\inline-flex是CSS中弹性布局时,用于容器元素的样式选项。 让人有些糊涂,两者的区别时什么。网上看了一些文章都在扯什么宽度之类的,完全就是胡扯。 还有的写什么“将对象作为弹性伸缩盒显示…

【软件STM32cubeIDE下H73xx配置串口uart1+中断接收/DMA收发+HAL库+简单数据解析-基础样例】

#【软件STM32cubeIDE下H73xx配置串口uart1中断接收/DMA收发HAL库简单数据解析-基础样例】 1、前言2、实验器件3-1、普通收发中断接收实验第一步:代码调试-基本配置(1)基本配置(3)时钟配置(4)保存…

TEMU拼多多跨境平台要求提供的UL测试报告如何办理?电子产品UL测试标准要求

平台销售的电子产品,要符合指定的标准,如果不合格很容易发生起火,等危及消费者生命财产的安全,因此很多客户因为缺少UL报告,导致产品被下架,销售权被移除等问题,也少不了同行之间的恶意举报触发…

ActiveMQ、RabbitMQ、RocketMQ、Kafka介绍

一、消息中间件的使用场景 消息中间件的使用场景总结就是六个字:解耦、异步、削峰 1.解耦 如果我方系统A要与三方B系统进行数据对接,推送系统人员信息,通常我们会使用接口开发来进行。但是如果运维期间B系统进行了调整,或者推送过…

如何开始短视频的制作,短视频脚本如何写?

在短视频创作拍摄的过程中,你有没有遇到过类似的情况: 拍摄拍到中途手忙脚乱的,不知道接下来该拍摄什么类容,或者拍了一半发现拍摄场景不行,又重新调整拍摄场景,再者,拍摄过程中发现缺少了拍摄道…

【面试专题】设计模式篇①

1.工厂设计模式 工厂设计模式是一种创建型模式,它提供了一种创建对象的接口,但具体创建的对象类型可以在运行时决定。工厂设计模式主要解决的是创建对象的灵活性问题。 工厂设计模式主要包括简单工厂模式、工厂方法模式和抽象工厂模式三种。 简单工厂…

虹科示波器 | 汽车免拆检修 | 2010款江铃陆风X8车发动机怠速抖动、加速无力

一、故障现象 一辆2010款江铃陆风X8车,搭载4G6GS4N发动机,累计行驶里程约为20万km。该车在其他修理厂进行发动机大修,维修后试车,发动机怠速抖动、加速无力。用故障检测仪检测,发动机控制模块(ECM&#xff…

JVM常用命令

jps —查看pid jstat -gcutil 4364 1000 2000 —查看堆内存占用百分比,每秒打印1次,总共打印2000次 S0:幸存1区当前使用比例 S1:幸存2区当前使用比例 E:伊甸园区使用比例 O:老年代使用比例 M:元…

常用的Linux远程桌面配置方法

TigerVNC 是 VNC(虚拟网络计算)的高性能、平台中立的实现,VNC 是一种客户端/服务器应用程序,允许用户在远程计算机上启动图形应用程序并与之交互。 TigerVNC 提供运行 3D 和视频应用程序所需的性能水平,并尝试在其支持…

基于单片机的温室环境数据监测系统的设计

收藏和点赞,您的关注是我创作的动力 文章目录 概要 一、总体方案设计2.1 总体架构设计 二、整体硬件电路设计3.1 主控制器电路 三 系统设计概要4.2 主程序设计原理图程序 四、 结论五、 文章目录 概要 与农业发达国家相比,我国的农业科技方面还处于刚刚…

腾讯云双11云服务器活动:88元一年的云服务器值得买吗?

作为一名程序员,在选择云服务器时,最关注的是网络稳定性、价格以及云服务商的规模。腾讯云在2023年10月23日的​双11活动​中推出了一款性价比极高的云服务器,为我们提供了一个非常有吸引力的选择。 1. 关注网络稳定性、价格和云服务商规模 …

jar包的精细化运营,Java模块化简介 | 京东云技术团队

图:模块化手机概念 一、什么是Java模块化 Java模块化(module)是Java9及以后版本引入的新特性。 官方对模块的定义为:一个被命名的,代码和数据的自描述集合。( the module, which is a named, self-descri…

【C语法学习】15 - fopen()函数

文章目录 1 函数原型2 返回值3 参数3.1 文件名3.2 模式3.2.1 以"r"模式打开3.2.2 以"w"模式打开3.2.3 以"a"模式打开3.2.4 以"r"模式打开3.2.5 以"w"模式打开3.2.6 以"a"模式打开 1 函数原型 fopen()&#xff1a…