前段时间玩了玩openmv,做图像识别还是挺不错了,于是想了想stm32能不能跑linux,把opencv移植进去,stm32h7的性能还是比较强悍的,看跑opencv会有多少性能!
uboot和linux已经移植成功了!有一起玩的小伙伴吗?
uboot打印
U-Boot 2021.07 (Mar 05 2025 - 10:33:31 +0800)
Model: STMicroelectronics STM32H743i + OPENCV board
DRAM: 32 MiB
MMC: STM32 SD/MMC: 0
Loading Environment from nowhere... OK
In: serial@40011000
Out: serial@40011000
Err: serial@40011000
Hit SPACE in 3 seconds to stop autoboot.
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:2...
U-Boot >
linux启动打印
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] CPU: ARMv7-M [411fc271] revision 1 (ARMv7M), cr=00000000
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
[ 0.000000] OF: fdt: Machine model: STMicroelectronics STM32H743i-Discovery board
[ 0.000000] Zone ranges:
[ 0.000000] Normal [mem 0x00000000c0000000-0x00000000c1ffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x00000000c0000000-0x00000000c1ffffff]
[ 0.000000] Initmem setup node 0 [mem 0x00000000c0000000-0x00000000c1ffffff]
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 8128
[ 0.000000] Kernel command line: root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 init=/linuxrc console=ttySTM0,115200
[ 0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[ 0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off
[ 0.000000] Memory: 29676K/32768K available (1524K kernel code, 321K rwdata, 568K rodata, 84K init, 109K bss, 3092K reserved, 0K cma-reserved)
[ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[ 0.000000] /soc/interrupt-controller@58000000: bank0
[ 0.000000] /soc/interrupt-controller@58000000: bank1
[ 0.000000] /soc/interrupt-controller@58000000: bank2
[ 0.000000] clocksource: arm_system_timer: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 15553876 ns
[ 0.000000] ARM System timer initialized as clocksource
[ 0.000013] sched_clock: 32 bits at 240MHz, resolution 4ns, wraps every 8947848189ns
[ 0.000140] timer@40000c00: STM32 sched_clock registered
[ 0.000193] Switching to timer-based delay loop, resolution 4ns
[ 0.000229] timer@40000c00: STM32 delay timer registered
[ 0.000286] clocksource: timer@40000c00: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7963585194 ns
[ 0.000388] /soc/timer@40000c00: STM32 clockevent driver initialized (32 bits)
[ 0.001423] Calibrating delay loop (skipped), value calculated using timer frequency.. 480.00 BogoMIPS (lpj=2400000)
[ 0.001577] pid_max: default: 4096 minimum: 301
[ 0.002226] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.002393] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.011808] devtmpfs: initialized
[ 0.036783] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.036982] pinctrl core: initialized pinctrl subsystem
[ 0.070388] stm32h743-pinctrl soc:pin-controller@58020000: GPIOA bank added
[ 0.072467] stm32h743-pinctrl soc:pin-controller@58020000: GPIOB bank added
[ 0.074414] stm32h743-pinctrl soc:pin-controller@58020000: GPIOC bank added
[ 0.076486] stm32h743-pinctrl soc:pin-controller@58020000: GPIOD bank added
[ 0.078360] stm32h743-pinctrl soc:pin-controller@58020000: GPIOE bank added
[ 0.080250] stm32h743-pinctrl soc:pin-controller@58020000: GPIOF bank added
[ 0.082493] stm32h743-pinctrl soc:pin-controller@58020000: GPIOG bank added
[ 0.084561] stm32h743-pinctrl soc:pin-controller@58020000: GPIOH bank added
[ 0.086566] stm32h743-pinctrl soc:pin-controller@58020000: GPIOI bank added
[ 0.088471] stm32h743-pinctrl soc:pin-controller@58020000: GPIOJ bank added
[ 0.090346] stm32h743-pinctrl soc:pin-controller@58020000: GPIOK bank added
[ 0.090524] stm32h743-pinctrl soc:pin-controller@58020000: Pinctrl STM32 initialized
[ 0.110919] stm32-mdma 52000000.dma-controller: STM32 MDMA driver registered
[ 0.117548] clocksource: Switched to clocksource timer@40000c00
[ 0.131814] workingset: timestamp_bits=30 max_order=13 bucket_order=0
[ 0.155003] io scheduler mq-deadline registered
[ 0.155153] io scheduler kyber registered
[ 0.159037] STM32 USART driver initialized
[ 0.160683] stm32-usart 40011000.serial: interrupt mode for rx (no dma)
[ 0.160815] stm32-usart 40011000.serial: interrupt mode for tx (no dma)
[ 0.160907] 40011000.serial: ttySTM0 at MMIO 0x40011000 (irq = 30, base_baud = 15000000) is a stm32-usart
[ 0.553804] printk: console [ttySTM0] enabled
[ 0.561844] i2c_dev: i2c /dev entries driver
[ 0.572316] mmci-pl18x 52007000.mmc: mmc0: PL180 manf 53 rev1 at 0x52007000 irq 32,0 (pio)
[ 0.615357] Waiting for root device /dev/mmcblk0p1...
[ 0.653716] mmc0: host does not support reading read-only switch, assuming write-enable
[ 0.662558] mmc0: Problem switching card into high-speed mode!
[ 0.669416] mmc0: new SDHC card at address 0001
[ 0.676026] mmcblk0: mmc0:0001 SD 29.1 GiB
[ 0.686687] mmcblk0: p1 p2
[ 0.756509] EXT4-fs (mmcblk0p1): warning: mounting unchecked fs, running e2fsck is recommended
[ 0.770049] EXT4-fs (mmcblk0p1): mounted filesystem without journal. Quota mode: disabled.
[ 0.777257] VFS: Mounted root (ext4 filesystem) on device 179:1.
[ 0.786201] devtmpfs: mounted
[ 0.788818] Freeing unused kernel image (initmem) memory: 84K
[ 0.793540] This architecture does not have kernel memory protection.
[ 0.800111] Run /linuxrc as init process
[ 1.114585] EXT4-fs (mmcblk0p1): re-mounted. Quota mode: disabled.
mount: can't read '/etc/fstab': No such file or directory
can't run '/etc/init.d/rcS': No such file or directory
Welcome to opencv and stm32
cv32 login: root
Jan 1 00:00:12 login[33]: root login on 'console'
~ #
cpu信息
~ # cat /proc/cpuinfo
processor : 0
model name : ARMv7-M rev 1 (v7ml)
BogoMIPS : 480.00
Features : half thumb fastmult edsp idivt
CPU implementer : 0x41
CPU architecture: 7M
CPU variant : 0x1
CPU part : 0xc27
CPU revision : 1
Hardware : STM32 (Device Tree Support)
Revision : 0000
Serial : 0000000000000000
~ #
内存信息
~ # cat /proc/meminfo
MemTotal: 29760 kB
MemFree: 25544 kB
MemAvailable: 25340 kB
Buffers: 236 kB
Cached: 1280 kB
SwapCached: 0 kB
Active: 288 kB
Inactive: 1212 kB
Active(anon): 0 kB
Inactive(anon): 0 kB
Active(file): 288 kB
Inactive(file): 1212 kB
Unevictable: 16 kB
Mlocked: 0 kB
MmapCopy: 1172 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 24 kB
Writeback: 0 kB
AnonPages: 0 kB
Mapped: 0 kB
Shmem: 0 kB
KReclaimable: 152 kB
Slab: 1236 kB
SReclaimable: 152 kB
SUnreclaim: 1084 kB
KernelStack: 176 kB
PageTables: 0 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 14880 kB
Committed_AS: 0 kB
VmallocTotal: 0 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
Percpu: 32 kB
~ #