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 成功了
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
內核
+關注
關注
3文章
1382瀏覽量
40430 -
TFTP
+關注
關注
0文章
21瀏覽量
14358 -
Uboot
+關注
關注
4文章
125瀏覽量
28350 -
i.MX6
+關注
關注
1文章
37瀏覽量
16354 -
RT-Thread
+關注
關注
31文章
1305瀏覽量
40388
發布評論請先 登錄
相關推薦
[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移植分析:從樹莓派3b入手
移植rt-smart到最新的板子上具體需要注意哪些細節,哪些才是移植rt-smart的關鍵點?本文從樹莓派3b上移植rt-smart的角度,從頭分析rt-sm...
發表于 01-25 18:48
?0次下載
睿賽德科技微內核操作系統rt-smart已支持Arm Mali GPU
睿賽德科技今日宣布,其微內核操作系統 RT-Thread Smart(簡稱:rt-smart)已支持Arm Mali GPU,為實時操作系統在汽車、消費電子等GUI應用領域提供一個新的
優雅的在D1S上運行RT-Smart
-Thread Smart 是基于 RT-Thread 操作系統上的混合操作系統,簡稱為 rt-smart,它把應用從內核中獨立出來,形成獨立的用戶態應用程序,并具備
絲滑的在RT-Smart用戶態運行LVGL
開發流程 1、RT-Smart 環境搭建 下載 RT-Smart 用戶態應用代碼: 1 git?clone?https: //github.com/RT-Thread/userapps.git
RT-Smart riscv64匯編注釋
-thread/tree/rt-smart 啟動 代碼路徑 libcpuisc-v-headc906startup_gcc.S /* ?*?Copyright?(c)?2006-2018,?RT
零基礎上手rt-smart適配bsp
RT-Thread Smart(簡稱rt-smart)是基于RT-Thread操作系統衍生,面向帶MMU(Memory Management Unit),中高端應用的芯片,例如ARM
評論