ffbiao 发表于 2018-8-2 14:34:38

基于正**子开发板STM32F767上移植linux4.2内核已经跑起来

已经做了一些时间了,移植了linux4.2内核,linux内核源码来自http://www.emcraft.com,但是不同的是uboot自己修改了QSPI接口方式正常烧写、启动引导内核,加载速度速度非常快,加入了驱动有CAN、Ethernet、usart、LCD、SD、WIFI、BT、USB HS host、gpio、button、LED等,希望各位坛友有空一起发帖交流。在上面linux开发程序相当快,跨平台效果好,完成了一个例子:Ethernet转CAN网关简单例子,已经运行起来了,后续继续开发加入协议,如Modbus TCP/RTU、CANOpen等。
## Booting kernel from Legacy Image at c0007fb4 ...
   Image Name:   Linux-4.2.0
   Image Type:   ARM Linux Multi-File Image (uncompressed)
   Data Size:    8371255 Bytes =8 MB
   Load Address: c0008000
   Entry Point:c0008001
   Contents:
      Image 0: 8347932 Bytes =8 MB
      Image 1: 23311 Bytes = 22.8 kB
   Verifying Checksum ... OK
## Flattened Device Tree from multi component Image at C0007FB4
   Booting using the fdt at 0xc07fe11c
   Loading Multi-File Image ... OK
OK
   Loading Device Tree to c1ff7000, end c1fffb0e ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.2.0 (du@ubuntu) (gcc version 4.4.1 (Sourcery G+
+ Lite 2010q1-189) ) #38 PREEMPT Thu Aug 2 14:24:30 CST 2018
[    0.000000] CPU: ARMv7-M revision 0 (ARMv7M), cr=00000000
[    0.000000] CPU: WBA data cache, WBA instruction cache         
[    0.000000] Machine model: STM32F7-SOM board
[    0.000000] Built 1 zonelists in Zone order, mobility grouping off.Total
pages: 8128
[    0.000000] Kernel command line: stm32_platform=stm32f7-som console=ttyS0,1
15200 panic=10
[    0.000000] PID hash table entries: 128 (order: -3, 512 bytes)
[    0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Memory: 23092K/32768K available (2623K kernel code, 173K rwdata
, 544K rodata, 4808K init, 109K bss, 9676K reserved, 0K cma-reserved)
[    0.000000] Virtual kernel memory layout:
[    0.000000]   vector: 0x00000000 - 0x00001000   (   4 kB)
[    0.000000]   fixmap: 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]   vmalloc : 0x00000000 - 0xffffffff   (4095 MB)
[    0.000000]   lowmem: 0xc0000000 - 0xc2000000   (32 MB)
[    0.000000]       .text : 0xc0008000 - 0xc0320000   (3168 kB)
[    0.000000]       .init : 0xc0320000 - 0xc07d2000   (4808 kB)
[    0.000000]       .data : 0xc07d2000 - 0xc07fd600   ( 174 kB)
[    0.000000]      .bss : 0xc07fe11c - 0xc0819724   ( 110 kB)
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]Additional per-CPU info printed with stalls.
[    0.000000]Build-time adjustment of leaf fanout to 32.
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] /interrupt-controller@40013c00: 25 External IRQs detected
[    0.000000] clocksource: arm_system_timer: mask: 0xffffff max_cycles: 0xfff
fff, max_idle_ns: 276513358 ns
[    0.000000] ARM System timer initialized as clocksource
[    0.000000] /soc/timer@40000000: STM32 clockevent driver initialized (32 bi
ts)
[    0.000000] sched_clock: 32 bits at 100 Hz, resolution 10000000ns, wraps ev
ery 21474836475000000ns
[    0.010000] Calibrating delay loop... 427.62 BogoMIPS (lpj=2138112)
[    0.060000] pid_max: default: 4096 minimum: 301
[    0.060000] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.060000] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 by
[    0.070000] devtmpfs: initialized
[    0.120000] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff,
max_idle_ns: 19112604462750000 ns
[    0.120000] pinctrl core: initialized pinctrl subsystem
[    0.120000] NET: Registered protocol family 16
[    0.180000] stm32-pinctrl pin-controller: nbanks = 11
[    0.180000] stm32-pinctrl pin-controller: nfunctions = 18
[    0.180000] stm32-pinctrl pin-controller: ngroups = 21
[    0.180000] stm32-pinctrl pin-controller: GPIOA bank added.
[    0.180000] stm32-pinctrl pin-controller: GPIOB bank added.
[    0.190000] stm32-pinctrl pin-controller: GPIOC bank added.
[    0.190000] stm32-pinctrl pin-controller: GPIOD bank added.
[    0.190000] stm32-pinctrl pin-controller: GPIOE bank added.
[    0.190000] stm32-pinctrl pin-controller: GPIOF bank added.
[    0.190000] stm32-pinctrl pin-controller: GPIOG bank added.
[    0.190000] stm32-pinctrl pin-controller: GPIOH bank added.
[    0.200000] stm32-pinctrl pin-controller: GPIOI bank added.
[    0.200000] stm32-pinctrl pin-controller: GPIOJ bank added.
[    0.200000] stm32-pinctrl pin-controller: GPIOK bank added.
[    0.200000] stm32-pinctrl pin-controller: Function[0name:i2c_1,    groups
...
[    1.950000] usbcore: registered new interface driver cdc_acm
[    1.950000] cdc_acm: USB Abstract Control Model driver for USB modems and I
SDN adapters
[    1.960000] usbcore: registered new interface driver usb-storage
[    1.970000] mousedev: PS/2 mouse device common for all mice
[    2.200000] stm32-rtc 40002800.rtc: rtc core: registered 40002800.rtc as rt
c0
[    2.210000] i2c /dev entries driver
[    2.220000] Driver for 1-wire Dallas network protocol.
[    2.230000] usbcore: registered new interface driver btusb
[    2.230000] stm32-pinctrl pin-controller: maps: function gpio group outs nu
m 3
[    2.250000] usbcore: registered new interface driver usbhid
[    2.250000] usbhid: USB HID core driver
[    2.260000] NET: Registered protocol family 17
[    2.260000] can: controller area network core (rev 20120528 abi 9)
[    2.270000] NET: Registered protocol family 29
[    2.280000] can: raw protocol (rev 20120528)
[    2.280000] can: broadcast manager protocol (rev 20120528 t)
[    2.290000] can: netlink gateway (rev 20130117) max_hops=1
[    2.290000] Bluetooth: RFCOMM TTY layer initialized
[    2.300000] Bluetooth: RFCOMM socket layer initialized
[    2.300000] Bluetooth: RFCOMM ver 1.11
[    2.320000] stm32-pinctrl pin-controller: maps: function gpio group ins num
3
[    2.330000] stm32_gpio_to_irq: Event line 0 now points to fire interrupts f
rom bank A
[    2.340000] stm32_gpio_to_irq: Event line 9 now points to fire interrupts f
rom bank I
[    2.350000] input: inputs as /devices/platform/inputs/input/input0
[    2.380000] stm32-rtc 40002800.rtc: setting system clock to 2000-01-01 00:0
0:00 UTC (946684800)
[    2.400000] vmmc: disabling
[    2.580000] random: nonblocking pool is initialized
[    2.950000] Freeing unused kernel memory: 4808K (c0320000 - c07d2000)
init started: BusyBox v1.24.2 (2018-07-27 13:27:57 CST)

weiwei4 发表于 2018-8-2 14:52:52

楼主牛啊

ffbiao 发表于 2018-8-2 14:57:20

weiwei4 发表于 2018-8-2 14:52
楼主牛啊

个人情怀和业余做的,水平一般的

yanhaijian2005 发表于 2018-8-2 14:58:06

跑起来费劲不?

ffbiao 发表于 2018-8-2 15:04:52

yanhaijian2005 发表于 2018-8-2 14:58
跑起来费劲不?

216M带cache的,运行速度还可以的,运行的例子初步没有问题。

a105 发表于 2018-8-2 15:08:47

牛人做啥都快

avr-arm 发表于 2018-8-2 15:10:02

lz这么好的开源项目可以考虑搞个网站页面来维护迭代

muniao 发表于 2018-8-2 15:22:53

这个厉害了

lcl 发表于 2018-8-2 15:55:49

膜拜~                        

zhcj66 发表于 2018-8-2 15:58:30

佩服一下               

日日♂夜夜 发表于 2018-8-2 15:58:52

这么强的么..不过linux没有mmu感觉很多东西实现不了把

日日♂夜夜 发表于 2018-8-2 16:01:24

那这跑网络不是要lwip靠谱很多

SUPER_CRJ 发表于 2018-8-2 16:21:59

优秀,不过没有MMU,好像是一个问题。楼主觉得呢?

zhang0352505 发表于 2018-8-2 16:57:09

厉害厉害,佩服佩服。。。{:lol:}

ffbiao 发表于 2018-8-2 17:20:20

SUPER_CRJ 发表于 2018-8-2 16:21
优秀,不过没有MMU,好像是一个问题。楼主觉得呢?

没有MMU地址映射一层,不是更爽么,但是只是需要小心点操作内存

日日♂夜夜 发表于 2018-8-2 17:51:31

这样应用怎么加载 ?
编译成地址无关的应用么?
动态库是不是就没了

好运来了 发表于 2018-8-2 18:01:40

好牛X啊,没想到新的linux内核这么快就有用到stm32上的。

万物互联 发表于 2018-8-3 10:50:44

uclinux的支持下

浮华一生 发表于 2018-8-3 10:53:01

没有MMU 进程相关这些 application 方面和标准linux 会有使用上的不同不? 如果有,那也不算跨平台啊

ffbiao 发表于 2018-8-3 12:01:29

浮华一生 发表于 2018-8-3 10:53
没有MMU 进程相关这些 application 方面和标准linux 会有使用上的不同不? 如果有,那也不算跨平台啊 ...

起码我的例子移植过程没有不同的

rom 发表于 2018-8-3 12:54:17

QT跑起来流畅不

honami520 发表于 2018-8-3 13:13:00

linux本来就支持stm32的。没有MMU的版本

Excellence 发表于 2018-8-3 15:14:39

H7X0移植起来,是不是更爽一些?

arndei 发表于 2018-8-3 16:17:39

大牛哇,参观下

1066950103 发表于 2018-8-3 19:30:13

honami520 发表于 2018-8-3 13:13
linux本来就支持stm32的。没有MMU的版本

应用程序内存是怎样弄的?

a136498491 发表于 2018-8-3 21:08:56

同楼上,请教楼主没有MMU的应用程序有什么不同?

fghfguytu 发表于 2018-8-3 21:13:56

楼主牛人呀

kuaiming 发表于 2018-8-3 21:48:54

基本概念啊,同志们。

xiaomu 发表于 2018-8-3 21:57:21

楼主,牛, {:victory:}

252514251 发表于 2018-8-3 22:21:22

该你炫耀{:lol:}

kaixinlaohe 发表于 2018-8-4 08:10:34

不给说说过程啥的?上点源码或说明啊。

htjgdw 发表于 2018-8-5 00:09:05

CAN驱动用的是emcraft源码包里的吗?

ffbiao 发表于 2018-8-5 09:29:29

htjgdw 发表于 2018-8-5 00:09
CAN驱动用的是emcraft源码包里的吗?

是移植过来,有部分修改

htjgdw 发表于 2018-8-5 11:20:43

ffbiao 发表于 2018-8-5 09:29
是移植过来,有部分修改

牛。我一直在找STM32 CAN能用的配置工具,你用的是iptable2吗?

htjgdw 发表于 2018-8-5 11:21:33

htjgdw 发表于 2018-8-5 11:20
牛。我一直在找STM32 CAN能用的配置工具,你用的是iptable2吗?

刚才写错了,是iproute2吗?

ffbiao 发表于 2018-8-5 18:00:53

htjgdw 发表于 2018-8-5 11:21
刚才写错了,是iproute2吗?

不是,用ifconfig,但是具体在例子上不用命令,用sockercan编程

snowy 发表于 2018-8-6 08:08:07

这么多功能生成的ROM多大?还有多少可用空间?

ffbiao 发表于 2018-8-6 08:27:10

snowy 发表于 2018-8-6 08:08
这么多功能生成的ROM多大?还有多少可用空间?

外部flash:32MB,SDRAM:64MB

snowy 发表于 2018-8-6 11:47:40

ffbiao 发表于 2018-8-6 08:27
外部flash:32MB,SDRAM:64MB

这样算下来和入门级ARM CPU方案成本差别不大啊。

ffbiao 发表于 2018-8-6 13:48:27

snowy 发表于 2018-8-6 11:47
这样算下来和入门级ARM CPU方案成本差别不大啊。

优点是LQFP封装,容易自己diy,相对成本也的确不高

fsl 发表于 2018-8-6 14:41:49

楼主太牛了!

fsl 发表于 2018-8-6 14:44:07

ffbiao 发表于 2018-8-6 13:48
优点是LQFP封装,容易自己diy,相对成本也的确不高

QFP封装的话,PCB设计的难度、成本会更低,周期也会更短!

sblpp 发表于 2018-8-6 17:51:52

玩linux的话,折腾nuc972多好。
内置SDRAM了。

OneRain 发表于 2018-8-7 10:45:50

sblpp 发表于 2018-8-6 17:51
玩linux的话,折腾nuc972多好。
内置SDRAM了。

nuc972我看了一下,官方资料都没有放出来。。。折腾个毛线啊!!!!!!!!!!

nanfang2000 发表于 2018-8-7 11:54:03

OneRain 发表于 2018-8-7 10:45
nuc972我看了一下,官方资料都没有放出来。。。折腾个毛线啊!!!!!!!!!!

有官方资料的,https://github.com/OpenNuvoton/NuMicro-ARM7-ARM9-Family
裸奔和Linux都有

OneRain 发表于 2018-8-7 13:38:34

nanfang2000 发表于 2018-8-7 11:54
有官方资料的,https://github.com/OpenNuvoton/NuMicro-ARM7-ARM9-Family
裸奔和Linux都有

但是,芯片文档资料有吗?没找到啊!!!

nanfang2000 发表于 2018-8-7 14:15:27

OneRain 发表于 2018-8-7 13:38
但是,芯片文档资料有吗?没找到啊!!!

你说数据手册?我记得官网上有

OneRain 发表于 2018-8-8 13:48:18

nanfang2000 发表于 2018-8-7 14:15
你说数据手册?我记得官网上有

去官网上面查了,毛都没有。。。arm9的所有点击资料的时候,就是一个视频!!!

amiok 发表于 2018-8-9 17:40:07

nuc972 做了个usb挂4G模块 + can + uart 的项目,跑linux的,双面板,cpu内置64M sdram,开发非常方便,资料可以找代理商或联系原厂,容易就拿到。

zhongsandaoren 发表于 2018-8-9 17:45:35

就想知道标题为什么是“正**子”?难道大侠成关键词了?
页: [1]
查看完整版本: 基于正**子开发板STM32F767上移植linux4.2内核已经跑起来