前段时间ST推出了Value Line的STM32F750和H750两个系列,看了一下选型表,F750有LQFP144封装,正好适合我的STM32 linux板子。9 ^0 ]1 b: w! b* J9 Y 于是,双十一买了几片。同时,我对我的linux板做了小幅改版:将SPI Flash容量扩大到32MB并连接到F750的QSPI0 P$ m9 V' @$ w- J9 A: J4 V BANK1,添加了CAN收发器和接口,增加了两个I2C外设(温湿度传感器和气压传感器)。板子做回来后先焊了一片,调试过程还算比较顺利,现在u-boot和Linux都工作起来了,下面是系统启动log,F750速度还是相当快的(427.62 BogoMIPS,F429跑Linux只有35.84 BogoMIPS),QSPI的加载速度也很给力。下一步我准备多测试几种STM32外设的Linux driver,emcraft现在的SDK比两三年前多了不少外设驱动,可以都试试看。; {& _0 @2 q1 b! k 1 T; L2 {/ T; R q s) C: i % }4 y! p# b a' ]% U* L* z: n + s$ X2 F) r- v4 q: Z5 [ U-Boot 2010.03 (Nov 26 2018 - 21:30:21) % {! h, E% t3 R+ d CPU : STM32F7 (Cortex-M7) Freqs: SYSCLK=216MHz,HCLK=216MHz,PCLK1=54MHz,PCLK2=108MHz- k$ m' R) c8 @ Board: STM32F750 Rev 1.0, c' l7 X! S" u& O DRAM: 64 MB In: serial) t$ H/ I5 Q4 l$ Y+ b. q4 }6 ? Out: serial7 n# @# W1 \* E$ g! S Err: serial QSPI: 32 MB mapped at 0x90000000" p/ I& M7 u _8 _ Net: miiphy_register done. eth hw init done. STM32_MAC- P* z) ~* E' a3 f Hit any key to stop autoboot: 0 Booting from QSPI" |7 O; `/ [ s. B ## Booting kernel from Legacy Image at c0007fc0 ... Image Name: Linux-4.2.09 j1 k* _" `6 Z, m) S, ` Image Type: ARM Linux Multi-File Image (uncompressed) Data Size: 7496295 Bytes = 7.1 MB& [* o. l/ M2 g' W( Z Load Address: c0008000 Entry Point: c00080012 s+ W8 |' n" n4 n Contents:4 t+ ?" n9 U$ Q7 S, C) Y7 S Image 0: 7471388 Bytes = 7.1 MB5 S2 t" y0 G* J2 V& b1 u, a* J Image 1: 24895 Bytes = 24.3 kB2 c$ o, l+ p: ~ Verifying Checksum ... OK$ q- n6 G! _9 o. p9 C% m ## Flattened Device Tree from multi component Image at C0007FC0 Booting using the fdt at 0xc0728128 Loading Multi-File Image ... OK2 Y5 h, E# ^5 f2 F( w, k. t OK, a! ]) E# `; h. n' C# a! E WARNING: legacy format multi component image overwritten Loading Device Tree to c3ff6000, end c3fff13e ... OK Starting kernel ...Booting Linux on physical CPU 0x0 Linux version 4.2.0(gcc version 4.4.1 (Sourcery G++ Lite 2010 q1-189) ) #90 Tue Dec 4 03:32:33 EST 2018( o- r" t/ P3 y/ \4 D9 ~" w- C' ] CPU: ARMv7-M [410fc271] revision 1 (ARMv7M), cr=00000000 CPU: WBA data cache, WBA instruction cache 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+ s9 n( _ I& G1 Q 4.1.10:169.254.1.2:::stm32f7-disco:eth0:ff PID hash table entries: 256 (order: -2, 1024 bytes)# C5 n# }" r# E+ K. ]& F* S2 ? Dentry cache hash table entries: 8192 (order: 3, 32768 bytes) Inode-cache hash table entries: 4096 (order: 2, 16384 bytes) Memory: 56432K/65536K available (2523K kernel code, 181K rwdata, 588K rodata, 4000K init,. f8 ? B( ~' a/ W/ O 111K bss, 9104K reserved, 0K cma-reserved)7 Y I. C- t- D i Virtual kernel memory layout: vector : 0x00000000 - 0x00001000 ( 4 kB) fixmap : 0xffc00000 - 0xfff00000 (3072 kB) vmalloc : 0x00000000 - 0xffffffff (4095 MB) lowmem : 0xc0000000 - 0xc4000000 ( 64 MB), ~; y; Y; @) K& k .text : 0xc0008000 - 0xc0312000 (3112 kB)5 ^% B2 W7 d3 d% t0 {' t/ D# o( S .init : 0xc0312000 - 0xc06fa000 (4000 kB) .data : 0xc06fa000 - 0xc07277c0 ( 182 kB)$ l" X4 ]; n/ i& }# n .bss : 0xc072811c - 0xc0743e84 ( 112 kB) NR_IRQS:16 nr_irqs:16 16 /interrupt-controller@40013c00: 24 External IRQs detected" w) _% s# r M* n8 y/ W clocksource: arm_system_timer: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 27651335" K$ q3 n8 U. b( g. z H5 h6 Z 8 ns# W. J7 S2 X2 L* Q6 |$ U ARM System timer initialized as clocksource' m, w: ^. m4 A: O6 M* ] /soc/timer@40000000: STM32 clockevent driver initialized (32 bits) sched_clock: 32 bits at 100 Hz, resolution 10000000ns, wraps every 21474836475000000ns4 H/ `, o v3 k Calibrating delay loop... 427.62 BogoMIPS (lpj=2138112). b. ^' k) c1 s pid_max: default: 4096 minimum: 301 Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)3 R% b. p1 I( ?7 [; g Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)# l( T% I1 g( Q. ?& y1 M0 K8 h devtmpfs: initialized clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462759 X+ c! v7 @% ], p+ D9 c/ t2 ~9 U 0000 ns% K! k. H4 X2 Q( d- G pinctrl core: initialized pinctrl subsystem- ]3 W$ i' }, s) @1 C" L: s: {% Y4 w NET: Registered protocol family 16 stm32-pinctrl pin-controller: nbanks = 11 stm32-pinctrl pin-controller: nfunctions = 20 stm32-pinctrl pin-controller: ngroups = 238 T* g& K; G0 N2 T- t' {) K stm32-pinctrl pin-controller: GPIOA bank added. S u1 F s# r1 D stm32-pinctrl pin-controller: GPIOB bank added.$ D( J2 S5 H- `" B/ b3 T) k& ? stm32-pinctrl pin-controller: GPIOC bank added. stm32-pinctrl pin-controller: GPIOD bank added.$ N5 ?3 i* C7 h3 {2 L/ T2 `' B stm32-pinctrl pin-controller: GPIOE bank added. stm32-pinctrl pin-controller: GPIOF bank added. stm32-pinctrl pin-controller: GPIOG bank added. stm32-pinctrl pin-controller: GPIOH bank added. stm32-pinctrl pin-controller: GPIOI bank added.' Z( _. O( q! ]3 x stm32-pinctrl pin-controller: GPIOJ bank added. stm32-pinctrl pin-controller: GPIOK bank added. stm32-pinctrl pin-controller: Function[0 name:i2c_1, groups:1]$ y) J- P$ s: R3 |6 i7 Z, X6 O0 e1 z stm32-pinctrl pin-controller: Function[1 name:i2c_2, groups:1] stm32-pinctrl pin-controller: Function[2 name:i2c_3, groups:1]7 D& q: ?& V* ~# d2 h5 n [1 _ stm32-pinctrl pin-controller: Function[3 name:mac, groups:2]. y6 n; b1 N1 T& ^" w1 w" Y stm32-pinctrl pin-controller: Function[4 name:sdio, groups:1]6 C% R' J! h, o1 ~* Y1 X stm32-pinctrl pin-controller: Function[5 name:spi_2, groups:1] stm32-pinctrl pin-controller: Function[6 name:spi_4, groups:1]# B) U) \5 K; t2 F$ h stm32-pinctrl pin-controller: Function[7 name:spi_5, groups:1] stm32-pinctrl pin-controller: Function[8 name:usart1, groups:1]1 m4 R$ o6 Q0 N; |( Y4 Z4 c1 P( w stm32-pinctrl pin-controller: Function[9 name:usart6, groups:1] stm32-pinctrl pin-controller: Function[10 name:usart7, groups:1] stm32-pinctrl pin-controller: Function[11 name:usb_fs, groups:1] stm32-pinctrl pin-controller: Function[12 name:usb_hs, groups:1] stm32-pinctrl pin-controller: Function[13 name:can_1, groups:1]5 q. B1 x8 f) j; M' H9 b9 t stm32-pinctrl pin-controller: Function[14 name:adc1_in0_pin, groups:1] stm32-pinctrl pin-controller: Function[15 name:dac_out2_pin, groups:1] stm32-pinctrl pin-controller: Function[16 name:ltdc, groups:1]4 {. T \ k# u% Z; {; I9 J" @ stm32-pinctrl pin-controller: Function[17 name:sai_2, groups:1]+ a1 N `# e' I' `: T stm32-pinctrl pin-controller: Function[18 name:i2c_4, groups:1]8 u. t* p& [/ M; j" C stm32-pinctrl pin-controller: Function[19 name:gpio, groups:3]' V: G1 z$ N2 r: q; y stm32-dma 40026000.dma: STM32 DMA driver registered/ f+ ~) ?* p- q/ [' v5 r stm32-dma 40026400.dma: STM32 DMA driver registered SCSI subsystem initialized usbcore: registered new interface driver usbfs5 H1 p6 H1 g( O+ l0 @ f usbcore: registered new interface driver hub usbcore: registered new device driver usb7 F8 \# g" @4 X4 y soc:phy_hs supply vcc not found, using dummy regulator; S/ |* M* _" Q4 ]9 J. ~ soc:phy_fs supply vcc not found, using dummy regulator pps_core: LinuxPPS API ver. 1 registered2 @- X4 A7 R4 H2 w! g9 J pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it> PTP clock support registered0 ~5 l: m1 G$ _7 X7 U; N& T ? Advanced Linux Sound Architecture Driver Initialized.5 Y2 D$ I T! A3 w5 q Bluetooth: Core ver 2.20 NET: Registered protocol family 31 Bluetooth: HCI device and connection manager initialized Bluetooth: HCI socket layer initialized Bluetooth: L2CAP socket layer initialized Bluetooth: SCO socket layer initialized! ]: w8 ^" \/ `, t' d4 h2 s9 B- m clocksource: Switched to clocksource arm_system_timer; O4 [8 F. m o) n$ J4 ^ NET: Registered protocol family 2 TCP established hash table entries: 1024 (order: 0, 4096 bytes); G3 G$ ?3 t. K6 Q! v" w' w" z! |! b TCP bind hash table entries: 1024 (order: 0, 4096 bytes). H$ R! b$ @ M, G% @. l TCP: Hash tables configured (established 1024 bind 1024) UDP hash table entries: 256 (order: 0, 4096 bytes) UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) NET: Registered protocol family 15 m+ D7 o8 {* t1 q; S7 o- F- s2 |# U, L RPC: Registered named UNIX socket transport module.; z- S! n" X3 V2 n RPC: Registered udp transport module. RPC: Registered tcp transport module. RPC: Registered tcp NFSv4.1 backchannel transport module. Power Management for STM32; ?3 W, o! _- L2 Y7 s futex hash table entries: 16 (order: -5, 192 bytes)3 R1 A0 b/ P1 U$ {& U9 A jffs2: version 2.2. (NAND) (SUMMARY) 漏 2001-2006 Red Hat, Inc. fuse init (API version 7.23) Block layer SCSI generic (bsg) driver version 0.4 loaded (major 250), V0 ? T2 W: R3 g/ Z& G io scheduler noop registered( y) D% ]0 }' g2 ?( Q" v7 F* l io scheduler cfq registered (default) stm32-pinctrl pin-controller: maps: function gpio group pwms num 2 stm32-pwm pwm0: basing on TIM3.1(x16)0 ? C8 G" K, S3 v- V4 ~ stm32-pinctrl pin-controller: maps: function ltdc group ltdc-0 num 29) z- W5 ^! y: w* P2 R, h 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 t console [ttyS0] enabled0 r& X! Y5 G6 `) c stm32-pinctrl pin-controller: maps: function usart6 group usart6-0 num 3( W5 [4 F; X& g9 U; a3 P! | 40011400.serial: ttyS5 at MMIO 0x40011400 (irq = 35, base_baud = 6750000) is a stm32-usar t nbd: registered device at major 43) e3 U, z. {' t# [* C E stm32-pinctrl pin-controller: maps: function dac_out2_pin group dac-0 num 26 L0 l/ d" G8 ]8 }' `% n9 @5 Z stm32_dac 40007400.dac: dac1: no timer assigned, DMA functionality is not available, h+ I2 O8 Y3 z) g) P% c/ X: D. R stm32_dac 40007400.dac: created 1 character devices with MAJOR 248$ @2 e6 [& C; Z& H8 \0 v 2 ofpart partitions found on MTD device physmap-stm-flash.0& ]6 v1 w* l9 x9 ^0 l Creating 2 MTD partitions on "physmap-stm-flash.0": 0x000000000000-0x000000020000 : "stm_flash_uboot"/ ~5 ~% w4 z' p 0x000000040000-0x000000100000 : "stm_flash_unused"6 A9 Q0 K- ]0 N+ Q/ V2 g stm32-pinctrl pin-controller: maps: function spi_5 group spi_5-0 num 46 {1 x! _8 _, g# Q) W" G T2 z, w9 e stm32-spi 40015000.spi: SPI Controller 4 at 40015000,irq=38,hz=108000000 CAN device driver interface stm32-pinctrl pin-controller: maps: function can_1 group can_1-0 num 3 stm32-can 40006400.can: device registered (reg=40006400, irq=31)( A. V8 ?! b0 }7 [1 O( A stm32-pinctrl pin-controller: maps: function mac group mac_rmii num 10 stmmac - user ID: 0x10, Synopsys ID: 0x357 _' A+ z# T4 I. L/ N" R Ring mode enabled DMA HW capability register supported Enhanced/Alternate descriptors9 N& o' u, t3 z, l$ e9 H Enabled extended descriptors# z+ P- J. h$ y, V RX Checksum Offload Engine supported (type 2) 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( W7 _4 b2 F' ~* o5 Z1 x, h6 j libphy: stmmac: probed eth0: PHY ID 0007c0f1 at 0 IRQ POLL (stmmac-0:00) active, R. ?6 F$ r7 L) ], \/ m PPP generic driver version 2.4.2 PPP BSD Compression module registered PPP Deflate Compression module registered0 r' V: g W# O7 C usbcore: registered new interface driver rt2800usb5 K4 K# Q- B! `% W$ A 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- ? I/ X1 m i9 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) Q' \- N7 H) ~9 K/ U usb usb1: Product: DWC OTG Controller usb usb1: Manufacturer: Linux 4.2.0 dwc2_hsotg& p* C/ K, ?8 V+ l usb usb1: SerialNumber: 40040000.usb hub 1-0:1.0: USB hub found$ {' }6 t! l* g& u+ f5 M hub 1-0:1.0: 1 port detected stm32-pinctrl pin-controller: maps: function usb_fs group usb_fs-0 num 3 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+ X+ I. t% n% W" r% @$ b% V% j2 n7 r+ G dwc2 50000000.usb: DCFG=0x08200000, DCTL=0x00000002, DIEPMSK=0000000b+ E- ^; a! F( Q; T% Q dwc2 50000000.usb: GAHBCFG=0x00000000, GHWCFG1=0x00000000 dwc2 50000000.usb: GRXFSIZ=0x000000a0, GNPTXFSIZ=0x004000a0 dwc2 50000000.usb: DPTx[1] FSize=32, StAddr=0x000000e0+ D/ S: I* e. d5 D2 m9 B dwc2 50000000.usb: DPTx[2] FSize=64, StAddr=0x00000100" L r( Q+ s& t( s1 o dwc2 50000000.usb: DPTx[3] FSize=512, StAddr=0x00000800 dwc2 50000000.usb: DPTx[4] FSize=512, StAddr=0x00000a00! v1 A/ n& H& z( S1 y3 m- h dwc2 50000000.usb: DPTx[5] FSize=512, StAddr=0x00000c00+ ~) a3 z' |( P$ X: M+ x& Q dwc2 50000000.usb: ep0-in: EPCTL=0x00008000, SIZ=0x00000000, DMA=0x5abee5fb dwc2 50000000.usb: ep0-out: EPCTL=0x00008000, SIZ=0x00000000, DMA=0x5abee5fb dwc2 50000000.usb: ep1-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb; ^/ a5 F0 O m dwc2 50000000.usb: ep1-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb N) h( f- l, |, ~ 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 dwc2 50000000.usb: ep4-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb# M! I, Z5 a) f9 \, d9 p2 e0 f dwc2 50000000.usb: ep4-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb dwc2 50000000.usb: ep5-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb dwc2 50000000.usb: ep5-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb dwc2 50000000.usb: DVBUSDIS=0x000017d7, DVBUSPULSE=000005b8: |( R* m; S' c1 e6 D- R( h usbcore: registered new interface driver cdc_acm. S$ s/ V- j# L# Y6 j3 Q cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters; u* i$ }: k0 L usbcore: registered new interface driver uas* q; Q: E( d: z5 s G usbcore: registered new interface driver usb-storage1 s; G. h* f9 E+ j( O g_serial gadget: Gadget Serial v2.44 A$ m1 V& y+ Q4 g3 R# n" D6 } g_serial gadget: g_serial ready+ o. J1 W& Z" l- v dwc2 50000000.usb: bound driver g_serial8 j* s; D, K, I! ~6 l/ H7 w i2c /dev entries driver1 G- o4 t1 D( r7 L1 J# m" z" B& _ stm32-pinctrl pin-controller: maps: function i2c_4 group i2c_4-0 num 3 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 7 mmci-pl18x 40012c00.sdi: Got CD GPIO9 ?; a7 j3 W+ A/ j. n: V mmci-pl18x 40012c00.sdi: mmc0: PL180 manf 80 rev4 at 0x40012c00 irq 37,0 (pio)$ a6 T9 L/ G9 m* W* z stm32-dma 40026400.dma: stm32_dma_of_xlate: unable to get channel 3 - was already request2 I7 }% Z7 A+ Q+ k; p ed mmci-pl18x 40012c00.sdi: DMA channels RX dma1chan3, TX dma1chan38 I9 Q, T8 T" ^6 S$ S stm32_gpio_to_irq: Event line 3 now points to fire interrupts from bank G8 S5 {; D' a$ ^6 o& G* A+ j% D% A stm32-pinctrl pin-controller: maps: function gpio group outs num 2: U% I* b/ i. D$ \2 v) C w$ y hidraw: raw HID events driver (C) Jiri Kosina usbcore: registered new interface driver usbhid usbhid: USB HID core driver! |1 R4 J5 r( j. K5 r7 X2 x stm32-pinctrl pin-controller: maps: function adc1_in0_pin group adc1-0 num 2 c$ S" U' M( M$ Y stm32f4-adc 40012000.adc: registered 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 request# C5 f1 A0 S ~5 w5 l! H- e ed0 w, v3 m% O* Y+ j stm32-asoc-card sound: failed to find codec platform device stm32-asoc-card: probe of sound failed with error -22 NET: Registered protocol family 17% k/ `. t$ w B, ]6 r) m& v can: controller area network core (rev 20120528 abi 9) NET: Registered protocol family 29 can: raw protocol (rev 20120528) can: broadcast manager protocol (rev 20120528 t)6 G1 x* [8 V( |2 M, r! ~ can: netlink gateway (rev 20130117) max_hops=1) r: @+ u4 s- p/ Y+ A/ B1 Y Bluetooth: RFCOMM TTY layer initialized Bluetooth: RFCOMM socket layer initialized+ ^" x' s5 m: Y( e' q Bluetooth: RFCOMM ver 1.11+ {0 e! y/ `/ d, o% R hctosys: unable to open rtc device (rtc0)- ~4 s; I7 X* m. Q vmmc: disabling ALSA device list: No soundcards found. Freeing unused kernel memory: 4000K (c0312000 - c06fa000) init started: BusyBox v1.24.2 (2018-11-22 20:35:58 EST), N' m+ y- k+ z' I9 g& H7 g, d / # amixer: Mixer attach default error: No such file or directory2 g9 s$ _+ q! E8 A; k stm32-dwmac 40028000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx / # free' Z0 w. E* U! L! |! O; F' \$ p( `! U6 | total used free shared buffers cached! Q$ t0 R+ A( j4 H Mem: 60432 8140 52292 0 0 4792: P- M4 }9 x: S# e -/+ buffers/cache: 3348 57084' w9 Z) \/ P5 q" |. g3 ` / ## M8 s) H% H8 m9 W: E ! Z3 m3 _' D; L1 g) h7 E |
基于STM32F746G-Discover的扩展电路板
【合集】STM32F7教程、资料大集合
F769 Discovery实现播放U盘音乐的播放器
STM32 VS Code Extension (在Ubuntu上开发STM32,ST官方vscode插件使用指南)
STM32F765@216MHz跑NES模拟器【代码】【视频】
基于STM32F7实现ADC软件触发+轮询采集
基于STM32F7进行ADC采集解决更新问题
基于STM32F7使用定时器经验分享
实现基于STM32F7中周期采集
基于STM32F7中实现采集和中断