你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

uc-PC, stm32上的linux电脑

[复制链接]
丿灬幸灬 发布时间:2018-11-4 15:09
本帖最后由 丿灬幸灬 于 2018-11-5 11:17 编辑
9 `0 r2 b4 e; F' X0 Q5 A! Z3 R) W$ e, C* X3 g% C5 Q0 ^2 u
Linux内核可以在没有MMU的情况下运行9 \4 g( J* R/ v) s
从内核4.2开始Linux就被移植到STM32。让我们从头开始做一台STM32电脑!; c7 V( X" e# a+ d5 `3 P% g
901661519287291158.jpg % B9 e( ^) c" z% o
描述
/ q+ J; M7 S' q) j" }2 I- p! puc-PC代表微控制器pc。它基于STM32F429IIT6,运行主流Linux 4.13.3,带有VGA显示端口,USB等,就像一台电脑。6 I9 C- F& o% t2 t
9 T7 f$ [/ U- {- I* Y3 x" J
细节! m( {# g9 c* Q) ~% k; V) j' [
uClinux不再激活。4 J8 W8 z( b. w$ P: r
主线Linux内核有一个CONFIG_MMU for ARM,已经移植到ARMV7-M,带有STM32、EFM32、LPC18xx的defconfig。尽管存在一些限制,但是这些MCUs可以运行与x86计算机相同的Linux内核!
$ F- ]* i1 |8 X+ [7 \. U
* Q! L9 r! p4 P: B* b对于STM32F429来说,最激动人心的事情是现在几乎所有的外设都已经在主线内核中实现了,比如USART, ADC, DAC, pinctrl, LTDC, DCMI, USB, MII/RMII, I2C,还有详细的devicetree绑定。stm32429-eval。dts和stm32f429i-disco。dts就是很好的例子。  B. q. @# r4 q: U) j; o

6 j2 `; D( S* m$ N9 m3 j9 O9 p所以我选择STM32F429IIT6, lqfp-176 SOC,足够容纳:
( i) V% }' ~5 I7 g( p
" S4 A0 d& M, L* @. ?2 w1 \0 D64 MB SDR SDRAM8 X5 W% I9 @* Q) N0 t
128MB的SLC nand flash
8 }: o2 [" X: E7 J1 h10/100M以太网5 U8 e! @6 `9 I
640x480@60hz VGA输出
5 f( t5 D+ f" ?2个USB端口
% {$ |8 V! R+ A0 Z- W3 z7 L" i1 SD卡插槽
! k: Q' t' U" Y- [& @" Y" d1台摄像机(OV2640、OV7670等). ^: Z  m9 @5 f9 J+ {

6 W8 Q( V' y8 a$ _0 N剩下的引脚不多了。( v$ p1 F' X: B& a0 g
6 Z2 _! o* y" S5 G
在内核4.13.3中,所有的相关驱动程序都被启用并修复了错误。内核略小于2MB,因此在其内部闪存中有XIP,核心驱动程序如USART、yaffs、framebuffer等。其他驱动程序如USB被制成模块,存储在nand闪存中。
, j6 y# K/ B# L: B
9 p- |! a. }! D, o# _只需插入VGA显示器和USB键盘,就可以享受busybox命令了。
, x' y( }1 _+ x8 H# ^
( s* }! ^( V+ n 1.jpg   O' j( R3 q$ ]; E
. s8 z0 R/ c+ l0 [# T7 d
2.jpg # C9 W+ I% o- j4 G& F# ^

: M( G' y1 f5 D6 a% ~- S 3.jpg
& W" R* R0 H8 l5 g9 l8 `9 t  S5 F) z4 I2 Z- E
4.jpg
: Q- Z8 `3 C9 K) `% J+ G, z' Q
2 u0 O4 q( Y3 z 5.jpeg
9 [" w" n/ e& |$ @8 F" L6 G6 P6 c) j" U
6.jpeg & e& P+ U( C) N9 `
! i& v, ~7 u- [' C6 c$ t
7.jpeg $ d3 E4 B! I9 y0 |4 h7 [9 x/ J) |

6 m* D1 ?$ Z9 ^) ?! T/ y0 _+ A- a$ `
( t% \+ n5 z+ q" _注意:
) R1 @0 @9 @- o- v1 C+ o  f% \目前没有硬件浮点数支持。: u6 B( J+ x  x' p
USB不接受低速设备,所以你可能需要无线USB键盘。
9 b, H3 r4 F9 s摄像机驱动程序太慢,可能会触发DMA底流错误。
8 [, a* B" i( n+ O网络还没有完成。udhcpc无法工作,获得IP地址的唯一方法是在内核命令行中编写它。它也没有DNS。
+ r( K4 g6 W# ^7 y9 g! bBootLoader见GitHub! U; G$ o1 F8 b; o+ c9 ?
演示视频见bilibili5 q/ R7 Q% P6 t
参考资料
$ o, X% |9 [: M/ ]4 h6 A3 n' n7 V. q. M& O% v; j
原文请见hackaday9 D% L4 Y/ c. s

9 G1 f$ g6 U9 `  T8 {
收藏 评论5 发布时间:2018-11-4 15:09

举报

5个回答
damiaa 回答时间:2018-11-5 09:47:57
好,再多介绍点。: L  \& u% p, o$ [$ u: @" y
mzy2364 回答时间:2018-11-5 11:01:56
学习学习
andey 回答时间:2018-11-5 13:40:38
提示: 作者被禁止或删除 内容自动屏蔽
huangyanga 回答时间:2018-11-5 13:56:36
厉害,学习之
maxtch 回答时间:2018-11-5 13:58:44
单片机跑 Linux 这种没有 MMU 的环境约束还是比较大的吧?我最近倒是在研究 PIC32MZ-DA 系列跑 Linux,那个芯片有 TLB MMU 和片内 32MB DDR2,感觉好像约束会小一点。

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版