基于正**子开发板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
楼主牛啊
个人情怀和业余做的,水平一般的 跑起来费劲不? yanhaijian2005 发表于 2018-8-2 14:58
跑起来费劲不?
216M带cache的,运行速度还可以的,运行的例子初步没有问题。 牛人做啥都快
lz这么好的开源项目可以考虑搞个网站页面来维护迭代 这个厉害了 膜拜~ 佩服一下 这么强的么..不过linux没有mmu感觉很多东西实现不了把 那这跑网络不是要lwip靠谱很多 优秀,不过没有MMU,好像是一个问题。楼主觉得呢? 厉害厉害,佩服佩服。。。{:lol:} SUPER_CRJ 发表于 2018-8-2 16:21
优秀,不过没有MMU,好像是一个问题。楼主觉得呢?
没有MMU地址映射一层,不是更爽么,但是只是需要小心点操作内存 这样应用怎么加载 ?
编译成地址无关的应用么?
动态库是不是就没了 好牛X啊,没想到新的linux内核这么快就有用到stm32上的。 uclinux的支持下 没有MMU 进程相关这些 application 方面和标准linux 会有使用上的不同不? 如果有,那也不算跨平台啊 浮华一生 发表于 2018-8-3 10:53
没有MMU 进程相关这些 application 方面和标准linux 会有使用上的不同不? 如果有,那也不算跨平台啊 ...
起码我的例子移植过程没有不同的 QT跑起来流畅不 linux本来就支持stm32的。没有MMU的版本 H7X0移植起来,是不是更爽一些? 大牛哇,参观下 honami520 发表于 2018-8-3 13:13
linux本来就支持stm32的。没有MMU的版本
应用程序内存是怎样弄的? 同楼上,请教楼主没有MMU的应用程序有什么不同? 楼主牛人呀 基本概念啊,同志们。 楼主,牛, {:victory:} 该你炫耀{:lol:} 不给说说过程啥的?上点源码或说明啊。 CAN驱动用的是emcraft源码包里的吗? htjgdw 发表于 2018-8-5 00:09
CAN驱动用的是emcraft源码包里的吗?
是移植过来,有部分修改 ffbiao 发表于 2018-8-5 09:29
是移植过来,有部分修改
牛。我一直在找STM32 CAN能用的配置工具,你用的是iptable2吗? htjgdw 发表于 2018-8-5 11:20
牛。我一直在找STM32 CAN能用的配置工具,你用的是iptable2吗?
刚才写错了,是iproute2吗? htjgdw 发表于 2018-8-5 11:21
刚才写错了,是iproute2吗?
不是,用ifconfig,但是具体在例子上不用命令,用sockercan编程 这么多功能生成的ROM多大?还有多少可用空间? snowy 发表于 2018-8-6 08:08
这么多功能生成的ROM多大?还有多少可用空间?
外部flash:32MB,SDRAM:64MB ffbiao 发表于 2018-8-6 08:27
外部flash:32MB,SDRAM:64MB
这样算下来和入门级ARM CPU方案成本差别不大啊。 snowy 发表于 2018-8-6 11:47
这样算下来和入门级ARM CPU方案成本差别不大啊。
优点是LQFP封装,容易自己diy,相对成本也的确不高 楼主太牛了! ffbiao 发表于 2018-8-6 13:48
优点是LQFP封装,容易自己diy,相对成本也的确不高
QFP封装的话,PCB设计的难度、成本会更低,周期也会更短! 玩linux的话,折腾nuc972多好。
内置SDRAM了。 sblpp 发表于 2018-8-6 17:51
玩linux的话,折腾nuc972多好。
内置SDRAM了。
nuc972我看了一下,官方资料都没有放出来。。。折腾个毛线啊!!!!!!!!!! OneRain 发表于 2018-8-7 10:45
nuc972我看了一下,官方资料都没有放出来。。。折腾个毛线啊!!!!!!!!!!
有官方资料的,https://github.com/OpenNuvoton/NuMicro-ARM7-ARM9-Family
裸奔和Linux都有 nanfang2000 发表于 2018-8-7 11:54
有官方资料的,https://github.com/OpenNuvoton/NuMicro-ARM7-ARM9-Family
裸奔和Linux都有
但是,芯片文档资料有吗?没找到啊!!! OneRain 发表于 2018-8-7 13:38
但是,芯片文档资料有吗?没找到啊!!!
你说数据手册?我记得官网上有 nanfang2000 发表于 2018-8-7 14:15
你说数据手册?我记得官网上有
去官网上面查了,毛都没有。。。arm9的所有点击资料的时候,就是一个视频!!! nuc972 做了个usb挂4G模块 + can + uart 的项目,跑linux的,双面板,cpu内置64M sdram,开发非常方便,资料可以找代理商或联系原厂,容易就拿到。 就想知道标题为什么是“正**子”?难道大侠成关键词了?
页:
[1]