我的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驱动还没有搞定,年前也就这样了。年后准备再做一版修复之前的问题。
不错,顶一个 哇,楼主好666, 顶顶。。。。。再加个gui, Excellence 发表于 2017-1-17 22:06
顶顶。。。。。再加个gui,
gui应该是有的,只是我没有启动它。 跑个benchmark看看跑分咋样? 主要应用在什么场景啊?可以运行Qt程序吗? 搞个东东,带大家一起刷刷 楼主牛逼呀,666666 楼主之前几个板子都不错。 顶一下。 meirenai 发表于 2017-1-17 22:45
主要应用在什么场景啊?可以运行Qt程序吗?
这个就不要想了吧,树莓派还差不多 牛人,膜拜!! 429太贵了,相比其他片子没竞争 只能玩玩 arm7时代跑过uclinux,在s3c44b0x板上,看上去和linux差不多,其实差不少,写程序得特别小心内存够不够,这个系统对任务调度还行,对内存管理恐怕有点问题,十多年了,没想到这个操作系统还活着 下一页 发表于 2017-1-18 00:21
arm7时代跑过uclinux,在s3c44b0x板上,看上去和linux差不多,其实差不少,写程序得特别小心内存够不够,这 ...
原来的uClinux的主页已经好多年没有更新了。现在Linux mainline里面已经有no-MMU选项了(相当于以前的uClinux),这是我现在用的版本。和以前的uClinux出处已经不同了。
是的,在no-MMU的系统上写应用得提前自己估计好用多少内存。 这样搞,会出事的 楼主你喜欢玩我送你两套新塘的N32926的板子,出口很久的产品,不是开发板,新塘有现成的东西,我对linux一知半解,刷完机就放那了,没玩出什么花样。
64M RAM+256M FLASH + RTL8188 + NT99140 = wifi cam 另外还有带480*272LCD的N32903的。
围观,支持一下 凌海滨 发表于 2017-1-17 23:59
429太贵了,相比其他片子没竞争 只能玩玩
将来可以试试和它兼容的GD32芯片。 gmyu 发表于 2017-1-18 09:12
楼主你喜欢玩我送你两套新塘的N32926的板子,出口很久的产品,不是开发板,新塘有现成的东西,我对linux一 ...
不敢玩新塘这个芯片,之前看几个坛友抱怨N32926很坑。 楼主牛人,以前做了407板子,现在想做块429板子,对SDRAM布线不太熟,看网上说要等长,用4层板,没搞过4层板,考虑想用2层板步,又怕运行不稳定,楼主如何布的,能否共享下SDRAM布线PCB部分,谢谢。 meirenai 发表于 2017-1-17 22:45
主要应用在什么场景啊?可以运行Qt程序吗?
装不下Qt众多的库的 很不错的板子 {:smile:} 跟ucos比有何优势呢(不考虑价格),学习的时间成本如何? 楼主,稳定吗?
牛人...... 内存占用情况如何呢? ljt80158015 发表于 2017-1-18 10:43
楼主,稳定吗?
这叫我怎么说呢?刚调好不久,每次调bootloader,kernel也就运行十几~几十分钟,反正每次上电工作都正常没出现过不稳定的情况。 int 发表于 2017-1-18 10:50
内存占用情况如何呢?
各种驱动都加载,再开一个dropbear,一个uhttpd 内存还有5M多。
注:内核也在SDRAM中运行。 htjgdw 发表于 2017-1-18 10:54
这叫我怎么说呢?刚调好不久,每次调bootloader,kernel也就运行十几~几十分钟,反正每次上电工作都正常 ...
驱动框架 和普通linux 是一样的吧?
ljt80158015 发表于 2017-1-18 11:25
驱动框架 和普通linux 是一样的吧?
当然一样的,因为这货就是Linux,只不过在编译的时候选了no-MMU而已。
而且因为kernel比较新(4.2)驱动使用了Device Tree。这点跟linux2.6,3.x这样的“普通” linux不一样。 htjgdw 发表于 2017-1-18 13:02
当然一样的,因为这货就是Linux,只不过在编译的时候选了no-MMU而已。
而且因为kernel比较新(4.2)驱动 ...
使用设备树后变化好大,几年前用linux还算熟练,16年下半年买了个英贝特的AM3358板子,资料旧的,
搞新系统,花了好几天才适应新变化。
现在也有linux-RT版本了,不知道以后前景如何。 个人觉得一块上了50元的M4片子去跑linux,性价比太低,没必要折腾了,不如直接用arm9、A7、A8第三方的linux核心板。 这年头牛人真多{:titter:} rgzdb 发表于 2017-1-18 09:55
楼主牛人,以前做了407板子,现在想做块429板子,对SDRAM布线不太熟,看网上说要等长,用4层板,没搞过4层 ...
100MHz以下的随便拉就行。 楼主强人一个。 系统调用有些地方还是有区别 我总觉得用STM32玩uclinux不然用ARM9 玩Linux还便宜一些 楼主厉害,给楼主赞一个,还顺便给自己公司做了个广告 429这货太贵了,算下来我现在准备换767了,价格基本一样 emctaft不是收费的吗 qianniao29 发表于 2017-1-19 20:31
emctaft不是收费的吗
只下载它的软件不收费。 +++++++++++++++++++++++++++++++++++++++++++++++++
年前最新进展,USB HS OTG Host(Full Speed)驱动调试成功,可以正确识别并挂载U盘了(/dev/sda1)。这样一来初版PCB所有的设计目标都达到了,过年后就可以做新版PCB了。在这里提前给大家拜个早年:)
htjgdw 发表于 2017-1-24 13:33
+++++++++++++++++++++++++++++++++++++++++++++++++
年前最新进展,USB HS OTG Host(Full Speed)驱动调 ...
底层需要自己来实现吗?还是有现成的代码直接灌进去,然后在LINUX上面写应用程序,那应该很好玩。。。
不错。以前见过有用stm32f103zet6一致uclinux的。 大牛,我也关注一下 有没有什么步骤 kinsno 发表于 2017-1-24 21:45
底层需要自己来实现吗?还是有现成的代码直接灌进去,然后在LINUX上面写应用程序,那应该很好玩。。。
...
就像你说的这样,写Linux应用就ok了。 zstein 发表于 2017-1-24 22:16
不错。以前见过有用stm32f103zet6一致uclinux的。
这个我也做过:) 楼主,做好后会出售吗?
ljt80158015 发表于 2017-1-25 08:25
楼主,做好后会出售吗?
大家喜欢的话,会这样做的:) htjgdw 发表于 2017-1-25 09:26
大家喜欢的话,会这样做的:)
不晓得价格贵不贵,200以内的话预订一个。。。
htjgdw 发表于 2017-1-25 08:15
就像你说的这样,写Linux应用就ok了。
如果bsp里面没有的呢,比如,bsp里面木有pcie,而,系统需要使用,这个驱动开发起来难度大不大? 本帖最后由 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,没有。 在这种单片机上跑uclinux意义不大 同样价钱估计能换个A系的片子更好吧 huangqi412 发表于 2017-1-29 15:26
同样价钱估计能换个A系的片子更好吧
换芯片还不如买个全志派来得直接。
不过问题又来了,全志芯片上的GPU,VPU,H.264 codec没有特别详细的资料,根本玩不了,一般人也玩不动,sdk常年停留在kernel3.4不更新,这些也是难以言说的痛,只有用过的人才知道。
从学习的角度看STM32的资料更全,更适合学习。 外设这么全,可以做产品 启动多长时间? 不错,牛人 饭桶 发表于 2017-1-30 15:10
启动多长时间?
10秒以,算上u-boot的3秒bootdelay 饭桶 发表于 2017-1-30 15:10
启动多长时间?
10秒以内,算上u-boot的3秒bootdelay htjgdw 发表于 2017-1-31 21:04
10秒以内,算上u-boot的3秒bootdelay
楼主有板子没?想搞块玩下。 楼主....厉害 请问楼主会开源PCB和代码么? jordonwu 发表于 2017-1-31 21:13
楼主有板子没?想搞块玩下。
节后开工重新打板,如果没有问题会发布。 谢谢楼主分享 不错喔,希望能一步一步的开源喔!!谢谢! 个人认为STM32F429的价格没有优势。 视乎这个跑uLinux是个鸡肋,还不如树莓派{:lol:}
zuoyi001 发表于 2017-2-4 22:57
我是在429-dis 跑通的,如果想跑溜一点 需要大一点的RAM 最好8M以上。
是的,8M是小了点。当初我做这个板子时也有这方面的担心,所以按外扩64M SDRAM画的PCB,应该够用了:) htjgdw 发表于 2017-2-6 07:26
是的,8M是小了点。当初我做这个板子时也有这方面的担心,所以按外扩64M SDRAM画的PCB,应该够用了:) ...
我使用stm的单片机,外扩了一个128MByte 的 SDRAM的 板子 不错 , 不知道控制周期能做到多少ms ? 膜拜大神~ hpdell 发表于 2017-2-6 11:46
我使用stm的单片机,外扩了一个128MByte 的 SDRAM的 板子
什么型号的SDRAM单片128MB?我找到最大的只有64MB的。 楼主666,顶一个 楼主,敢问什么时候开源啊? 顶一个!!!!!貌似不错的样子!!! 膜拜下,资源占用的怎么样?还有多少CPU可以用? coolhorse 发表于 2017-2-28 09:59
楼主,敢问什么时候开源啊?
不用我开源,emcraft网站上就有BSP可以免费下载。 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占用率没看过,反正命令行操作不卡顿。 SDRAM不用等长吗? 楼主强悍啊 不明真相的围观群众
问一下,现在市场上STM32F4的销量怎样,推广怎样? 厉害楼主,顶一个!!! 支持,我第一次接触arm的时候就是ucLinux 楼主您好,我下载了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
已解决,谢谢
应该是没在环境变量里设arm工具链路径。
自己解决了就好。 楼主,怎么没看到内核支持CAN啊,另外您是如何使用MAKE MENUCONFIG进行精确驱动使能的,能介绍方法给我们学习一下吗,谢谢 牛X,LZ要分享下code吗 有交叉编译工具链支持不 楼上的朋友们可以去www.emcraft.com得到答案,我是从那里下载的源码。 是不是比较耗资料。特别是RAM 楼主厉害,膜拜orz 真没想到10年前的东西还活着 lfgc 发表于 2017-3-6 17:19
是不是比较耗资料。特别是RAM
相比于其他嵌入式RTOS,Linux系统耗费的RAM多,但是功能也多不少。要想马儿跑又不给马儿吃草是不可能的:) 楼主确实牛人,爱折腾。 STM32的429现在怎么这么贵?不知道用它能干啥,跑LINUX的板子可多了去了。跑android的片子也没这么贵吧 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:}
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