htjgdw 发表于 2017-10-25 20:20:54

STM32F429移植Linux4.14可以boot,但是console有点小问题。

玩STM32 Linux也有段时间了,最初用的是emcraft的Linux4.2内核。我的STM32F429开发板成功运行Linux4.2(uClinux)
后来从GitHub上看到Linux主线内核已经支持STM32了,并且各种外设驱动逐渐完善中(相比4.2内核增加了adc、pwm、dcmi等驱动)。于是,我试着下载最新内核加自制文件系统做镜像,经过艰苦的尝试现在已经可以启动了(Linux 4.14-rc6,busybox 1.26.2),但是串口console有点小问题,输出正常,输入命令总是不能被linux正确接收,具体现象如下图,输入了好几次ls才正确执行了一次,希望Linux高手看看可能是哪的问题?



javenreal 发表于 2017-10-25 21:26:46

玩得不错,有外扩sdram吗?

quzegang 发表于 2017-10-25 22:05:38

貌似串口驱动接受部分的问题,看下串口中断部分,想问下楼主所用的是什么终端工具呢

qiuchen 发表于 2017-10-25 22:21:10

大牛啊,厉害。

gbfootball2 发表于 2017-10-25 23:17:34

不是没有内存管理单元不能跑linux吗?

htjgdw 发表于 2017-10-26 07:19:41

quzegang 发表于 2017-10-25 22:05
貌似串口驱动接受部分的问题,看下串口中断部分,想问下楼主所用的是什么终端工具呢 ...

这是一个叫uCon的终端工具。

htjgdw 发表于 2017-10-26 07:21:49

gbfootball2 发表于 2017-10-25 23:17
不是没有内存管理单元不能跑linux吗?

那是老观点了,Linux内核早已支持no-MMU编译选项,可以运行在Cortex-M这样的MCU上了。

htjgdw 发表于 2017-10-26 07:23:06

javenreal 发表于 2017-10-25 21:26
玩得不错,有外扩sdram吗?

必须有外扩SDRAM滴!

yinjinzhong 发表于 2017-10-26 08:16:29

直接运行busybox,看看,怀疑是不是没有相应的快捷方式(因为用的是busybox)
其次,就是看看,这些命令是不是在bin目录下面。
直接到相应的目录下面,通过./ls执行看看,是不是PATH没有设置正确。

liurangzhou 发表于 2017-10-26 08:38:41

可以运行QT吗?

Excellence 发表于 2017-10-26 08:49:18

不懂,路过帮顶。
看NXP IMX RT1050有UCLINUX支持。

htjgdw 发表于 2017-10-26 10:25:14

yinjinzhong 发表于 2017-10-26 08:16
直接运行busybox,看看,怀疑是不是没有相应的快捷方式(因为用的是busybox)
其次,就是看看,这些命令是 ...

从贴图上看我遇到的问题好像串口方面的。敲了好几次ls只有一次被解析对了执行。按说stm32的串口驱动应该很成熟了,不应该出这种低级错误才对。

security 发表于 2017-10-26 10:30:51

不明觉厉,帮顶一下。

yinjinzhong 发表于 2017-10-26 10:56:59

htjgdw 发表于 2017-10-26 10:25
从贴图上看我遇到的问题好像串口方面的。敲了好几次ls只有一次被解析对了执行。按说stm32的串口驱动应该 ...

你这个软件,有硬件流控吗?
一般用minicom的时候,都要关硬件流控的。

htjgdw 发表于 2017-10-26 12:22:09

应该有的,但是已经关掉了。同样的环境硬件,之前跑4.2内核的Linux就没问题。

zj2003 发表于 2017-10-26 19:19:33

长见识了,谢谢!

avr-arm 发表于 2017-10-26 20:42:19

牛逼!
不过都跑起来后,你会发现远远不如一个路由器soc跑得欢,比如MT7688,AR9331之类的。
linux强大在于网络,f429还得配网卡,配外存,配flash,各种资源要外扩。

gonboy 发表于 2017-10-27 10:30:17

请教下,
如何运行 STM32的文件??
1. 用什么编译器?
2. 编译成什么文件? 是生成的位置无关Code吗? 还是说必须加载到STM32的内部Flash来运行

gonboy 发表于 2017-10-27 10:30:37

请教下, 如何运行 STM32的文件?? 1. 用什么编译器? 2. 编译成什么文件? 是生成的位置无关Code吗? 还是说必须加载到STM32的内部Flash来运行

armstrong 发表于 2017-10-27 11:48:51

本帖最后由 armstrong 于 2017-10-27 11:49 编辑

gonboy 发表于 2017-10-27 10:30
请教下, 如何运行 STM32的文件?? 1. 用什么编译器? 2. 编译成什么文件? 是生成的位置无关Code吗? 还是 ...

运行在nommu单片机的linux,运行时可加载elf应用程序。它是靠运行时动态链接原理实现的,也就是分析elf的可重定向段,把每个地址引用都加上一个偏移量。
这个实现请参考rt-thread的模块特性,一样的。

htjgdw 发表于 2017-10-27 12:53:07

armstrong 发表于 2017-10-27 11:48
运行在nommu单片机的linux,运行时可加载elf应用程序。它是靠运行时动态链接原理实现的,也就是分析elf的 ...

楼上的兄弟回复的很清楚,谢谢。我只会用这些,但是不了解内部机制。

htjgdw 发表于 2017-10-27 13:08:32

avr-arm 发表于 2017-10-26 20:42
牛逼!
不过都跑起来后,你会发现远远不如一个路由器soc跑得欢,比如MT7688,AR9331之类的。
linux强大在于 ...

跑linux的芯片这几样基本都得配吧,不只是STM32吧?

htjgdw 发表于 2017-10-27 13:28:31

我的问题解决了,主要是l/etc目录里那几个inux启动脚本的配置问题,基本都是参考网上做的,可能不一定适合我的系统,略微修改后现在console控制台工作正常了!
下一步使能adc,pwm,dac等外设,看看怎么玩起来。

LVmcu 发表于 2017-10-31 21:04:38

htjgdw 发表于 2017-10-26 07:23
必须有外扩SDRAM滴!

SDRAM是多少M的?

htjgdw 发表于 2017-10-31 22:05:25

LVmcu 发表于 2017-10-31 21:04
SDRAM是多少M的?

64MB SDRAM
页: [1]
查看完整版本: STM32F429移植Linux4.14可以boot,但是console有点小问题。