Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
ART-Pi
Linux
STM32H7
体验ART_Pi(stm32h750)开发板运行uboot与linux
5.00
发布于 2022-04-18 23:30:01 浏览:3054
订阅该版
[tocm] 2022-04-18 23.00 ### **一、尝鲜** 依据ART_Pi SDK下的KBOOT项目,自行尝试从源代码构建, 明显改善了kboot项目启动加载巨慢的问题。详细过程晚几天上传。 **_感谢:ART-Pi DIY 开源硬件群>>群友“null”的友情硬件支持。👍_** 资源包: [ART_Pi.zip](https://oss-club.rt-thread.org/uploads/20220418/5ca390e3f04dce374374ccdf9d0eb69a.zip) 串口波特率 115200n8 用户名:root 密码:直接回车,无密码 内部flash引导初始化程序 001_uf2.hex 下载到 0x8000000(内部flash) 内核 设备树 ramdisk ART_Pi.itb.bin 下载到 0x90080000(外部flash) linux内核引导程序 u-boot.bin 下载到 0x90000000(外部flash) ![3.gif](https://oss-club.rt-thread.org/uploads/20220418/e3a2d5c7d88abdee494cf4aa452203ea.gif) 2022-04-19 20.27 ### **二、构建过程** _**说明:已经有大佬将ART-Pi的配置添加到了u-boot、linux源代码主线内,我们只需要正确配置编译即可。**_ 资源包: [linux_for_artpi.zip](https://oss-club.rt-thread.org/uploads/20220419/dc3051bd6fe25c142364424a4c82838a.zip) 1、u-boot 平台相关文件,给想自己添加新板子的人,其他人跳过: arch -> arm -> dts -> stm32*.dts arch -> arm -> mach-stm32 borad -> st -> * include -> configs -> stm32*.h include -> stm32_rcc.h 下载: ``` wget https://source.denx.de/u-boot/u-boot/-/archive/v2021.07/u-boot-v2021.07.tar.gz ``` 构建命令: ``` make CROSS_COMPILE=arm-none-eabi- ARCH=arm stm32h750-art-pi_defconfig make CROSS_COMPILE=arm-none-eabi- ARCH=arm menuconfig > Boot options (console=ttySTM0,115200 root=/dev/ram loglevel=8) Boot arguments > Device Drivers > Serial drivers (115200) Default baudrate u-boot-v2021.07\arch\arm\dts\stm32h750i-art-pi.dts chosen { bootargs = "root=/dev/ram"; stdout-path = "serial0:2000000n8"; }; chosen { bootargs = "root=/dev/ram"; stdout-path = "serial0:115200n8"; }; make CROSS_COMPILE=arm-none-eabi- ARCH=arm -j3 ``` 最终会在源代码根目录生成"u-boot.bin"文件 2、linux kernel 下载: ``` wget https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.13.19.tar.xz ``` 构建命令: ``` make CROSS_COMPILE=arm-none-eabi- ARCH=arm stm32_defconfig make CROSS_COMPILE=arm-none-eabi- ARCH=arm menuconfig > General setup [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support > Device Drivers > Block devices [*] RAM block device support (1) Default number of RAM disks (2048) Default RAM disk size (kbytes) > System Type (0xC0000000) (S)DRAM Base Address (0x02000000) (S)DRAM SIZE > Boot options [ ] Kernel Execute-In-Place from ROM > File systems [*] Enable POSIX file locking API linux-5.13.19\arch\arm\boot\dts\stm32h750i-art-pi.dts chosen { bootargs = "root=/dev/ram"; stdout-path = "serial0:2000000n8"; }; chosen { bootargs = "root=/dev/ram"; stdout-path = "serial0:115200n8"; }; make CROSS_COMPILE=arm-none-eabi- ARCH=arm -j3 ``` 最终生成"arch/arm/boot/zImage"文件 3、buildroot 下载: ``` wget https://buildroot.org/downloads/buildroot-2021.08.tar.gz ``` 构建命令: ``` make stm32f469_disco_defconfig make menuconfig → Target options Target Architecture Variant (cortex-M7) ---> → Filesystem images [*] cpio the root filesystem (for use as an initial RAM filesystem) [*] Create U-Boot image of the root filesystem (1M) exact size → Toolchain Custom kernel headers series (5.13.x or later) ---> → Kernel [ ] Linux Kernel → Bootloaders [ ] U-Boot make -j4 ``` 最终会在output/images目录下生成ramdisk(rootfs.ext2)文件 4、将文件打包成FIT uImage格式的镜像 将 u-boot.bin zImage rootfs.ext2 stm32h750i-art-pi.dtb("linux-5.13.19->arch->arm->boot->dts"目录下) 都放到同一个目录下。 编辑APT_Pi_Krl.its文件,内容如下: ``` /dts-v1/; / { description = "RT-Thread STM32H750i-ART-PI board"; images { kernel { description = "Linux kernel for RT-Thread STM32H750i-ART-PI board"; data = /incbin/("./zImage"); type = "kernel"; arch = "arm"; os = "linux"; compression = "none"; load = <0xC0080000>; entry = <0xC0080000>; hash { algo = "sha1"; }; }; fdt { description = "Flattened Device Tree blob for RT-Thread STM32H750i-ART-PI board"; data = /incbin/("./stm32h750i-art-pi.dtb"); type = "flat_dt"; arch = "arm"; os = "linux"; compression = "none"; hash { algo = "sha1"; }; }; ramdisk { description = "Ramdisk for RT-Thread STM32H750i-ART-PI board"; data = /incbin/("./rootfs.ext2"); type = "ramdisk"; arch = "arm"; os = "linux"; compression = "none"; hash { algo = "sha1"; }; }; }; configurations { default = "conf0"; conf0 { description = "Boot Linux kernel with FDT blob"; kernel = "kernel"; fdt = "fdt"; ramdisk = "ramdisk"; }; }; }; ``` ``` mkimage -f APT_Pi_Krl.its APT_Pi_Krl.itb.bin ``` 将 001_uf2.hex 烧录到0x8000000(切记内部flash启动要用本文附件提供的这个固件) (此文件来自ART-Pi SDK下的boot_uf2工程项) 将 u-boot.bin 烧录到0x90000000 将 APT_Pi_Krl.itb.bin 烧录到0x90080000 如果嫌手动配置编译参数麻烦,可以直接拷贝资源包里的1config_开头的文件到uboot、kernel、buildroot目录下。
18
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
lizimu
这家伙很懒,什么也没写!
文章
7
回答
22
被采纳
3
关注TA
发私信
相关文章
1
RT-Thread Studio 跨平台
2
Linux下Scons编译工程遇到宏定义的问题,如何解决?
3
Linux下开发rtthread,求资料
4
qemu-vexpress-a9运行 qemu-dbg.sh 提示错误
5
ART-Pi SDK在Linux环境下编译不通过问题
6
虚拟串口在Linux下的使用问题
7
linux命令行通过串口发送finsh指令无法执行
8
怎么移植linux上的软件
9
linux下使用RT-Thread Studio插件如何进行stlink下载
10
代码在ubuntu上编译不能运行
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
at_device
ulog
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
a1012112796
13
个答案
2
次被采纳
张世争
9
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
11
个答案
1
次被采纳
本月文章贡献
程序员阿伟
7
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
3
次点赞
ThinkCode
1
篇文章
1
次点赞
Betrayer
1
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部