
前段时间ST推出了Value Line的STM32F750和H750两个系列,看了一下选型表,F750有LQFP144封装,正好适合我的STM32 linux板子。 于是,双十一买了几片。同时,我对我的linux板做了小幅改版:将SPI Flash容量扩大到32MB并连接到F750的QSPI9 n) ]1 h; B; f" o8 A BANK1,添加了CAN收发器和接口,增加了两个I2C外设(温湿度传感器和气压传感器)。板子做回来后先焊了一片,调试过程还算比较顺利,现在u-boot和Linux都工作起来了,下面是系统启动log,F750速度还是相当快的(427.62. w3 s0 g$ K2 k" R" w: S" K2 O BogoMIPS,F429跑Linux只有35.84' t/ y* }1 U4 ]: i/ H. q# |$ b BogoMIPS),QSPI的加载速度也很给力。下一步我准备多测试几种STM32外设的Linux4 ~5 e) a6 H9 ^ j8 u8 i driver,emcraft现在的SDK比两三年前多了不少外设驱动,可以都试试看。 l* I9 p6 W+ d0 P ! z9 z) c8 o6 \" G: o1 P5 U ![]() ![]() ! |0 z) l: y! ~$ W, a 1 X; C4 Y% v1 r5 }- | 3 X- o% W" F A/ V6 V6 b' j U-Boot 2010.03 (Nov 26 2018 - 21:30:21) CPU : STM32F7 (Cortex-M7) Freqs: SYSCLK=216MHz,HCLK=216MHz,PCLK1=54MHz,PCLK2=108MHz DRAM: 64 MB9 \2 _# R+ Z9 S In: serial9 d1 H/ ~$ P v* Q Out: serial$ i+ t# ~: W9 N: [" t Err: serial0 a/ j# |$ i4 ]* D) k+ |$ v QSPI: 32 MB mapped at 0x900000003 |# F6 `' K. S- s+ I Net: miiphy_register done.! q" }1 x9 |: `' H% M d eth hw init done., l+ U/ N- n* V% I* E STM32_MAC Hit any key to stop autoboot: 0 X5 v- |# @0 b4 _$ B9 w/ q+ S& _ Booting from QSPI ## Booting kernel from Legacy Image at c0007fc0 ... Image Name: Linux-4.2.0, r2 }+ M. M( u, E/ ]) M8 ? Image Type: ARM Linux Multi-File Image (uncompressed)' V0 [3 O) A$ Y! N) _+ b' v8 m Data Size: 7496295 Bytes = 7.1 MB Load Address: c0008000 Entry Point: c0008001 Contents: Image 0: 7471388 Bytes = 7.1 MB) b. ?0 G+ E, [0 T9 g' E/ u: ` Image 1: 24895 Bytes = 24.3 kB Verifying Checksum ... OK8 D% N9 A- w0 H8 V1 E3 w# a ## Flattened Device Tree from multi component Image at C0007FC0 Booting using the fdt at 0xc0728128 Loading Multi-File Image ... OK OK WARNING: legacy format multi component image overwritten Loading Device Tree to c3ff6000, end c3fff13e ... OK Starting kernel ... Z) V6 O4 N: h1 N# Y0 `( Y7 X / n3 R9 I$ [! L8 _" {6 K Booting Linux on physical CPU 0x0 Linux version 4.2.0 (hw@localhost.localdomain) (gcc version 4.4.1 (Sourcery G++ Lite 2010 r7 ?) g; V% H: W. P( P2 e+ _; g q1-189) ) #90 Tue Dec 4 03:32:33 EST 2018 CPU: ARMv7-M [410fc271] revision 1 (ARMv7M), cr=000000007 { ^- K# J, R+ Z" c CPU: WBA data cache, WBA instruction cache: V8 p9 E" M |# \" } Machine model: EmCraft Systems STM32F7-SOM board Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256& M2 M; Z' P3 q Kernel command line: stm32_platform=stm32f7-disco console=ttyS0,115200 panic=10 ip=169.25 j ?4 ]+ h7 O x' `: i+ W) F7 o 4.1.10:169.254.1.2:::stm32f7-disco:eth0:off PID hash table entries: 256 (order: -2, 1024 bytes) Dentry cache hash table entries: 8192 (order: 3, 32768 bytes) Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)0 M; L2 v& h | Z. [0 a Memory: 56432K/65536K available (2523K kernel code, 181K rwdata, 588K rodata, 4000K init,7 e2 T$ o9 N9 R0 T2 q' L1 D4 u 111K bss, 9104K reserved, 0K cma-reserved) Virtual kernel memory layout: vector : 0x00000000 - 0x00001000 ( 4 kB) fixmap : 0xffc00000 - 0xfff00000 (3072 kB)0 ?9 F! h' T: H vmalloc : 0x00000000 - 0xffffffff (4095 MB)2 B+ d8 { W; e! I& \ lowmem : 0xc0000000 - 0xc4000000 ( 64 MB)5 ]! u" C( n+ v .text : 0xc0008000 - 0xc0312000 (3112 kB)- P- Z+ A! u" t% h" x1 z: { .init : 0xc0312000 - 0xc06fa000 (4000 kB)9 R7 B4 `% ]/ E0 \( ?$ o1 w4 } .data : 0xc06fa000 - 0xc07277c0 ( 182 kB) .bss : 0xc072811c - 0xc0743e84 ( 112 kB)! a% M; K! @3 X- a5 E NR_IRQS:16 nr_irqs:16 16 /interrupt-controller@40013c00: 24 External IRQs detected clocksource: arm_system_timer: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 276513352 j p! p% ]/ v) Y 8 ns ARM System timer initialized as clocksource+ ^ v0 K" g$ @0 m: n /soc/timer@40000000: STM32 clockevent driver initialized (32 bits)2 s, a) x+ V1 d: q T+ ]: a sched_clock: 32 bits at 100 Hz, resolution 10000000ns, wraps every 21474836475000000ns Calibrating delay loop... 427.62 BogoMIPS (lpj=2138112) pid_max: default: 4096 minimum: 301 Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) devtmpfs: initialized clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275; L6 F/ q& E" |" P. ^0 z 0000 ns' T: `: ~" p" \& l pinctrl core: initialized pinctrl subsystem% U/ N& v$ I3 M/ g, s NET: Registered protocol family 168 x/ t- ^) q" ]* t4 y, y stm32-pinctrl pin-controller: nbanks = 11 stm32-pinctrl pin-controller: nfunctions = 20 stm32-pinctrl pin-controller: ngroups = 239 @6 X' P' f2 p* H3 f) G! r1 ^ stm32-pinctrl pin-controller: GPIOA bank added. stm32-pinctrl pin-controller: GPIOB bank added. stm32-pinctrl pin-controller: GPIOC bank added.4 i& ?* Y) ~, i8 s4 m' n: g2 k stm32-pinctrl pin-controller: GPIOD bank added. stm32-pinctrl pin-controller: GPIOE bank added. stm32-pinctrl pin-controller: GPIOF bank added.* u+ D" v+ h( x9 O0 Z) V% ^ stm32-pinctrl pin-controller: GPIOG bank added. stm32-pinctrl pin-controller: GPIOH bank added.4 Z; w Z" Z/ `# |& E1 k$ w* w stm32-pinctrl pin-controller: GPIOI bank added." I9 Y0 O# Y, R" k$ O |! N stm32-pinctrl pin-controller: GPIOJ bank added.& c& J' L" W5 u& I1 Y1 L% { B3 V! J stm32-pinctrl pin-controller: GPIOK bank added.5 V: Z# L# F% v3 l3 K; A# ? stm32-pinctrl pin-controller: Function[0 name:i2c_1, groups:1] stm32-pinctrl pin-controller: Function[1 name:i2c_2, groups:1]& S5 S7 Q, I% q0 N; |6 \ stm32-pinctrl pin-controller: Function[2 name:i2c_3, groups:1] stm32-pinctrl pin-controller: Function[3 name:mac, groups:2]/ J3 I2 D( O# J4 s; J+ }9 I3 T stm32-pinctrl pin-controller: Function[4 name:sdio, groups:1] stm32-pinctrl pin-controller: Function[5 name:spi_2, groups:1]* {2 m0 u6 ?* V5 V stm32-pinctrl pin-controller: Function[6 name:spi_4, groups:1] stm32-pinctrl pin-controller: Function[7 name:spi_5, groups:1]0 C! `! `' T7 r% [ J stm32-pinctrl pin-controller: Function[8 name:usart1, groups:1] stm32-pinctrl pin-controller: Function[9 name:usart6, groups:1]$ t9 r' z a0 O6 a( X- Y1 i stm32-pinctrl pin-controller: Function[10 name:usart7, groups:1]4 T5 f3 Y6 ]6 j3 ?: i+ r$ R( R stm32-pinctrl pin-controller: Function[11 name:usb_fs, groups:1]# [3 H0 f/ c# v6 ~8 W stm32-pinctrl pin-controller: Function[12 name:usb_hs, groups:1] stm32-pinctrl pin-controller: Function[13 name:can_1, groups:1]% M2 c6 r6 B& {" t# Z+ B& ~ stm32-pinctrl pin-controller: Function[14 name:adc1_in0_pin, groups:1]' Y) s M; @5 [7 Z3 M) J' a Y stm32-pinctrl pin-controller: Function[15 name:dac_out2_pin, groups:1]6 B/ c# u) C5 D' H stm32-pinctrl pin-controller: Function[16 name:ltdc, groups:1] stm32-pinctrl pin-controller: Function[17 name:sai_2, groups:1]8 o- X1 }( X9 X4 F' o stm32-pinctrl pin-controller: Function[18 name:i2c_4, groups:1]5 B* l. c0 Q% Y. X. r' K stm32-pinctrl pin-controller: Function[19 name:gpio, groups:3]# h5 P, p: y. ~3 K, [ stm32-dma 40026000.dma: STM32 DMA driver registered& H* ]$ h$ x S* S1 v5 i! v stm32-dma 40026400.dma: STM32 DMA driver registered SCSI subsystem initialized* S% V# K+ X6 n( D usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub. m9 O* W! o6 L `. `* Q( ^ usbcore: registered new device driver usb soc:phy_hs supply vcc not found, using dummy regulator( V- E' z7 n- R% B6 K) a' e4 z soc:phy_fs supply vcc not found, using dummy regulator pps_core: LinuxPPS API ver. 1 registered2 L7 E+ v& }3 r! M6 o3 y( E h pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>6 q3 l% T+ ?( @. E; E/ O! n9 h PTP clock support registered Advanced Linux Sound Architecture Driver Initialized.( p( \3 a* S6 ~6 F$ ~* J% N5 [5 [$ O Bluetooth: Core ver 2.20 NET: Registered protocol family 31, o8 a: |8 s, m Q Bluetooth: HCI device and connection manager initialized f% T- K7 t, s7 Z: ~ Bluetooth: HCI socket layer initialized- |, `1 q# G6 K. u0 q Bluetooth: L2CAP socket layer initialized Bluetooth: SCO socket layer initialized' F W7 s$ x. e, \* l clocksource: Switched to clocksource arm_system_timer NET: Registered protocol family 2 TCP established hash table entries: 1024 (order: 0, 4096 bytes) TCP bind hash table entries: 1024 (order: 0, 4096 bytes) TCP: Hash tables configured (established 1024 bind 1024) UDP hash table entries: 256 (order: 0, 4096 bytes)0 z4 Z& g$ K: A2 m. R) d9 \ UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) k' g5 g) [2 f% A NET: Registered protocol family 1 RPC: Registered named UNIX socket transport module.: M, C. @* o+ {" N! h5 r$ ^/ r RPC: Registered udp transport module.) W! d5 z4 ? \5 ]0 M5 l1 I0 y RPC: Registered tcp transport module. RPC: Registered tcp NFSv4.1 backchannel transport module.9 z/ _" b3 ?( g6 D- \- I4 r0 z Power Management for STM32 futex hash table entries: 16 (order: -5, 192 bytes) jffs2: version 2.2. (NAND) (SUMMARY) 漏 2001-2006 Red Hat, Inc. b, s! s% H; K# i. v8 I. o& m fuse init (API version 7.23); |4 N( B; }) c# C! ] S Block layer SCSI generic (bsg) driver version 0.4 loaded (major 250) io scheduler noop registered io scheduler cfq registered (default) stm32-pinctrl pin-controller: maps: function gpio group pwms num 2 stm32-pwm pwm0: basing on TIM3.1(x16)% O2 T$ O. S0 g$ _/ @& H- y- V stm32-pinctrl pin-controller: maps: function ltdc group ltdc-0 num 29 stm32_lcdfb 40016800.ltdc: fb0: fb device registered successfully- B) C. v2 `* J' f j7 z STM32 USART driver initialized stm32-pinctrl pin-controller: maps: function usart1 group usart1-0 num 3; ?) W, O) C/ f- Q* R: v 40011000.serial: ttyS0 at MMIO 0x40011000 (irq = 34, base_baud = 6750000) is a stm32-usar t console [ttyS0] enabled stm32-pinctrl pin-controller: maps: function usart6 group usart6-0 num 3. P+ C$ g7 N+ ?1 }( M 40011400.serial: ttyS5 at MMIO 0x40011400 (irq = 35, base_baud = 6750000) is a stm32-usar* W! o9 d) ^. O4 ]+ s9 T" J t nbd: registered device at major 43 stm32-pinctrl pin-controller: maps: function dac_out2_pin group dac-0 num 23 Z( r) i5 j+ C3 q- @, X stm32_dac 40007400.dac: dac1: no timer assigned, DMA functionality is not available stm32_dac 40007400.dac: created 1 character devices with MAJOR 2485 p: X8 r/ u2 D9 A7 b9 b 2 ofpart partitions found on MTD device physmap-stm-flash.0 Creating 2 MTD partitions on "physmap-stm-flash.0":& q. @" L0 T: u+ ]3 I+ @ 0x000000000000-0x000000020000 : "stm_flash_uboot"2 H+ D A$ m" o 0x000000040000-0x000000100000 : "stm_flash_unused"2 B& q+ O ]" X/ g Q9 o stm32-pinctrl pin-controller: maps: function spi_5 group spi_5-0 num 4 stm32-spi 40015000.spi: SPI Controller 4 at 40015000,irq=38,hz=108000000" h& K: l! G7 P, X' o; f CAN device driver interface stm32-pinctrl pin-controller: maps: function can_1 group can_1-0 num 3; R1 r! w6 |; [* P0 u. w+ } stm32-can 40006400.can: device registered (reg=40006400, irq=31)' V- Q+ S1 z8 N- }" |$ b stm32-pinctrl pin-controller: maps: function mac group mac_rmii num 10 R* P+ f& H U' e! A/ M1 A9 C% H$ u% a stmmac - user ID: 0x10, Synopsys ID: 0x355 H j: C6 l! b, ?9 \ Ring mode enabled9 k+ y& Y- w( [* @9 j DMA HW capability register supported Enhanced/Alternate descriptors Enabled extended descriptors& W ~7 _ o+ C7 _7 s6 D+ N) Q RX Checksum Offload Engine supported (type 2)' M" P1 s. B! f1 ~+ v TX Checksum insertion supported Wake-Up On Lan supported Enable RX Mitigation via HW Watchdog Timer stm32-dwmac 40028000.ethernet eth0: No MDIO subnode found libphy: stmmac: probed eth0: PHY ID 0007c0f1 at 0 IRQ POLL (stmmac-0:00) active: o- k7 q% B Y& o' ^1 k PPP generic driver version 2.4.2 PPP BSD Compression module registered9 G; ~4 _, v! _- U, c, z PPP Deflate Compression module registered/ H/ H/ K5 g* \. m5 w" \ usbcore: registered new interface driver rt2800usb/ V, s& b; n1 a3 o/ Q" X1 M6 o( D3 x' a stm32-pinctrl pin-controller: maps: function usb_hs group usb_hs-0 num 3 dwc2 40040000.usb: DWC OTG Controller& I9 g& }9 @9 b# `6 D dwc2 40040000.usb: new USB bus registered, assigned bus number 1# b$ B: a5 P8 K# E# Z5 M+ M# i: p dwc2 40040000.usb: irq 56, io mem 0x000000001 F& P1 w4 G# l- T% I' j usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1' P3 S3 T. d2 h" o7 O" [ usb usb1: Product: DWC OTG Controller usb usb1: Manufacturer: Linux 4.2.0 dwc2_hsotg usb usb1: SerialNumber: 40040000.usb9 |9 q& B# s, `& Q4 r% F hub 1-0:1.0: USB hub found hub 1-0:1.0: 1 port detected4 X/ M3 P8 A* } stm32-pinctrl pin-controller: maps: function usb_fs group usb_fs-0 num 34 t0 E+ O# P- M# q1 |- b 50000000.usb supply vusb_d not found, using dummy regulator 50000000.usb supply vusb_a not found, using dummy regulator dwc2 50000000.usb: EPs: 6, dedicated fifos, 512 entries in SPRAM dwc2 50000000.usb: DCFG=0x08200000, DCTL=0x00000002, DIEPMSK=0000000b8 B2 M' U# t$ k' B1 s9 t dwc2 50000000.usb: GAHBCFG=0x00000000, GHWCFG1=0x000000000 @9 f' H; N: Q; ^% P% X dwc2 50000000.usb: GRXFSIZ=0x000000a0, GNPTXFSIZ=0x004000a0- g9 [0 @; Q$ [6 c, { dwc2 50000000.usb: DPTx[1] FSize=32, StAddr=0x000000e0 dwc2 50000000.usb: DPTx[2] FSize=64, StAddr=0x00000100 dwc2 50000000.usb: DPTx[3] FSize=512, StAddr=0x00000800 dwc2 50000000.usb: DPTx[4] FSize=512, StAddr=0x00000a00 dwc2 50000000.usb: DPTx[5] FSize=512, StAddr=0x00000c00 dwc2 50000000.usb: ep0-in: EPCTL=0x00008000, SIZ=0x00000000, DMA=0x5abee5fb& U( E1 s2 d: q& r dwc2 50000000.usb: ep0-out: EPCTL=0x00008000, SIZ=0x00000000, DMA=0x5abee5fb, y+ C0 R6 n! H9 ?8 W0 K dwc2 50000000.usb: ep1-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb, q3 l8 v5 M, I dwc2 50000000.usb: ep1-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb dwc2 50000000.usb: ep2-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb+ Z1 |6 m1 U1 a+ `4 d. V: C dwc2 50000000.usb: ep2-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb dwc2 50000000.usb: ep3-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb dwc2 50000000.usb: ep3-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb. P% ^/ B$ @: @/ T8 R8 [$ A dwc2 50000000.usb: ep4-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb" w$ x- x2 o; E dwc2 50000000.usb: ep4-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb1 ?" D' H8 e2 V dwc2 50000000.usb: ep5-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb6 C2 Z1 }6 a8 X- n. n- p dwc2 50000000.usb: ep5-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb dwc2 50000000.usb: DVBUSDIS=0x000017d7, DVBUSPULSE=000005b8& B/ C) Y( A2 E( n6 k usbcore: registered new interface driver cdc_acm cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters usbcore: registered new interface driver uas usbcore: registered new interface driver usb-storage4 S9 `1 t& |8 E9 c g_serial gadget: Gadget Serial v2.4 g_serial gadget: g_serial ready) i+ k' p4 I, ^6 E4 x* M dwc2 50000000.usb: bound driver g_serial) q4 q, M' d$ G8 z4 n% W i2c /dev entries driver* K# x$ ?" B5 @9 `: d% D9 c9 u stm32-pinctrl pin-controller: maps: function i2c_4 group i2c_4-0 num 33 g4 w c, t7 h o3 d2 L- B# x bmp085 3-0077: Successfully initialized bmp085!3 A* G# l" G6 u( v stm32f7-i2c 40006000.i2c: I2C Controller i2c-3 at 40006000,irq=58 Driver for 1-wire Dallas network protocol. usbcore: registered new interface driver btusb [& N! L% Y5 K, N: l8 o- }, c$ G0 N stm32-pinctrl pin-controller: maps: function sdio group sdio-0 num 77 c: E7 O, j& D; L" J! N6 p mmci-pl18x 40012c00.sdi: Got CD GPIO# G- |, r1 Z" s n mmci-pl18x 40012c00.sdi: mmc0: PL180 manf 80 rev4 at 0x40012c00 irq 37,0 (pio) stm32-dma 40026400.dma: stm32_dma_of_xlate: unable to get channel 3 - was already request ed/ P0 f+ T/ @9 {7 }# h Z mmci-pl18x 40012c00.sdi: DMA channels RX dma1chan3, TX dma1chan3 stm32_gpio_to_irq: Event line 3 now points to fire interrupts from bank G stm32-pinctrl pin-controller: maps: function gpio group outs num 25 R; l+ W t, D2 y9 o! E5 N hidraw: raw HID events driver (C) Jiri Kosina usbcore: registered new interface driver usbhid- |6 C% D7 w9 O1 ~, w usbhid: USB HID core driver stm32-pinctrl pin-controller: maps: function adc1_in0_pin group adc1-0 num 2. p ~! A/ f' B& p stm32f4-adc 40012000.adc: registered6 w, d' r6 ]: | stm32-pinctrl pin-controller: maps: function sai_2 group sai_2-0 num 5 stm32-dma 40026400.dma: stm32_dma_of_xlate: unable to get channel 4 - was already request2 i5 _# g8 g, e8 j ed8 H3 f9 T5 y# }3 M9 w stm32-asoc-card sound: failed to find codec platform device4 k8 N4 _7 e' E: z6 i1 q; l stm32-asoc-card: probe of sound failed with error -22/ c- J9 u: E6 p, Z) e5 E( r; N NET: Registered protocol family 17. g2 a( b! z$ @1 M can: controller area network core (rev 20120528 abi 9)+ _7 \ X9 y, @- X NET: Registered protocol family 29 can: raw protocol (rev 20120528)* @) p" p# a" w) A9 X can: broadcast manager protocol (rev 20120528 t) can: netlink gateway (rev 20130117) max_hops=1 Bluetooth: RFCOMM TTY layer initialized7 K5 ]! W. L) p+ l1 K/ L; \% E3 Q T Bluetooth: RFCOMM socket layer initialized Bluetooth: RFCOMM ver 1.11 hctosys: unable to open rtc device (rtc0)( P7 R/ S# r$ I vmmc: disabling ALSA device list: No soundcards found.( O, k: @, @5 k$ M& A6 q O& l Freeing unused kernel memory: 4000K (c0312000 - c06fa000)4 ], _) v2 }. A# s* U$ b init started: BusyBox v1.24.2 (2018-11-22 20:35:58 EST); } ~5 r( Z, [& h# ~3 X / # amixer: Mixer attach default error: No such file or directory stm32-dwmac 40028000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx0 R9 ]* y6 @* M8 l$ o / # free total used free shared buffers cached5 h# S+ K& f- U$ B5 i! R Mem: 60432 8140 52292 0 0 4792: }# w R- p; o4 i6 \ -/+ buffers/cache: 3348 57084( ?* U; }6 T# [& G / # |
【实战经验】基于STM32F7的网络时间同步例程
STM32硬件结构学习
STM32中BOOT的作用
【STM32F769I-DISC1】开发板刷入Micropython并完成点灯、读取内部温度测试
【STM32F769I-DISC1】测评01:创建STM32cube IDE 工程,点个灯
【STM32F769】创建deepseek本地服务,并实现http请求
汇编浮点库qfplib移植STM32F769I-DISCO开发板与硬件浮点运算性能测试对比
coremark移植到STM32F769I-DISCO开发板的两种方法
【GUI板免费申请活动】【圣诞GUI】使用F746-DISO基于TouchGFX的圣诞树
刘氓兔的杂谈【001】-片上USB 高速PHY
哇哦!