新出的STM32F750成功运行Linux

2019-12-11 18:38发布

前段时间ST推出了Value Line的STM32F750和H750两个系列,看了一下选型表,F750有LQFP144封装,正好适合我的STM32 linux板子。
于是,双十一买了几片。同时,我对我的linux板做了小幅改版:将SPI Flash容量扩大到32MB并连接到F750的QSPI BANK1,添加了CAN收发器和接口,增加了两个I2C外设(温湿度传感器和气压传感器)。板子做回来后先焊了一片,调试过程还算比较顺利,现在u-boot和Linux都工作起来了,下面是系统启动log,F750速度还是相当快的(427.62 BogoMIPS,F429跑Linux只有35.84 BogoMIPS),QSPI的加载速度也很给力。下一步我准备多测试几种STM32外设的Linux driver,emcraft现在的SDK比两三年前多了不少外设驱动,可以都试试看。

  1. U-Boot 2010.03 (Nov 26 2018 - 21:30:21)

  2. CPU  : STM32F7 (Cortex-M7)
  3. Freqs: SYSCLK=216MHz,HCLK=216MHz,PCLK1=54MHz,PCLK2=108MHz
  4. Board: STM32F750 Rev 1.0, www.emcraft.com
  5. DRAM:  64 MB
  6. In:    serial
  7. Out:   serial
  8. Err:   serial
  9. QSPI:  32 MB mapped at 0x90000000
  10. Net:   miiphy_register done.
  11. eth hw init done.
  12. STM32_MAC
  13. Hit any key to stop autoboot:  0
  14. Booting from QSPI
  15. ## Booting kernel from Legacy Image at c0007fc0 ...
  16.    Image Name:   Linux-4.2.0
  17.    Image Type:   ARM Linux Multi-File Image (uncompressed)
  18.    Data Size:    7496295 Bytes =  7.1 MB
  19.    Load Address: c0008000
  20.    Entry Point:  c0008001
  21.    Contents:
  22.       Image 0: 7471388 Bytes =  7.1 MB
  23.       Image 1: 24895 Bytes = 24.3 kB
  24.    Verifying Checksum ... OK
  25. ## Flattened Device Tree from multi component Image at C0007FC0
  26.    Booting using the fdt at 0xc0728128
  27.    Loading Multi-File Image ... OK
  28. OK
  29. WARNING: legacy format multi component image overwritten
  30.    Loading Device Tree to c3ff6000, end c3fff13e ... OK

  31. Starting kernel ...

  32. Booting Linux on physical CPU 0x0
  33. Linux version 4.2.0 (hw@localhost.localdomain) (gcc version 4.4.1 (Sourcery G++ Lite 2010
  34. q1-189) ) #90 Tue Dec 4 03:32:33 EST 2018
  35. CPU: ARMv7-M [410fc271] revision 1 (ARMv7M), cr=00000000
  36. CPU: WBA data cache, WBA instruction cache
  37. Machine model: EmCraft Systems STM32F7-SOM board
  38. Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256
  39. Kernel command line: stm32_platform=stm32f7-disco console=ttyS0,115200 panic=10 ip=169.25
  40. 4.1.10:169.254.1.2:::stm32f7-disco:eth0:off
  41. PID hash table entries: 256 (order: -2, 1024 bytes)
  42. Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
  43. Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
  44. Memory: 56432K/65536K available (2523K kernel code, 181K rwdata, 588K rodata, 4000K init,
  45. 111K bss, 9104K reserved, 0K cma-reserved)
  46. Virtual kernel memory layout:
  47.     vector  : 0x00000000 - 0x00001000   (   4 kB)
  48.     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
  49.     vmalloc : 0x00000000 - 0xffffffff   (4095 MB)
  50.     lowmem  : 0xc0000000 - 0xc4000000   (  64 MB)
  51.       .text : 0xc0008000 - 0xc0312000   (3112 kB)
  52.       .init : 0xc0312000 - 0xc06fa000   (4000 kB)
  53.       .data : 0xc06fa000 - 0xc07277c0   ( 182 kB)
  54.        .bss : 0xc072811c - 0xc0743e84   ( 112 kB)
  55. NR_IRQS:16 nr_irqs:16 16
  56. /interrupt-controller@40013c00: 24 External IRQs detected
  57. clocksource: arm_system_timer: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 27651335
  58. 8 ns
  59. ARM System timer initialized as clocksource
  60. /soc/timer@40000000: STM32 clockevent driver initialized (32 bits)
  61. sched_clock: 32 bits at 100 Hz, resolution 10000000ns, wraps every 21474836475000000ns
  62. Calibrating delay loop... 427.62 BogoMIPS (lpj=2138112)
  63. pid_max: default: 4096 minimum: 301
  64. Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
  65. Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
  66. devtmpfs: initialized
  67. clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275
  68. 0000 ns
  69. pinctrl core: initialized pinctrl subsystem
  70. NET: Registered protocol family 16
  71. stm32-pinctrl pin-controller: nbanks = 11
  72. stm32-pinctrl pin-controller: nfunctions = 20
  73. stm32-pinctrl pin-controller: ngroups = 23
  74. stm32-pinctrl pin-controller: GPIOA bank added.
  75. stm32-pinctrl pin-controller: GPIOB bank added.
  76. stm32-pinctrl pin-controller: GPIOC bank added.
  77. stm32-pinctrl pin-controller: GPIOD bank added.
  78. stm32-pinctrl pin-controller: GPIOE bank added.
  79. stm32-pinctrl pin-controller: GPIOF bank added.
  80. stm32-pinctrl pin-controller: GPIOG bank added.
  81. stm32-pinctrl pin-controller: GPIOH bank added.
  82. stm32-pinctrl pin-controller: GPIOI bank added.
  83. stm32-pinctrl pin-controller: GPIOJ bank added.
  84. stm32-pinctrl pin-controller: GPIOK bank added.
  85. stm32-pinctrl pin-controller: Function[0         name:i2c_1,    groups:1]
  86. stm32-pinctrl pin-controller: Function[1         name:i2c_2,    groups:1]
  87. stm32-pinctrl pin-controller: Function[2         name:i2c_3,    groups:1]
  88. stm32-pinctrl pin-controller: Function[3         name:mac,      groups:2]
  89. stm32-pinctrl pin-controller: Function[4         name:sdio,     groups:1]
  90. stm32-pinctrl pin-controller: Function[5         name:spi_2,    groups:1]
  91. stm32-pinctrl pin-controller: Function[6         name:spi_4,    groups:1]
  92. stm32-pinctrl pin-controller: Function[7         name:spi_5,    groups:1]
  93. stm32-pinctrl pin-controller: Function[8         name:usart1,   groups:1]
  94. stm32-pinctrl pin-controller: Function[9         name:usart6,   groups:1]
  95. stm32-pinctrl pin-controller: Function[10        name:usart7,   groups:1]
  96. stm32-pinctrl pin-controller: Function[11        name:usb_fs,   groups:1]
  97. stm32-pinctrl pin-controller: Function[12        name:usb_hs,   groups:1]
  98. stm32-pinctrl pin-controller: Function[13        name:can_1,    groups:1]
  99. stm32-pinctrl pin-controller: Function[14        name:adc1_in0_pin,     groups:1]
  100. stm32-pinctrl pin-controller: Function[15        name:dac_out2_pin,     groups:1]
  101. stm32-pinctrl pin-controller: Function[16        name:ltdc,     groups:1]
  102. stm32-pinctrl pin-controller: Function[17        name:sai_2,    groups:1]
  103. stm32-pinctrl pin-controller: Function[18        name:i2c_4,    groups:1]
  104. stm32-pinctrl pin-controller: Function[19        name:gpio,     groups:3]
  105. stm32-dma 40026000.dma: STM32 DMA driver registered
  106. stm32-dma 40026400.dma: STM32 DMA driver registered
  107. SCSI subsystem initialized
  108. usbcore: registered new interface driver usbfs
  109. usbcore: registered new interface driver hub
  110. usbcore: registered new device driver usb
  111. soc:phy_hs supply vcc not found, using dummy regulator
  112. soc:phy_fs supply vcc not found, using dummy regulator
  113. pps_core: LinuxPPS API ver. 1 registered
  114. pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
  115. PTP clock support registered
  116. Advanced Linux Sound Architecture Driver Initialized.
  117. Bluetooth: Core ver 2.20
  118. NET: Registered protocol family 31
  119. Bluetooth: HCI device and connection manager initialized
  120. Bluetooth: HCI socket layer initialized
  121. Bluetooth: L2CAP socket layer initialized
  122. Bluetooth: SCO socket layer initialized
  123. clocksource: Switched to clocksource arm_system_timer
  124. NET: Registered protocol family 2
  125. TCP established hash table entries: 1024 (order: 0, 4096 bytes)
  126. TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
  127. TCP: Hash tables configured (established 1024 bind 1024)
  128. UDP hash table entries: 256 (order: 0, 4096 bytes)
  129. UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
  130. NET: Registered protocol family 1
  131. RPC: Registered named UNIX socket transport module.
  132. RPC: Registered udp transport module.
  133. RPC: Registered tcp transport module.
  134. RPC: Registered tcp NFSv4.1 backchannel transport module.
  135. Power Management for STM32
  136. futex hash table entries: 16 (order: -5, 192 bytes)
  137. jffs2: version 2.2. (NAND) (SUMMARY)  漏 2001-2006 Red Hat, Inc.
  138. fuse init (API version 7.23)
  139. Block layer SCSI generic (bsg) driver version 0.4 loaded (major 250)
  140. io scheduler noop registered
  141. io scheduler cfq registered (default)
  142. stm32-pinctrl pin-controller: maps: function gpio group pwms num 2
  143. stm32-pwm pwm0: basing on TIM3.1(x16)
  144. stm32-pinctrl pin-controller: maps: function ltdc group ltdc-0 num 29
  145. stm32_lcdfb 40016800.ltdc: fb0: fb device registered successfully
  146. STM32 USART driver initialized
  147. stm32-pinctrl pin-controller: maps: function usart1 group usart1-0 num 3
  148. 40011000.serial: ttyS0 at MMIO 0x40011000 (irq = 34, base_baud = 6750000) is a stm32-usar
  149. t
  150. console [ttyS0] enabled
  151. stm32-pinctrl pin-controller: maps: function usart6 group usart6-0 num 3
  152. 40011400.serial: ttyS5 at MMIO 0x40011400 (irq = 35, base_baud = 6750000) is a stm32-usar
  153. t
  154. nbd: registered device at major 43
  155. stm32-pinctrl pin-controller: maps: function dac_out2_pin group dac-0 num 2
  156. stm32_dac 40007400.dac: dac1: no timer assigned, DMA functionality is not available
  157. stm32_dac 40007400.dac: created 1 character devices with MAJOR 248
  158. 2 ofpart partitions found on MTD device physmap-stm-flash.0
  159. Creating 2 MTD partitions on "physmap-stm-flash.0":
  160. 0x000000000000-0x000000020000 : "stm_flash_uboot"
  161. 0x000000040000-0x000000100000 : "stm_flash_unused"
  162. stm32-pinctrl pin-controller: maps: function spi_5 group spi_5-0 num 4
  163. stm32-spi 40015000.spi: SPI Controller 4 at 40015000,irq=38,hz=108000000
  164. CAN device driver interface
  165. stm32-pinctrl pin-controller: maps: function can_1 group can_1-0 num 3
  166. stm32-can 40006400.can: device registered (reg=40006400, irq=31)
  167. stm32-pinctrl pin-controller: maps: function mac group mac_rmii num 10
  168. stmmac - user ID: 0x10, Synopsys ID: 0x35
  169. Ring mode enabled
  170. DMA HW capability register supported
  171. Enhanced/Alternate descriptors
  172.         Enabled extended descriptors
  173. RX Checksum Offload Engine supported (type 2)
  174. TX Checksum insertion supported
  175. Wake-Up On Lan supported
  176. Enable RX Mitigation via HW Watchdog Timer
  177. stm32-dwmac 40028000.ethernet eth0: No MDIO subnode found
  178. libphy: stmmac: probed
  179. eth0: PHY ID 0007c0f1 at 0 IRQ POLL (stmmac-0:00) active
  180. PPP generic driver version 2.4.2
  181. PPP BSD Compression module registered
  182. PPP Deflate Compression module registered
  183. usbcore: registered new interface driver rt2800usb
  184. stm32-pinctrl pin-controller: maps: function usb_hs group usb_hs-0 num 3
  185. dwc2 40040000.usb: DWC OTG Controller
  186. dwc2 40040000.usb: new USB bus registered, assigned bus number 1
  187. dwc2 40040000.usb: irq 56, io mem 0x00000000
  188. usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
  189. usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
  190. usb usb1: Product: DWC OTG Controller
  191. usb usb1: Manufacturer: Linux 4.2.0 dwc2_hsotg
  192. usb usb1: SerialNumber: 40040000.usb
  193. hub 1-0:1.0: USB hub found
  194. hub 1-0:1.0: 1 port detected
  195. stm32-pinctrl pin-controller: maps: function usb_fs group usb_fs-0 num 3
  196. 50000000.usb supply vusb_d not found, using dummy regulator
  197. 50000000.usb supply vusb_a not found, using dummy regulator
  198. dwc2 50000000.usb: EPs: 6, dedicated fifos, 512 entries in SPRAM
  199. dwc2 50000000.usb: DCFG=0x08200000, DCTL=0x00000002, DIEPMSK=0000000b
  200. dwc2 50000000.usb: GAHBCFG=0x00000000, GHWCFG1=0x00000000
  201. dwc2 50000000.usb: GRXFSIZ=0x000000a0, GNPTXFSIZ=0x004000a0
  202. dwc2 50000000.usb: DPTx[1] FSize=32, StAddr=0x000000e0
  203. dwc2 50000000.usb: DPTx[2] FSize=64, StAddr=0x00000100
  204. dwc2 50000000.usb: DPTx[3] FSize=512, StAddr=0x00000800
  205. dwc2 50000000.usb: DPTx[4] FSize=512, StAddr=0x00000a00
  206. dwc2 50000000.usb: DPTx[5] FSize=512, StAddr=0x00000c00
  207. dwc2 50000000.usb: ep0-in: EPCTL=0x00008000, SIZ=0x00000000, DMA=0x5abee5fb
  208. dwc2 50000000.usb: ep0-out: EPCTL=0x00008000, SIZ=0x00000000, DMA=0x5abee5fb
  209. dwc2 50000000.usb: ep1-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb
  210. dwc2 50000000.usb: ep1-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb
  211. dwc2 50000000.usb: ep2-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb
  212. dwc2 50000000.usb: ep2-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb
  213. dwc2 50000000.usb: ep3-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb
  214. dwc2 50000000.usb: ep3-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb
  215. dwc2 50000000.usb: ep4-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb
  216. dwc2 50000000.usb: ep4-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb
  217. dwc2 50000000.usb: ep5-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb
  218. dwc2 50000000.usb: ep5-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb
  219. dwc2 50000000.usb: DVBUSDIS=0x000017d7, DVBUSPULSE=000005b8
  220. usbcore: registered new interface driver cdc_acm
  221. cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
  222. usbcore: registered new interface driver uas
  223. usbcore: registered new interface driver usb-storage
  224. g_serial gadget: Gadget Serial v2.4
  225. g_serial gadget: g_serial ready
  226. dwc2 50000000.usb: bound driver g_serial
  227. i2c /dev entries driver
  228. stm32-pinctrl pin-controller: maps: function i2c_4 group i2c_4-0 num 3
  229. bmp085 3-0077: Successfully initialized bmp085!
  230. stm32f7-i2c 40006000.i2c: I2C Controller i2c-3 at 40006000,irq=58
  231. Driver for 1-wire Dallas network protocol.
  232. usbcore: registered new interface driver btusb
  233. stm32-pinctrl pin-controller: maps: function sdio group sdio-0 num 7
  234. mmci-pl18x 40012c00.sdi: Got CD GPIO
  235. mmci-pl18x 40012c00.sdi: mmc0: PL180 manf 80 rev4 at 0x40012c00 irq 37,0 (pio)
  236. stm32-dma 40026400.dma: stm32_dma_of_xlate: unable to get channel 3 - was already request
  237. ed
  238. mmci-pl18x 40012c00.sdi: DMA channels RX dma1chan3, TX dma1chan3
  239. stm32_gpio_to_irq: Event line 3 now points to fire interrupts from bank G
  240. stm32-pinctrl pin-controller: maps: function gpio group outs num 2
  241. hidraw: raw HID events driver (C) Jiri Kosina
  242. usbcore: registered new interface driver usbhid
  243. usbhid: USB HID core driver
  244. stm32-pinctrl pin-controller: maps: function adc1_in0_pin group adc1-0 num 2
  245. stm32f4-adc 40012000.adc: registered
  246. stm32-pinctrl pin-controller: maps: function sai_2 group sai_2-0 num 5
  247. stm32-dma 40026400.dma: stm32_dma_of_xlate: unable to get channel 4 - was already request
  248. ed
  249. stm32-asoc-card sound: failed to find codec platform device
  250. stm32-asoc-card: probe of sound failed with error -22
  251. NET: Registered protocol family 17
  252. can: controller area network core (rev 20120528 abi 9)
  253. NET: Registered protocol family 29
  254. can: raw protocol (rev 20120528)
  255. can: broadcast manager protocol (rev 20120528 t)
  256. can: netlink gateway (rev 20130117) max_hops=1
  257. Bluetooth: RFCOMM TTY layer initialized
  258. Bluetooth: RFCOMM socket layer initialized
  259. Bluetooth: RFCOMM ver 1.11
  260. hctosys: unable to open rtc device (rtc0)
  261. vmmc: disabling
  262. ALSA device list:
  263.   No soundcards found.
  264. Freeing unused kernel memory: 4000K (c0312000 - c06fa000)
  265. init started: BusyBox v1.24.2 (2018-11-22 20:35:58 EST)
  266. / # amixer: Mixer attach default error: No such file or directory
  267. stm32-dwmac 40028000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx

  268. / # free
  269.              total       used       free     shared    buffers     cached
  270. Mem:         60432       8140      52292          0          0       4792
  271. -/+ buffers/cache:       3348      57084
  272. / #
复制代码

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
47条回答
leiyitan
1楼-- · 2019-12-13 13:14
总是有人问,你用stm32跑Linux有意义么?
细思一下,其实大可不必这么去思考这个问题,因为这个世界需要更多别人去做你所认为没有意义的事。
感谢楼主分享!
浮华一生
2楼-- · 2019-12-13 18:27
ztg328 发表于 2018-12-4 22:24
f7的Linux和arm9的Linux相比有哪些优势

有没有MMU 我觉得差别还是大。 有时候写程序 还是有限制
Jmhh247
3楼-- · 2019-12-13 21:26
楼主,上板子图片啊,我是来看无码高清图的
日日♂夜夜
4楼-- · 2019-12-14 00:38
和arm9比
优势是快 很快
劣势是没有mmu,然后很多应用要重新编译甚至有的必须修改源码
htjgdw
5楼-- · 2019-12-14 03:55
 精彩回答 2  元偷偷看……
brightchl
6楼-- · 2019-12-14 04:29
本帖最后由 brightchl 于 2018-12-5 09:26 编辑

emcraft是uclinux

一周热门 更多>