前段时间ST推出了Value Line的STM32F750和H750两个系列,看了一下选型表,F750有LQFP144封装,正好适合我的STM32 linux板子。; H6 A# c& X2 u& V$ v " d7 V+ h( {; ^, ]: R" P( K/ O 于是,双十一买了几片。同时,我对我的linux板做了小幅改版:将SPI Flash容量扩大到32MB并连接到F750的QSPI BANK1,添加了CAN收发器和接口,增加了两个I2C外设(温湿度传感器和气压传感器)。板子做回来后先焊了一片,调试过程还算比较顺利,现在u-boot和Linux都工作起来了,下面是系统启动log,F750速度还是相当快的(427.62% e* j8 |. Z1 @4 a9 ] BogoMIPS,F429跑Linux只有35.84+ ]% _0 g8 Y1 p! ^" P BogoMIPS),QSPI的加载速度也很给力。下一步我准备多测试几种STM32外设的Linux" A6 y7 }, T2 \' u driver,emcraft现在的SDK比两三年前多了不少外设驱动,可以都试试看。 1 c1 ]2 ^% f( m, H 8 Q! e5 o% B1 p& M+ S& s) H! E U-Boot 2010.03 (Nov 26 2018 - 21:30:21) ( g6 f$ u! w2 A3 N$ n8 z CPU : STM32F7 (Cortex-M7)2 T* j1 N) T6 V c0 g d$ J Freqs: SYSCLK=216MHz,HCLK=216MHz,PCLK1=54MHz,PCLK2=108MHz Board: STM32F750 Rev 1.0 DRAM: 64 MB4 U0 k! M2 w1 b7 \: b. l- ? In: serial Out: serial Err: serial: M9 P! p$ F" |) _ QSPI: 32 MB mapped at 0x90000000" @0 U+ m9 w0 W; |) W; w Net: miiphy_register done.- n6 s0 o( ]; i+ e eth hw init done. STM32_MAC Hit any key to stop autoboot: 0. ~& V2 A v0 X; w! M6 E Booting from QSPI0 g4 U- Y$ C7 P' o9 R' g$ x5 T ## Booting kernel from Legacy Image at c0007fc0 ...6 g$ ?& j1 P( y9 `' ?& w: ` Image Name: Linux-4.2.0+ I6 B: d! ~: F Image Type: ARM Linux Multi-File Image (uncompressed)7 O; O% _# _% Y# y5 E Data Size: 7496295 Bytes = 7.1 MB Load Address: c0008000! V: Q& N- ^3 y( M! e" u8 j Entry Point: c0008001 Contents:" `6 x0 A F5 F; A" [+ d Image 0: 7471388 Bytes = 7.1 MB' m) y# j2 y [) E5 p Image 1: 24895 Bytes = 24.3 kB Verifying Checksum ... OK8 r: J U4 d9 a+ \! J# l ## Flattened Device Tree from multi component Image at C0007FC0 Booting using the fdt at 0xc0728128 Loading Multi-File Image ... OK OK4 R+ ?5 A. l8 ~4 \- R% a WARNING: legacy format multi component image overwritten Loading Device Tree to c3ff6000, end c3fff13e ... OK8 P: W, r6 A* C* X' H: e) N Starting kernel ...Booting Linux on physical CPU 0x0' u% W6 p3 v4 Z/ ]! O' r5 Y0 n. w* q Linux version 4.2.0(gcc version 4.4.1 (Sourcery G++ Lite 2010, R9 r/ ]$ {9 y+ E$ [" k( M q1-189) ) #90 Tue Dec 4 03:32:33 EST 2018 CPU: ARMv7-M [410fc271] revision 1 (ARMv7M), cr=00000000 CPU: WBA data cache, WBA instruction cache4 }1 Z3 t3 y% L7 d) R Machine model: EmCraft Systems STM32F7-SOM board Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256 Kernel command line: stm32_platform=stm32f7-disco console=ttyS0,115200 panic=10 ip=169.25 4.1.10:169.254.1.2:::stm32f7-disco:eth0:ff PID hash table entries: 256 (order: -2, 1024 bytes) Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)3 n! \, V# A9 v2 o Inode-cache hash table entries: 4096 (order: 2, 16384 bytes) Memory: 56432K/65536K available (2523K kernel code, 181K rwdata, 588K rodata, 4000K init, 111K bss, 9104K reserved, 0K cma-reserved)# N8 G2 z1 s( |2 F- E D/ l Virtual kernel memory layout: vector : 0x00000000 - 0x00001000 ( 4 kB) fixmap : 0xffc00000 - 0xfff00000 (3072 kB)* M4 a" \5 [. {1 \. w) r* O vmalloc : 0x00000000 - 0xffffffff (4095 MB)/ T" R$ L5 x; R L( q lowmem : 0xc0000000 - 0xc4000000 ( 64 MB) .text : 0xc0008000 - 0xc0312000 (3112 kB)6 }9 H6 b+ Z# ^# \3 W' F .init : 0xc0312000 - 0xc06fa000 (4000 kB)9 w* @; {1 w3 f B! H& P& P+ z .data : 0xc06fa000 - 0xc07277c0 ( 182 kB)3 L. E4 d8 j; d! n .bss : 0xc072811c - 0xc0743e84 ( 112 kB) ( u* e. ?& d5 L( g6 V NR_IRQS:16 nr_irqs:16 16 /interrupt-controller@40013c00: 24 External IRQs detected! A/ }& y$ x$ D p7 O. C clocksource: arm_system_timer: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 27651335, e% K8 y/ K+ M9 O3 @; ? 8 ns ARM System timer initialized as clocksource /soc/timer@40000000: STM32 clockevent driver initialized (32 bits) 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; I. p u5 l4 I- X4 g, K0 u" W' |( C Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)& u0 f1 t$ h; C1 T: D I Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes): v! s @; [! U$ K& {& q, w0 p devtmpfs: initialized clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275; [4 A5 x5 j. A2 e! U [9 V 0000 ns+ k+ m9 K4 w g/ N( x pinctrl core: initialized pinctrl subsystem NET: Registered protocol family 16; N; W% W& M/ @( K. W& p7 f stm32-pinctrl pin-controller: nbanks = 11/ W) w' K7 `' b+ C0 k9 s stm32-pinctrl pin-controller: nfunctions = 20 a8 W4 S3 H x) P2 m& b. V# q stm32-pinctrl pin-controller: ngroups = 233 H a2 u! h, F1 l4 z; m4 F" s stm32-pinctrl pin-controller: GPIOA bank added. stm32-pinctrl pin-controller: GPIOB bank added.8 E% v4 ]9 o! \5 u# ?" B stm32-pinctrl pin-controller: GPIOC bank added. stm32-pinctrl pin-controller: GPIOD bank added.5 l2 D9 {7 M. {7 ]' v# K" {' a stm32-pinctrl pin-controller: GPIOE bank added.8 f C& C) r2 ?1 L! h" e6 W stm32-pinctrl pin-controller: GPIOF bank added. stm32-pinctrl pin-controller: GPIOG bank added. stm32-pinctrl pin-controller: GPIOH bank added.+ C4 r: m% @0 F. P6 ~" b8 \ stm32-pinctrl pin-controller: GPIOI bank added. stm32-pinctrl pin-controller: GPIOJ bank added. stm32-pinctrl pin-controller: GPIOK bank added.. U" L5 g* k! Z/ [. K. T+ N stm32-pinctrl pin-controller: Function[0 name:i2c_1, groups:1]$ N3 ^3 ` ~1 K# E stm32-pinctrl pin-controller: Function[1 name:i2c_2, groups:1]+ G6 V( `4 {0 }/ _3 u. _* ]3 U stm32-pinctrl pin-controller: Function[2 name:i2c_3, groups:1]: U0 i6 @: g6 k stm32-pinctrl pin-controller: Function[3 name:mac, groups:2]' o: x( b& g9 u" d! M* _( o stm32-pinctrl pin-controller: Function[4 name:sdio, groups:1] stm32-pinctrl pin-controller: Function[5 name:spi_2, groups:1] stm32-pinctrl pin-controller: Function[6 name:spi_4, groups:1]9 Y) a- N" i8 H3 j$ B stm32-pinctrl pin-controller: Function[7 name:spi_5, groups:1]( `, K+ q* Y6 E: t2 C, g2 |+ t stm32-pinctrl pin-controller: Function[8 name:usart1, groups:1] stm32-pinctrl pin-controller: Function[9 name:usart6, groups:1]! _5 H6 V4 \- c( f2 Y% f/ h0 ] stm32-pinctrl pin-controller: Function[10 name:usart7, groups:1]5 H; W; O) F3 E4 [ stm32-pinctrl pin-controller: Function[11 name:usb_fs, groups:1] stm32-pinctrl pin-controller: Function[12 name:usb_hs, groups:1]$ f% c9 {* c/ Y( P" g5 U stm32-pinctrl pin-controller: Function[13 name:can_1, groups:1] stm32-pinctrl pin-controller: Function[14 name:adc1_in0_pin, groups:1]! ^( c- P) _3 J9 F! h. M stm32-pinctrl pin-controller: Function[15 name:dac_out2_pin, groups:1]1 V! U. [/ Q8 E( R stm32-pinctrl pin-controller: Function[16 name:ltdc, groups:1] stm32-pinctrl pin-controller: Function[17 name:sai_2, groups:1]: w4 Z U8 f6 Q: f; G stm32-pinctrl pin-controller: Function[18 name:i2c_4, groups:1]* s J/ m- F* I0 o$ E* d9 x stm32-pinctrl pin-controller: Function[19 name:gpio, groups:3]# Z5 `1 {3 _6 Y) y: E) e stm32-dma 40026000.dma: STM32 DMA driver registered stm32-dma 40026400.dma: STM32 DMA driver registered SCSI subsystem initialized usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub7 l* V; K, e ~# E+ G usbcore: registered new device driver usb soc:phy_hs supply vcc not found, using dummy regulator. N3 {, P( p8 @+ K1 e soc:phy_fs supply vcc not found, using dummy regulator pps_core: LinuxPPS API ver. 1 registered% P9 _1 m( c5 O3 k! G pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it> PTP clock support registered Advanced Linux Sound Architecture Driver Initialized.; r0 W5 K @7 B& F p6 x Bluetooth: Core ver 2.20& Y) m% X0 X: P `9 [ NET: Registered protocol family 310 v; V, ]- X e' [$ _ Bluetooth: HCI device and connection manager initialized Bluetooth: HCI socket layer initialized. y8 q2 r$ k6 D" C) o U* O; d! O Bluetooth: L2CAP socket layer initialized9 d; V; F" E$ [5 ^, d: I- }& K4 N Bluetooth: SCO socket layer initialized clocksource: Switched to clocksource arm_system_timer NET: Registered protocol family 2( }$ n# n1 c' C k2 g 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)9 s1 l' x( K1 o5 T* e UDP hash table entries: 256 (order: 0, 4096 bytes)6 \9 H* r1 k# `: I) { UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) u; ]& o6 W8 [$ B& x3 u! r/ [3 y NET: Registered protocol family 1/ R$ F) N7 i* p( I5 f RPC: Registered named UNIX socket transport module. RPC: Registered udp transport module. RPC: Registered tcp transport module.$ T2 u# e) b) ^/ | RPC: Registered tcp NFSv4.1 backchannel transport module. Power Management for STM32 futex hash table entries: 16 (order: -5, 192 bytes)8 x& g3 \# [8 M6 a- V5 g jffs2: version 2.2. (NAND) (SUMMARY) 漏 2001-2006 Red Hat, Inc. fuse init (API version 7.23)/ P9 U- n9 `. H+ O. c6 L 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 22 p/ S- o W8 c# k" |2 H stm32-pwm pwm0: basing on TIM3.1(x16) stm32-pinctrl pin-controller: maps: function ltdc group ltdc-0 num 29% u( j' f4 H9 O& n4 l& M stm32_lcdfb 40016800.ltdc: fb0: fb device registered successfully STM32 USART driver initialized stm32-pinctrl pin-controller: maps: function usart1 group usart1-0 num 3 40011000.serial: ttyS0 at MMIO 0x40011000 (irq = 34, base_baud = 6750000) is a stm32-usar' p, i. p5 ~/ N8 ? t$ X1 e- b" ]! L* p/ f/ w8 ^2 J console [ttyS0] enabled# b( J T3 M5 `3 h+ R( |3 y' L4 W stm32-pinctrl pin-controller: maps: function usart6 group usart6-0 num 3 40011400.serial: ttyS5 at MMIO 0x40011400 (irq = 35, base_baud = 6750000) is a stm32-usar$ J) E) y0 b( X5 Z! V t" Y/ ^1 O I% q/ I" t nbd: registered device at major 43' q8 E% `. s; Q3 v1 G4 ]* M stm32-pinctrl pin-controller: maps: function dac_out2_pin group dac-0 num 2 stm32_dac 40007400.dac: dac1: no timer assigned, DMA functionality is not available stm32_dac 40007400.dac: created 1 character devices with MAJOR 248' J# ?3 u' V' x f, Z! B 2 ofpart partitions found on MTD device physmap-stm-flash.0 Creating 2 MTD partitions on "physmap-stm-flash.0": 0x000000000000-0x000000020000 : "stm_flash_uboot" 0x000000040000-0x000000100000 : "stm_flash_unused"# b' S8 @, |) P/ G stm32-pinctrl pin-controller: maps: function spi_5 group spi_5-0 num 47 F8 F" ?# S6 s stm32-spi 40015000.spi: SPI Controller 4 at 40015000,irq=38,hz=108000000 CAN device driver interface) R* L$ U7 o1 u% C# S: O( d# V" U stm32-pinctrl pin-controller: maps: function can_1 group can_1-0 num 3 stm32-can 40006400.can: device registered (reg=40006400, irq=31) stm32-pinctrl pin-controller: maps: function mac group mac_rmii num 10 stmmac - user ID: 0x10, Synopsys ID: 0x35 Ring mode enabled7 f$ l5 x1 H/ c4 w$ g- b- C. |4 Q DMA HW capability register supported& ^/ }3 J, \8 |( J4 `8 S8 @ Enhanced/Alternate descriptors+ g8 c- c4 Y) G. E) M Enabled extended descriptors RX Checksum Offload Engine supported (type 2) TX Checksum insertion supported0 ^ F$ [: d% j3 S Wake-Up On Lan supported+ O+ j' l6 |( S$ |. s7 D Enable RX Mitigation via HW Watchdog Timer stm32-dwmac 40028000.ethernet eth0: No MDIO subnode found libphy: stmmac: probed7 U' P6 a8 C- S% Q: E! C! m6 b8 y eth0: PHY ID 0007c0f1 at 0 IRQ POLL (stmmac-0:00) active PPP generic driver version 2.4.2 PPP BSD Compression module registered PPP Deflate Compression module registered0 [( g' _% k+ A( Y1 [+ i, y4 ] usbcore: registered new interface driver rt2800usb stm32-pinctrl pin-controller: maps: function usb_hs group usb_hs-0 num 3 dwc2 40040000.usb: DWC OTG Controller dwc2 40040000.usb: new USB bus registered, assigned bus number 1# G3 \2 }3 z, R& v g& o/ ~ dwc2 40040000.usb: irq 56, io mem 0x00000000 usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb1: Product: DWC OTG Controller usb usb1: Manufacturer: Linux 4.2.0 dwc2_hsotg usb usb1: SerialNumber: 40040000.usb7 ^4 X$ m3 _/ m; c) }# \. c% T hub 1-0:1.0: USB hub found2 i" S+ o& p. S7 y1 M" ]0 Q, l hub 1-0:1.0: 1 port detected stm32-pinctrl pin-controller: maps: function usb_fs group usb_fs-0 num 3% `/ v. l; A; J/ q3 G4 P& y' f9 { 50000000.usb supply vusb_d not found, using dummy regulator 50000000.usb supply vusb_a not found, using dummy regulator, h* E$ w7 D" V% I( L) a dwc2 50000000.usb: EPs: 6, dedicated fifos, 512 entries in SPRAM dwc2 50000000.usb: DCFG=0x08200000, DCTL=0x00000002, DIEPMSK=0000000b dwc2 50000000.usb: GAHBCFG=0x00000000, GHWCFG1=0x00000000 dwc2 50000000.usb: GRXFSIZ=0x000000a0, GNPTXFSIZ=0x004000a0 dwc2 50000000.usb: DPTx[1] FSize=32, StAddr=0x000000e0" |. m' ~# }: C1 a* I dwc2 50000000.usb: DPTx[2] FSize=64, StAddr=0x00000100$ s* D S! O" ] 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 dwc2 50000000.usb: ep0-out: EPCTL=0x00008000, SIZ=0x00000000, DMA=0x5abee5fb7 b/ l& X. H8 Q( D3 Z% C* y dwc2 50000000.usb: ep1-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb& N( A, ` f( s8 D7 X) f( W dwc2 50000000.usb: ep1-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb8 B; t: K8 m% [ dwc2 50000000.usb: ep2-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb 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- D: p7 O9 A# F$ h' ~6 o dwc2 50000000.usb: ep4-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb dwc2 50000000.usb: ep4-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb; p" }& _. m0 H' a" x dwc2 50000000.usb: ep5-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb9 K8 f1 I. g. l4 x: P* }9 v dwc2 50000000.usb: ep5-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb dwc2 50000000.usb: DVBUSDIS=0x000017d7, DVBUSPULSE=000005b86 {6 |5 M* N) X8 U: y9 \ 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-storage' \5 j- O8 S% X& R' ? g_serial gadget: Gadget Serial v2.4$ `$ m" J) s U3 F9 Y g_serial gadget: g_serial ready/ h. {% m- N* U8 u% D* V dwc2 50000000.usb: bound driver g_serial; ^' n( I9 t G0 @4 h( F i2c /dev entries driver stm32-pinctrl pin-controller: maps: function i2c_4 group i2c_4-0 num 3# Y- u& i4 q2 Q( J& R: B& s5 H. c bmp085 3-0077: Successfully initialized bmp085! 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 stm32-pinctrl pin-controller: maps: function sdio group sdio-0 num 76 H: G5 X* d2 l* V; H% ~* ^9 b: j6 v- W mmci-pl18x 40012c00.sdi: Got CD GPIO5 ~7 @" ?$ g- U2 Y Q# C 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 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 2 hidraw: raw HID events driver (C) Jiri Kosina% L) C4 p3 |% m% D. e usbcore: registered new interface driver usbhid usbhid: USB HID core driver! a% n$ Y1 L# l8 u. b stm32-pinctrl pin-controller: maps: function adc1_in0_pin group adc1-0 num 2 stm32f4-adc 40012000.adc: registered stm32-pinctrl pin-controller: maps: function sai_2 group sai_2-0 num 5- u8 c& Z/ X/ v$ e( U4 a& | stm32-dma 40026400.dma: stm32_dma_of_xlate: unable to get channel 4 - was already request ed stm32-asoc-card sound: failed to find codec platform device4 ]9 N1 [( r% G% [, t stm32-asoc-card: probe of sound failed with error -22; H7 V7 y4 h( R/ } _0 x. h NET: Registered protocol family 17 can: controller area network core (rev 20120528 abi 9)2 e2 h5 w# J6 ~5 d" E8 q NET: Registered protocol family 29 can: raw protocol (rev 20120528)$ ~, q* q4 {4 u% w$ W& H6 l! k can: broadcast manager protocol (rev 20120528 t)( W; b! P2 d0 g2 [' I. m" J H: ? can: netlink gateway (rev 20130117) max_hops=14 v @7 g( x' T; X' |6 K Bluetooth: RFCOMM TTY layer initialized Bluetooth: RFCOMM socket layer initialized( b9 v! l7 c/ [ Bluetooth: RFCOMM ver 1.11 hctosys: unable to open rtc device (rtc0)3 m" P9 R% y4 B9 s U- _ vmmc: disabling ALSA device list:5 C+ g+ v$ C8 q/ [; `' k No soundcards found.6 X+ p! [" D' p! u" o Freeing unused kernel memory: 4000K (c0312000 - c06fa000) init started: BusyBox v1.24.2 (2018-11-22 20:35:58 EST) / # amixer: Mixer attach default error: No such file or directory+ J& p1 X. ~% d5 S stm32-dwmac 40028000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx % A8 c. P+ B4 v' W8 I# r / # free0 V3 r; L0 {0 _$ d; W _7 Z! g total used free shared buffers cached Mem: 60432 8140 52292 0 0 4792 -/+ buffers/cache: 3348 57084% f, Z7 A6 L0 X* O / #6 {. P5 J m; @7 d' Z# e4 E - h l, a2 c& k* f$ b . j2 v3 ?# Q8 l$ T0 ^2 p |
刘氓兔的杂谈【001】-片上USB 高速PHY
【合集】STM32F7教程、资料大集合
基于STM32F746G-Discover的扩展电路板
F769 Discovery实现播放U盘音乐的播放器
STM32 VS Code Extension (在Ubuntu上开发STM32,ST官方vscode插件使用指南)
STM32F765@216MHz跑NES模拟器【代码】【视频】
基于STM32F7实现ADC软件触发+轮询采集
基于STM32F7进行ADC采集解决更新问题
基于STM32F7使用定时器经验分享
实现基于STM32F7中周期采集