0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

通过Uboot TFTP启动rt-smart内核

RT-thread 来源:RT-thread 作者:RT-thread 2022-06-30 12:34 次阅读

Windows下通过 UbootTFTP 方式下载和启动rt-smart 内核

i.MX6ULL 系列处理器启动方式多样,启动时会首先执行芯片内部 Boot ROM 中的程序。Boot ROM 会根据 BOOT_MODE 寄存器、eFUSEs、配置管脚等状态来决定启动模式以及启动设备。故在启动前,用户可根据自己需要配置 ART-Pi Smart 开发板的启动方式。
目前,ART-Pi Smart 开发板有以下两种启动方式:

  • eMMC 模式(默认启动模式):ART-Pi Smart 上电时,默认从 eMMC 启动,自动运行 U-Boot
  • USB 模式:选择从 USB启动,通过 USB 接口(上方的 USB-TypeC OTG 接口),串行下载固件
    操作方法:开发板上电之后,先按下 "BOOT 启动按键" 不松开,然后,再按下 “RST 复位键”,即可切换到 USB 固件下载模式。

我选择通过 UbootTFTP 方式下载和启动rt-smart 内核

  • 首先下载并安装 Tftpd64 工具 (查看附件有安装包)
  • 在测试电脑上,提前设置好 TFTP 服务器,并配置目录定位到 rtthread.bin 文件所在的目录
  • 将 ART-Pi Smart 开发板通过有线网口和测试电脑处于同一个局域网(例,将开发板和测试电脑通过网线连接到同一台路由器或交换机
    ⚠️将网线插到 ART-Pi Smart 开发板的网口,请检查网口上两个 LED 灯(绿色和黄色)是否亮起。
  • 将 USB-TypeC(下面的)连接到电脑给开发板上电,上电时将默认从 eMMC 启动,自动运行 U-Boot
  • 在测试电脑上,打开串口调试终端:115200 波特率、8 位数据位、1 位停止位、无奇偶校验、无流控,启动终端
  • 一般插上串口线,还没那么启动终端,uboot就启动完了,重启一下 输入reboot命令 或按下 ART-Pi Smart 开发板上的 “ RST 复位键” ,让开发板复位并进入到 “uboot 启动” 倒计时


  • 在进入 “uboot 启动” 倒计时结束之前,按下键盘任意键,进入到手动模式
U-Boot 2017.03-g002b758ac9-dirty (Nov 24 2021 - 20:08:02 +0800)

CPU:   Freescale i.MX6ULL rev1.1 696 MHz (running at 396 MHz)
CPU:   Industrial temperature grade (-40C to 105C) at 39C
Reset cause: WDOG
Model: Freescale i.MX6 ULL 14x14 EVK Board
Board: MX6ULL 14x14 EVK
DRAM:  512 MiB
MMC:   FSL_SDHC: 0, FSL_SDHC: 1
*** Warning - bad CRC, using default environment

Display: TFT7016 (1024x600)
Video: 1024x600x24
In:    serial
Out:   serial
Err:   serial
switch to partitions #0, OK
mmc1(part 0) is current device
Net:   eth1: ethernet@020b4000, eth0: ethernet@02188000 [PRIME]
Normal Boot
Hit any key to stop autoboot:  0(#在进入 “uboot 启动” 倒计时结束之前,按下键盘任意键,进入到手动模式)
=>
  • 这样已经进入u-boot命令模式
    如果没有进入到手动模式,则开发板会自动进入到 i.MX6ULL 核心板自带的嵌入式 rt-smart 系统。
  • 测试是否连通电脑
=> ping 192.168.0.26
ethernet@02188000 Waiting for PHY auto negotiation to complete.... done
*** ERROR: `ipaddr' not set
ping failed; host 192.168.0.26 is not alive
  • uboot没有DHCP client 不能自动获取IP,用ipaddr命令,按提示手动IP
  • 设置开发板ip及TFTP服务器IP

=> setenv ipaddr 192.168.0.100
=> setenv serverip 192.168.0.26
=> saveenv
  • 再次测试是否连通电脑
=> ping 192.168.0.26
Using ethernet@02188000 device
host 192.168.0.26 is alive
  • 这回与电脑网络通了
  • 测试下载rtthread.bin
=> dhcp 0x80001000 192.168.0.26:rtthread.bin;dcache flush;go 0x80001000

BOOTP broadcast 1

BOOTP broadcast 2

DHCP client bound to address 192.168.0.69 (520 ms)

Using ethernet@02188000 device

TFTP from server 192.168.0.26; our IP address is 192.168.0.69

Filename 'rtthread.bin'.

Load address: 0x80001000

Loading: #################################################################

#################################################################

#################################################################

###################

1.4 MiB/s

done

Bytes transferred = 1095360 (10b6c0 hex)

## Starting application at 0x80001000 ...


\ | /

- RT -  Thread Smart Operating System

/ | \  5.0.0 build May1 2022

2006 - 2020 Copyright by rt-thread team

lwIP-2.1.2 initialized!

[15] E/drv.enet: emac device init success

[20] I/I2C: I2C bus [i2c3] registered

[24] I/I2C: I2C bus [i2c4] registered

[73] I/SDIO: SD card capacity 7565312 KB.

found part[0], begin: 4194304, size: 7.216GB

[88] E/drv.enet: PHY Link down, please check the cable connection and link partner setting.

[138] I/SDIO: emmc card capacity 3817472 KB.

found part[0], begin: 2098176, size: 500.0MB

found part[1], begin: 526386176, size: 1.0GB

found part[2], begin: 1600128000, size: 10.0MB

found part[3], begin: 1610613760, size: [161] I/touch: rt_touch init success

[165] I/gt911: touch device gt911 init success

[171] I/sal.skt: Socket Abstraction Layer initialize success.

200.0MB

emmc file system initialization done!

sd0 file system initialization done!

open em failed!

hello rt-smart

msh />[3390] W/app.filesystem: sd card mount to '/mnt' failed!

[5130] D/drv.enet: enet1 link up
  • 下载成功,我的网络设置是正确的

输入命令,将 rt-smart 内核固件文件 rtthread.bin,通过网络加载至内存中运行

命令格式:dhcpTFTP 服务器 IP(即,测试电脑 IP 地址):固件文件(xx.bin文件);dcache flush;go 固件入口地址

=> dhcp 0x80001000 192.168.0.26:rtthread.bin;dcache flush;go 0x80001000

BOOTP broadcast 1

BOOTP broadcast 2

DHCP client bound to address 192.168.0.69 (520 ms)

Using ethernet@02188000 device

TFTP from server 192.168.0.26; our IP address is 192.168.0.69

Filename 'rtthread.bin'.

Load address: 0x80001000

Loading: #################################################################

#################################################################

#################################################################

###################

1.4 MiB/s

done

Bytes transferred = 1095360 (10b6c0 hex)

## Starting application at 0x80001000 ...


\ | /

- RT -  Thread Smart Operating System

/ | \  5.0.0 build May1 2022

2006 - 2020 Copyright by rt-thread team

lwIP-2.1.2 initialized!

[15] E/drv.enet: emac device init success

[20] I/I2C: I2C bus [i2c3] registered

[24] I/I2C: I2C bus [i2c4] registered

[73] I/SDIO: SD card capacity 7565312 KB.

found part[0], begin: 4194304, size: 7.216GB

[88] E/drv.enet: PHY Link down, please check the cable connection and link partner setting.

[138] I/SDIO: emmc card capacity 3817472 KB.

found part[0], begin: 2098176, size: 500.0MB

found part[1], begin: 526386176, size: 1.0GB

found part[2], begin: 1600128000, size: 10.0MB

found part[3], begin: 1610613760, size: [161] I/touch: rt_touch init success

[165] I/gt911: touch device gt911 init success

[171] I/sal.skt: Socket Abstraction Layer initialize success.

200.0MB

emmc file system initialization done!

sd0 file system initialization done!

open em failed!

hello rt-smart

msh />[3390] W/app.filesystem: sd card mount to '/mnt' failed!

[5130] D/drv.enet: enet1 link up

yes 成功了

pYYBAGK9J8KAI0BSAADIu9jNmHk012.png
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 内核
    +关注

    关注

    3

    文章

    1362

    浏览量

    40205
  • TFTP
    +关注

    关注

    0

    文章

    20

    浏览量

    14319
  • Uboot
    +关注

    关注

    4

    文章

    125

    浏览量

    28144
  • i.MX6
    +关注

    关注

    1

    文章

    37

    浏览量

    16276
  • RT-Thread
    +关注

    关注

    31

    文章

    1266

    浏览量

    39882
收藏 人收藏

    评论

    相关推荐

    RT-Smart的资料合集

    基础,讲解 RT-Smart启动过程。内核地址空间RT-SmartRT-Thread 的一大区别是用户态和
    发表于 03-22 15:06

    [IMX6ULL]RT-Smart系统下的软件移植笔记推荐

    1、RT-Smart系统下的LwIP移植关于 i.MX 6ULL 的启动方式,已经老生常谈了。关于启动过程的分析,网上能搜到一堆原理讲解,不过不推荐把那个解释当作最佳答案,建议还是自行从手册入手关于
    发表于 03-25 16:25

    D1哪吒开发板rt-smart内核固件的烧写与运行步骤

    前BSP需要简单的修改才能保证编译通过,这里注意讲解 rt-smart 内核固件的烧写与运行搭建d1-allwinner-nezha 的 rt-smart 最小系统后,在ubuntu
    发表于 06-17 11:06

    基于RT-Thread操作系统衍生rt-smart实时操作系统简介

    执行。rt-smart 是一款高性能混合微内核操作系统,在传统嵌入式操作系统划分中,rt-smart 能够填补传统 RTOS 和大型操作系统 Linux 之间的空白,在实时性、成本、安全性、
    发表于 06-22 17:56

    如何实现一种基于Ubuntu Linux环境通过USB方式烧录rt-smart内核的设计呢

    提示设置IP,开发板要与Ubuntu处于同一网络)另外小记一下:通过 USB 方式烧录 rt-smart 内核(基于 Windows 环境)解压放100ask_imx6ull_flashing_tool.exe那个工具下面,然后
    发表于 06-27 11:42

    【原创精选】RT-Thread征文精选技术文章合集

    专栏作者 :RT-thread简介:简介:RT-Thread X RISC-V 嵌入开发,文章连载通过Uboot TFTP
    发表于 07-26 14:56

    rt-smart和master分支有哪些不同呢

    最近在调研rt-smart和master分支,有几个感悟或者问题想和大家交流下:1.从代码层次上看 文件目录树结构貌似一样,点开src核心代码,每个文件差异较大。是否smart和master独立维护
    发表于 10-14 10:52

    树莓派上rt-smart的应用编程入门

    我们从现在开始会逐步连载RT-Thread Smart(简称rt-smart,甚至有时会称为smart os)的介绍文章,旨在让大家认识,接触到sm
    的头像 发表于 05-13 14:10 3105次阅读
    树莓派上<b class='flag-5'>rt-smart</b>的应用编程入门

    rt-smart移植分析:从树莓派3b入手

    移植rt-smart到最新的板子上具体需要注意哪些细节,哪些才是移植rt-smart的关键点?本文从树莓派3b上移植rt-smart的角度,从头分析rt-sm...
    发表于 01-25 18:48 0次下载
    <b class='flag-5'>rt-smart</b>移植分析:从树莓派3b入手

    睿赛德科技微内核操作系统rt-smart已支持Arm Mali GPU

    睿赛德科技今日宣布,其微内核操作系统 RT-Thread Smart(简称:rt-smart)已支持Arm Mali GPU,为实时操作系统在汽车、消费电子等GUI应用领域提供一个新的
    的头像 发表于 09-29 10:42 2025次阅读

    优雅的在D1S上运行RT-Smart

    -Thread Smart 是基于 RT-Thread 操作系统上的混合操作系统,简称为 rt-smart,它把应用从内核中独立出来,形成独立的用户态应用程序,并具备
    的头像 发表于 11-16 20:15 2778次阅读

    丝滑的在RT-Smart用户态运行LVGL

    开发流程 1、RT-Smart 环境搭建 下载 RT-Smart 用户态应用代码: 1 git clone https: //github.com/RT-Thread/userapps.git
    的头像 发表于 11-22 20:20 1210次阅读

    RT-Smart riscv64汇编注释

    -thread/tree/rt-smart 启动 代码路径 libcpuisc-v-headc906startup_gcc.S /*  * Copyright (c) 2006-2018, RT
    的头像 发表于 02-08 21:40 1098次阅读

    零基础上手rt-smart适配bsp

    RT-Thread Smart(简称rt-smart)是基于RT-Thread操作系统衍生,面向带MMU(Memory Management Unit),中高端应用的芯片,例如ARM
    的头像 发表于 08-08 10:34 978次阅读
    零基础上手<b class='flag-5'>rt-smart</b>适配bsp

    RT-Smart riscv64汇编注释

    rt-smart在全志D1上的代码为例,主要注释了rt-smart在riscv64上的系统初始化和异常处理的代码
    的头像 发表于 10-12 17:26 571次阅读
    <b class='flag-5'>RT-Smart</b> riscv64汇编注释