ST MCU Finder
安装免费手机应用,
寻找理想的ST MCU
打印

[STM32F7] 新出的STM32F750成功运行Linux

[复制链接]
1681|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. / #
复制代码


沙发
| 2018-12-4 22:50 | 只看该作者
不会玩Linux啊,楼主给个攻略啊,怎么在单片机上玩这个
板凳
| 2018-12-4 22:52 | 只看该作者
牛人
地板
 楼主 | 2018-12-5 09:30 | 只看该作者
dongnanxibei 发表于 2018-12-4 22:50
不会玩Linux啊,楼主给个攻略啊,怎么在单片机上玩这个

先用ST Flash Loader或者ST-LINK把u-boot烧到STM32的片内flash。
然后用串口和网线连接板子和电脑,上电,u-boot转起来有命令行界面后就好办了,下载,烧写linux,调试程序就都可以做了,仿真器调试器都不需要了。
5
| 2018-12-5 11:16 | 只看该作者
M系列没有内存管理单元MMU,这个跑的是ucLinux么?
6
 楼主 | 2018-12-5 11:21 | 只看该作者
xynsy123 发表于 2018-12-5 11:16
M系列没有内存管理单元MMU,这个跑的是ucLinux么?

总有人问这个问题,我再根据我所了解的回答一遍。

uClinux是十几年前的东西了。那时的Linux内核不支持没有MMU的处理器,国外有大神把Linux代码改写重新实现了一遍,以适应无MMU的处理器(那时主要是ARM7),这个版本的Linux起名叫做uClinux并发布了(现在www.uclinux.org还有)。
我用的emcraft linux是在Linux4.2内核基础上增加了更适应Cortex-M的支持(比如增加STM32外设驱动等),你可以把它也叫做uClinux,但是和十几年前的已经不是一个东西了,唯一相同点就是都在没有MMU的处理器上运行。

现在Linux主线内核直接支持no-MMU选项,感兴趣的可以上网下载linux内核源码看看。所以不用单独为了单片机再出一个分支了。
7
| 2018-12-5 12:45 | 只看该作者
强,真强
8
| 2018-12-5 15:06 | 只看该作者
源码是在哪里下载的   
9
| 2018-12-5 15:29 | 只看该作者
楼主厉害啊,仰望
10
| 2018-12-5 16:53 | 只看该作者
6666666666
11
| 2018-12-5 20:25 | 只看该作者
不爱说话 发表于 2018-12-5 11:21
总有人问这个问题,我再根据我所了解的回答一遍。

uClinux是十几年前的东西了。那时的Linux内核不支持没 ...

谢谢分享,长见识了,希望楼主多分享些经验。
12
| 2018-12-5 20:59 | 只看该作者
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶

13
| 2018-12-5 21:00 | 只看该作者
不爱说话 发表于 2018-12-5 11:21
总有人问这个问题,我再根据我所了解的回答一遍。

uClinux是十几年前的东西了。那时的Linux内核不支持没 ...

感谢讲解
14
| 2018-12-5 21:16 | 只看该作者
只能仰望
15
| 2018-12-5 22:21 | 只看该作者
围观大佬
16
| 2018-12-5 23:06 | 只看该作者
牛    我准备在zynq上跑ubuntu

评论

申小林一号 2018-12-6 12:27 回复TA
你用的ZYNQ是哪个系列的?带实时核么? 
17
| 2018-12-5 23:48 | 只看该作者
多谢楼主给我答疑解惑。懂了,第一次听说这个系统。我去看看
18
| 2018-12-5 23:50 | 只看该作者
https://emcraft.com/products/503#software

STM32F746G发现板
Linux BSP发布材料
Emcraft支持Linux(uClinux)作为STM32F7 Discovery板的操作系统。此页面提供STM32F7 Discovery板Linux BSP(板级支持包)和Linux软件开发环境的发行文件。
19
| 2018-12-6 00:04 | 只看该作者
不爱说话 发表于 2018-12-5 11:21
总有人问这个问题,我再根据我所了解的回答一遍。

uClinux是十几年前的东西了。那时的Linux内核不支持没 ...

又学到了一点新知识。
20
| 2018-12-6 07:33 | 只看该作者
系统占用多少存储资源?
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式
我要创建版块 申请成为版主

论坛热帖

快速回复 返回顶部 返回列表