htjgdw 发表于 2017-1-17 21:29:26

我的STM32F429开发板成功运行Linux4.2(uClinux)

本帖最后由 htjgdw 于 2017-1-17 21:29 编辑

一直对STM32运行Linux系统感兴趣,因为它有完善的网络功能和数不清的开源软件可用,这是其他嵌入式操作系统无法比拟的。4年前曾做过一块STM32F103核心板并移植了uClinux 我的STM32核心板启动uClinux成功了 后来并没有继续下去,首先因为RAM容量不够Linux消耗内存还是比较多的,其次ST的uClinux BSP很不完善,除了串口,许多外设的驱动都没有。因此这些年来我没有再碰STM32 uclinux
直到后来,ST推出了可以外扩SDRAM的STM32F429,emcraft推出了对应的Linux 4.2 BSP,我的感觉是:还不错呦!是不是可以玩玩?于是经过一段时间的筹备规划,最近利用业余时间做了一块F429板子,本着一切从简的原则,只外扩了必要的外设,其他未用IO一律引出。
先介绍一下板载资源:STM32F429,16MB SDRAM, 16MB SPI FLASH, 10/100M以太网(LAN8720A),Micro-SD卡槽, Micro-USB Device接口,USB Host接口,串口(USART1),SWD接口,外扩IO包括LTDC, I2C, SPI等复用功能。
好了,该上图了。
         

U-Boot和Linux启动信息


以太网


SSH(putty)通过网络登录开发板


Micro-SD卡插入识别检测


USB Device连接PC(虚拟串口)


板子做回来后,这一个月里每天晚上焊接调试得不亦乐乎,发现了几个小bug也都一一解决了,唯独USB Host驱动还没有搞定,年前也就这样了。年后准备再做一版修复之前的问题。

edaworld 发表于 2017-1-17 21:32:10

不错,顶一个

fenglove 发表于 2017-1-17 21:34:30

哇,楼主好666,

Excellence 发表于 2017-1-17 22:06:47

顶顶。。。。。再加个gui,

htjgdw 发表于 2017-1-17 22:25:34

Excellence 发表于 2017-1-17 22:06
顶顶。。。。。再加个gui,

gui应该是有的,只是我没有启动它。

bbstr 发表于 2017-1-17 22:33:17

跑个benchmark看看跑分咋样?

meirenai 发表于 2017-1-17 22:45:14

主要应用在什么场景啊?可以运行Qt程序吗?

fei-lai-fei-qu 发表于 2017-1-17 23:01:11

搞个东东,带大家一起刷刷

湛无双 发表于 2017-1-17 23:33:09

楼主牛逼呀,666666

lyg407 发表于 2017-1-17 23:46:01

楼主之前几个板子都不错。 顶一下。

hmd420304805 发表于 2017-1-17 23:46:23

meirenai 发表于 2017-1-17 22:45
主要应用在什么场景啊?可以运行Qt程序吗?

这个就不要想了吧,树莓派还差不多

dgtg 发表于 2017-1-17 23:55:49

牛人,膜拜!!

凌海滨 发表于 2017-1-17 23:59:58

429太贵了,相比其他片子没竞争 只能玩玩

下一页 发表于 2017-1-18 00:21:12

arm7时代跑过uclinux,在s3c44b0x板上,看上去和linux差不多,其实差不少,写程序得特别小心内存够不够,这个系统对任务调度还行,对内存管理恐怕有点问题,十多年了,没想到这个操作系统还活着

htjgdw 发表于 2017-1-18 08:57:09

下一页 发表于 2017-1-18 00:21
arm7时代跑过uclinux,在s3c44b0x板上,看上去和linux差不多,其实差不少,写程序得特别小心内存够不够,这 ...

原来的uClinux的主页已经好多年没有更新了。现在Linux mainline里面已经有no-MMU选项了(相当于以前的uClinux),这是我现在用的版本。和以前的uClinux出处已经不同了。
是的,在no-MMU的系统上写应用得提前自己估计好用多少内存。

bitcoin2 发表于 2017-1-18 08:59:45

这样搞,会出事的

gmyu 发表于 2017-1-18 09:12:46

楼主你喜欢玩我送你两套新塘的N32926的板子,出口很久的产品,不是开发板,新塘有现成的东西,我对linux一知半解,刷完机就放那了,没玩出什么花样。

64M RAM+256M FLASH + RTL8188 + NT99140 = wifi cam 另外还有带480*272LCD的N32903的。

LY新手上路 发表于 2017-1-18 09:28:17

围观,支持一下

htjgdw 发表于 2017-1-18 09:36:29

凌海滨 发表于 2017-1-17 23:59
429太贵了,相比其他片子没竞争 只能玩玩

将来可以试试和它兼容的GD32芯片。

htjgdw 发表于 2017-1-18 09:40:49

gmyu 发表于 2017-1-18 09:12
楼主你喜欢玩我送你两套新塘的N32926的板子,出口很久的产品,不是开发板,新塘有现成的东西,我对linux一 ...

不敢玩新塘这个芯片,之前看几个坛友抱怨N32926很坑。

rgzdb 发表于 2017-1-18 09:55:34

楼主牛人,以前做了407板子,现在想做块429板子,对SDRAM布线不太熟,看网上说要等长,用4层板,没搞过4层板,考虑想用2层板步,又怕运行不稳定,楼主如何布的,能否共享下SDRAM布线PCB部分,谢谢。

licheng0620 发表于 2017-1-18 09:59:32

meirenai 发表于 2017-1-17 22:45
主要应用在什么场景啊?可以运行Qt程序吗?

装不下Qt众多的库的

b57203493 发表于 2017-1-18 10:00:47

很不错的板子   {:smile:}

suebillt 发表于 2017-1-18 10:37:14

跟ucos比有何优势呢(不考虑价格),学习的时间成本如何?

ljt80158015 发表于 2017-1-18 10:43:13

楼主,稳定吗?

gujiamao_love 发表于 2017-1-18 10:43:48

牛人......

int 发表于 2017-1-18 10:50:34

内存占用情况如何呢?

htjgdw 发表于 2017-1-18 10:54:38

ljt80158015 发表于 2017-1-18 10:43
楼主,稳定吗?

这叫我怎么说呢?刚调好不久,每次调bootloader,kernel也就运行十几~几十分钟,反正每次上电工作都正常没出现过不稳定的情况。

htjgdw 发表于 2017-1-18 11:07:50

int 发表于 2017-1-18 10:50
内存占用情况如何呢?

各种驱动都加载,再开一个dropbear,一个uhttpd 内存还有5M多。
注:内核也在SDRAM中运行。

ljt80158015 发表于 2017-1-18 11:25:04

htjgdw 发表于 2017-1-18 10:54
这叫我怎么说呢?刚调好不久,每次调bootloader,kernel也就运行十几~几十分钟,反正每次上电工作都正常 ...



驱动框架 和普通linux 是一样的吧?

htjgdw 发表于 2017-1-18 13:02:20

ljt80158015 发表于 2017-1-18 11:25
驱动框架 和普通linux 是一样的吧?

当然一样的,因为这货就是Linux,只不过在编译的时候选了no-MMU而已。
而且因为kernel比较新(4.2)驱动使用了Device Tree。这点跟linux2.6,3.x这样的“普通” linux不一样。

jeffwei 发表于 2017-1-18 14:19:57

htjgdw 发表于 2017-1-18 13:02
当然一样的,因为这货就是Linux,只不过在编译的时候选了no-MMU而已。
而且因为kernel比较新(4.2)驱动 ...

使用设备树后变化好大,几年前用linux还算熟练,16年下半年买了个英贝特的AM3358板子,资料旧的,
搞新系统,花了好几天才适应新变化。
现在也有linux-RT版本了,不知道以后前景如何。

bigharpoon 发表于 2017-1-18 17:05:10

个人觉得一块上了50元的M4片子去跑linux,性价比太低,没必要折腾了,不如直接用arm9、A7、A8第三方的linux核心板。

four_zhg 发表于 2017-1-18 17:22:47

这年头牛人真多{:titter:}

htjgdw 发表于 2017-1-18 18:56:55

rgzdb 发表于 2017-1-18 09:55
楼主牛人,以前做了407板子,现在想做块429板子,对SDRAM布线不太熟,看网上说要等长,用4层板,没搞过4层 ...

100MHz以下的随便拉就行。

hwh1328 发表于 2017-1-18 19:08:21

楼主强人一个。

浮华一生 发表于 2017-1-18 20:00:36

系统调用有些地方还是有区别   我总觉得用STM32玩uclinux不然用ARM9 玩Linux还便宜一些

Wisen 发表于 2017-1-19 15:21:48

楼主厉害,给楼主赞一个,还顺便给自己公司做了个广告

chishangpiao 发表于 2017-1-19 16:00:16

429这货太贵了,算下来我现在准备换767了,价格基本一样

qianniao29 发表于 2017-1-19 20:31:51

emctaft不是收费的吗

htjgdw 发表于 2017-1-19 23:23:48

qianniao29 发表于 2017-1-19 20:31
emctaft不是收费的吗

只下载它的软件不收费。

htjgdw 发表于 2017-1-24 13:33:11

+++++++++++++++++++++++++++++++++++++++++++++++++
年前最新进展,USB HS OTG Host(Full Speed)驱动调试成功,可以正确识别并挂载U盘了(/dev/sda1)。这样一来初版PCB所有的设计目标都达到了,过年后就可以做新版PCB了。在这里提前给大家拜个早年:)

kinsno 发表于 2017-1-24 21:45:05

htjgdw 发表于 2017-1-24 13:33
+++++++++++++++++++++++++++++++++++++++++++++++++
年前最新进展,USB HS OTG Host(Full Speed)驱动调 ...

底层需要自己来实现吗?还是有现成的代码直接灌进去,然后在LINUX上面写应用程序,那应该很好玩。。。

zstein 发表于 2017-1-24 22:16:24

不错。以前见过有用stm32f103zet6一致uclinux的。

kenson 发表于 2017-1-24 22:24:20

大牛,我也关注一下

fshunj 发表于 2017-1-24 22:24:57

有没有什么步骤

htjgdw 发表于 2017-1-25 08:15:33

kinsno 发表于 2017-1-24 21:45
底层需要自己来实现吗?还是有现成的代码直接灌进去,然后在LINUX上面写应用程序,那应该很好玩。。。

...

就像你说的这样,写Linux应用就ok了。

htjgdw 发表于 2017-1-25 08:16:53

zstein 发表于 2017-1-24 22:16
不错。以前见过有用stm32f103zet6一致uclinux的。

这个我也做过:)

ljt80158015 发表于 2017-1-25 08:25:25

楼主,做好后会出售吗?


htjgdw 发表于 2017-1-25 09:26:19

ljt80158015 发表于 2017-1-25 08:25
楼主,做好后会出售吗?

大家喜欢的话,会这样做的:)

kinsno 发表于 2017-1-25 11:57:19

htjgdw 发表于 2017-1-25 09:26
大家喜欢的话,会这样做的:)

不晓得价格贵不贵,200以内的话预订一个。。。


zxq6 发表于 2017-1-25 14:33:10

htjgdw 发表于 2017-1-25 08:15
就像你说的这样,写Linux应用就ok了。

如果bsp里面没有的呢,比如,bsp里面木有pcie,而,系统需要使用,这个驱动开发起来难度大不大?

htjgdw 发表于 2017-1-25 15:37:55

本帖最后由 htjgdw 于 2017-1-25 15:39 编辑

zxq6 发表于 2017-1-25 14:33
如果bsp里面没有的呢,比如,bsp里面木有pcie,而,系统需要使用,这个驱动开发起来难度大不大? ...

现在emcraft这个F429的bsp里包括这些驱动:UART,SPI, I2C, SD CARD, 以太网,USB OTG HS/FS, RTC, GPIO, DMA, LCD
应该是比较全的了,所以我才心动做板子玩。剩下没有驱动的外设可以参考其他芯片相同外设的linux驱动自己做(当然这不是每个人都能搞定的,你懂得)
至于你说的pcie,没有。

gzhua20088ssj 发表于 2017-1-28 09:17:23

在这种单片机上跑uclinux意义不大

huangqi412 发表于 2017-1-29 15:26:55

同样价钱估计能换个A系的片子更好吧

htjgdw 发表于 2017-1-30 09:39:58

huangqi412 发表于 2017-1-29 15:26
同样价钱估计能换个A系的片子更好吧

换芯片还不如买个全志派来得直接。
不过问题又来了,全志芯片上的GPU,VPU,H.264 codec没有特别详细的资料,根本玩不了,一般人也玩不动,sdk常年停留在kernel3.4不更新,这些也是难以言说的痛,只有用过的人才知道。
从学习的角度看STM32的资料更全,更适合学习。

Excellence 发表于 2017-1-30 11:06:48

外设这么全,可以做产品

饭桶 发表于 2017-1-30 15:10:53

启动多长时间?

cc_mcu 发表于 2017-1-30 17:26:29

不错,牛人

htjgdw 发表于 2017-1-31 21:03:23

饭桶 发表于 2017-1-30 15:10
启动多长时间?

10秒以,算上u-boot的3秒bootdelay

htjgdw 发表于 2017-1-31 21:04:06

饭桶 发表于 2017-1-30 15:10
启动多长时间?

10秒以内,算上u-boot的3秒bootdelay

jordonwu 发表于 2017-1-31 21:13:12

htjgdw 发表于 2017-1-31 21:04
10秒以内,算上u-boot的3秒bootdelay

楼主有板子没?想搞块玩下。

lize 发表于 2017-2-1 08:11:43

楼主....厉害

diandianer 发表于 2017-2-2 22:10:35

请问楼主会开源PCB和代码么?

htjgdw 发表于 2017-2-3 01:46:37

jordonwu 发表于 2017-1-31 21:13
楼主有板子没?想搞块玩下。

节后开工重新打板,如果没有问题会发布。

hyper320 发表于 2017-2-4 01:08:55

谢谢楼主分享

jeasey 发表于 2017-2-4 08:57:56

不错喔,希望能一步一步的开源喔!!谢谢!

somwin 发表于 2017-2-4 19:34:53

个人认为STM32F429的价格没有优势。

ANHOME 发表于 2017-2-4 19:48:38

视乎这个跑uLinux是个鸡肋,还不如树莓派{:lol:}

htjgdw 发表于 2017-2-6 07:26:10

zuoyi001 发表于 2017-2-4 22:57
我是在429-dis 跑通的,如果想跑溜一点 需要大一点的RAM 最好8M以上。

是的,8M是小了点。当初我做这个板子时也有这方面的担心,所以按外扩64M SDRAM画的PCB,应该够用了:)

hpdell 发表于 2017-2-6 11:46:34

htjgdw 发表于 2017-2-6 07:26
是的,8M是小了点。当初我做这个板子时也有这方面的担心,所以按外扩64M SDRAM画的PCB,应该够用了:) ...

我使用stm的单片机,外扩了一个128MByte 的 SDRAM的 板子

franki 发表于 2017-2-6 12:36:08

不错 , 不知道控制周期能做到多少ms ?

wofei3344 发表于 2017-2-6 15:28:00

膜拜大神~

htjgdw 发表于 2017-2-6 23:10:42

hpdell 发表于 2017-2-6 11:46
我使用stm的单片机,外扩了一个128MByte 的 SDRAM的 板子

什么型号的SDRAM单片128MB?我找到最大的只有64MB的。

fromdream 发表于 2017-2-7 09:16:15

楼主666,顶一个

coolhorse 发表于 2017-2-28 09:59:26

楼主,敢问什么时候开源啊?

OneRain 发表于 2017-2-28 10:09:56

顶一个!!!!!貌似不错的样子!!!

graycker 发表于 2017-2-28 11:05:46

膜拜下,资源占用的怎么样?还有多少CPU可以用?

htjgdw 发表于 2017-3-1 13:34:24

coolhorse 发表于 2017-2-28 09:59
楼主,敢问什么时候开源啊?

不用我开源,emcraft网站上就有BSP可以免费下载。

htjgdw 发表于 2017-3-1 13:38:11

graycker 发表于 2017-2-28 11:05
膜拜下,资源占用的怎么样?还有多少CPU可以用?

现在启动后开dropbear(ssh),挂载spi flash(jffs2),打开usb host、device,开启mmc卡(Micro-SD),使能RTC,使能USART1(做console)。。。
16MB SDRAM还剩下5.5MB内存。
CPU占用率没看过,反正命令行操作不卡顿。

fenjinzhe 发表于 2017-3-1 13:42:32

SDRAM不用等长吗?

3444542 发表于 2017-3-1 14:07:08

楼主强悍啊

LearningASM 发表于 2017-3-1 14:12:27

不明真相的围观群众


问一下,现在市场上STM32F4的销量怎样,推广怎样?

luozhongchao123 发表于 2017-3-1 23:24:47

厉害楼主,顶一个!!!

cy8051 发表于 2017-3-2 00:04:28

支持,我第一次接触arm的时候就是ucLinux

coolhorse 发表于 2017-3-2 09:08:14

楼主您好,我下载了BSP,编译U-BOOT,
1.makestm32f429-discovery_config
Configuring for stm32f429-discovery board...
2.make

Generating include/autoconf.mk
arm-uclinuxeabi-gcc: error trying to exec 'cc1': execvp: No such file or directory
Generating include/autoconf.mk.dep
arm-uclinuxeabi-gcc: error trying to exec 'cc1': execvp: No such file or directory
for dir in tools examples/standalone examples/api cpu/arm_cortexm3 /home/vmuser/linux-cortexm-2.0.0/u-boot/cpu/arm_cortexm3/ ; do \
                        make -C $dir _depend ; done
make: 正在进入目录 `/home/vmuser/linux-cortexm-2.0.0/u-boot/tools'
make: 没有什么可以做的为 `_depend'。
make:正在离开目录 `/home/vmuser/linux-cortexm-2.0.0/u-boot/tools'
make: 正在进入目录 `/home/vmuser/linux-cortexm-2.0.0/u-boot/examples/standalone'
make: 没有什么可以做的为 `_depend'。
make:正在离开目录 `/home/vmuser/linux-cortexm-2.0.0/u-boot/examples/standalone'
make: 正在进入目录 `/home/vmuser/linux-cortexm-2.0.0/u-boot/examples/api'
make: 没有什么可以做的为 `_depend'。
make:正在离开目录 `/home/vmuser/linux-cortexm-2.0.0/u-boot/examples/api'
make: 正在进入目录 `/home/vmuser/linux-cortexm-2.0.0/u-boot/cpu/arm_cortexm3'
make: 没有什么可以做的为 `_depend'。
make:正在离开目录 `/home/vmuser/linux-cortexm-2.0.0/u-boot/cpu/arm_cortexm3'
make: 正在进入目录 `/home/vmuser/linux-cortexm-2.0.0/u-boot/cpu/arm_cortexm3'
make: 没有什么可以做的为 `_depend'。
make:正在离开目录 `/home/vmuser/linux-cortexm-2.0.0/u-boot/cpu/arm_cortexm3'
make -C tools all
make: 正在进入目录 `/home/vmuser/linux-cortexm-2.0.0/u-boot/tools'
make:正在离开目录 `/home/vmuser/linux-cortexm-2.0.0/u-boot/tools'
make -C examples/standalone all
make: 正在进入目录 `/home/vmuser/linux-cortexm-2.0.0/u-boot/examples/standalone'
arm-uclinuxeabi-gcc-g-Os   -g2 -mthumb -mcpu=cortex-m3 -fsigned-char -O2 -fno-builtin-puts -fno-common -ffixed-r8 -D__KERNEL__ -I/home/vmuser/linux-cortexm-2.0.0/u-boot/include -fno-builtin -ffreestanding -isystem include -pipe-DCONFIG_ARM -D__ARM__ -DCONFIG_MEM_NVM_BASE= -DCONFIG_MEM_NVM_LEN= -DCONFIG_MEM_NVM_UBOOT_OFF=0x0 -DCONFIG_MEM_RAM_BASE= -DCONFIG_MEM_RAM_LEN= -DCONFIG_MEM_RAM_BUF_LEN= -DCONFIG_MEM_MALLOC_LEN= -DCONFIG_MEM_STACK_LEN= -I/home/vmuser/linux-cortexm-2.0.0/u-boot/cpu/arm_cortexm3 -Wall -Wstrict-prototypes    -o hello_world.o hello_world.c -c
arm-uclinuxeabi-gcc: error trying to exec 'cc1': execvp: No such file or directory
as: unrecognized option '-mcpu=cortex-m3'
make: *** 错误 1
make:正在离开目录 `/home/vmuser/linux-cortexm-2.0.0/u-boot/examples/standalone'
make: *** 错误 2
vmuser@Linux-host:~/linux-cortexm-2.0.0/u-boot$
发现错误,请指教,谢谢!

coolhorse 发表于 2017-3-2 09:50:25

已解决,谢谢

htjgdw 发表于 2017-3-2 13:26:09

coolhorse 发表于 2017-3-2 09:50
已解决,谢谢

应该是没在环境变量里设arm工具链路径。
自己解决了就好。

coolhorse 发表于 2017-3-4 11:55:00

楼主,怎么没看到内核支持CAN啊,另外您是如何使用MAKE MENUCONFIG进行精确驱动使能的,能介绍方法给我们学习一下吗,谢谢

sigma318 发表于 2017-3-4 12:06:53

牛X,LZ要分享下code吗

leonliu_1128 发表于 2017-3-6 13:03:30

有交叉编译工具链支持不

htjgdw 发表于 2017-3-6 17:14:14

楼上的朋友们可以去www.emcraft.com得到答案,我是从那里下载的源码。

lfgc 发表于 2017-3-6 17:19:40

是不是比较耗资料。特别是RAM

blxy 发表于 2017-3-6 17:42:32

楼主厉害,膜拜orz

_yuyixuantai 发表于 2017-3-7 13:49:06

真没想到10年前的东西还活着

htjgdw 发表于 2017-3-7 15:42:20

lfgc 发表于 2017-3-6 17:19
是不是比较耗资料。特别是RAM

相比于其他嵌入式RTOS,Linux系统耗费的RAM多,但是功能也多不少。要想马儿跑又不给马儿吃草是不可能的:)

gaowh 发表于 2017-3-7 16:20:30

楼主确实牛人,爱折腾。

huangrui 发表于 2017-3-7 16:46:57

STM32的429现在怎么这么贵?不知道用它能干啥,跑LINUX的板子可多了去了。跑android的片子也没这么贵吧

xyz543 发表于 2017-3-8 10:08:06

htjgdw 发表于 2017-2-3 01:46
节后开工重新打板,如果没有问题会发布。

报告 htjgdw 兄,我打从您发的这帖等待至今口水一直都流不停,您的计划应该没有发生延误吧?!
个人有些浅见提出让您给参考一下,若再一版可以 Replace 的话,这板上的那 RJ-45 的插座是否能缩至与板边齐平?这样感觉整片板会较工整些。
而是否能有个 20 Pin 的 JTAG 座子于板上,另外这调适用的 UART 串口是否能放个如 CH-340 or PL2302 的 Micro-USB 座子 to UART 的串口?
这样感觉比较完整也方便找一条 USB To Micro-USB 的充电数据线就可以来玩起。无论如何这都是个案的建议,当然还是得依您对于实际的状况来处理为准!
我说htjgdw 兄啊,您搞得我口水直流啊!呵呵~ {:tongue:}

htjgdw 发表于 2017-3-8 11:04:48

xyz543 发表于 2017-3-8 10:08
报告 htjgdw 兄,我打从您发的这帖等待至今口水一直都流不停,您的计划应该没有发生延误吧?!
个人有些 ...

老朋友,谢谢你的持续关注!
年后改好了一版,把之前的问题都fix了,增加了一个用户按键。其他还是老样子(可能会让你比较失望了)。因为没有大的更新所以没有发炫耀贴:)
RJ-45放置的位置,我尝试过和板边对其,但是那样就布不开线了。

USB-UART芯片在我以前的STM32F103 uclinux板子上是有过的,不过那时板子用了psram+nor flash的bga芯片很好布线所以能放下,现在的SDRAM 和spi flash都是普通的sop封装占地面积大了很多,布线也很费脑筋。所以现在的板子我没法集成更多东西了。
JTAG因为管脚复用还有面积的原因放不下,不过板上有SWD 接口。
页: [1] 2
查看完整版本: 我的STM32F429开发板成功运行Linux4.2(uClinux)