[STM32F4] STM32F429启动Linux4.14成功(附ADC DAC测试)

[复制链接]
3331|17
 楼主| 不爱说话 发表于 2017-12-25 20:50 | 显示全部楼层 |阅读模式
之前我的板子已经可以运行Linux4.2,但是那时还没有STM32 ADC和DAC的linux驱动。后来通过查看linux主线源码发现4.1x版本里
已经有这个驱动了,于是我有了升级linux kernel的想法。整个过程总的来说还算比较顺利,kernel编译,busybox文件系统制作,
rootfs 映像制作都是按照网上搜索的方法加上自己的总结做的。然后下载映像到板子上启动,OK。

一、检查ADC、DAC驱动设备文件,linux系统将这两类设备都归为IIO设备,可以在/sys/bus/iio/devices目录下找到,我创建了两
个设备iio0 adc, iio1 dac
iio设备.png

ADC和DAC引脚.png

二、测试ADC,linux通过读取adc设备文件获得采集到的ad值(STM32F429的ADC是12位的,对应量程0-4095),由于引脚悬空,所以
读取的值是浮动的。
ADC值.png

三、测试DAC,linux可以通过echo命令写dac设备文件来改变da输出值(STM32F429的DAC是12位的,对应量程0-4095)。
DAC值.png

最后,我短接了PA5和PF10引脚,来个ADC测量DAC。从下图可以看到DAC输出4000,ADC测得3999;DAC 2000,ADC 2015;DAC 1000,
ADC 1001;马马虎虎还算比较准确吧 :)
adc_detect_dac.png

wahahaheihei 发表于 2017-12-25 20:59 | 显示全部楼层
牛X,这个芯片放的下这个系统吗
 楼主| 不爱说话 发表于 2017-12-26 10:45 | 显示全部楼层
wahahaheihei 发表于 2017-12-25 20:59
牛X,这个芯片放的下这个系统吗

调试的时候我是用网络下载到外扩的SDRAM里运行。
正常使用的时候我会把linux映像烧录到外扩的大容量SPI FLASH里面,上电的时候从SPI FLASH里加载到SDRAM。
tomzbj 发表于 2017-12-26 15:10 | 显示全部楼层
不爱说话 发表于 2017-12-26 10:45
调试的时候我是用网络下载到外扩的SDRAM里运行。
正常使用的时候我会把linux映像烧录到外扩的大容量SPI F ...

zan
ram/rom需求分别多少呢?
heisexingqisi 发表于 2017-12-26 15:27 | 显示全部楼层
厉害了,有教程没,学习学习
 楼主| 不爱说话 发表于 2017-12-26 15:30 | 显示全部楼层
tomzbj 发表于 2017-12-26 15:10
zan
ram/rom需求分别多少呢?

ram/rom最好都是8MByte以上,太小了限制太多。
 楼主| 不爱说话 发表于 2017-12-26 16:41 | 显示全部楼层
heisexingqisi 发表于 2017-12-26 15:27
厉害了,有教程没,学习学习

对于我来说,能弄出来就费了不少劲,linux大神很多不太敢班门弄斧写教程。
Leeone 发表于 2017-12-26 19:47 | 显示全部楼层
开源????
aizaixiyuanqian 发表于 2017-12-26 20:20 | 显示全部楼层
厉害了,学习下。
 楼主| 不爱说话 发表于 2017-12-26 23:36 来自手机 | 显示全部楼层
Leeone 发表于 2017-12-26 19:47
开源????

这些linux源码在网上都有,不用我开源。
sdggg 发表于 2017-12-27 09:59 来自手机 | 显示全部楼层
楼主的Linux是什么版本?是uc还是其他?
 楼主| 不爱说话 发表于 2017-12-27 10:06 | 显示全部楼层
sdggg 发表于 2017-12-27 09:59
楼主的Linux是什么版本?是uc还是其他?

这是正式的Linux主线版本,从Linux作者Linus Torvalds的Github软件仓库下载的源码。
现在已经不需要从uClinux网站下载特殊的linux版本了,Linux主线内核已经支持no-MMU的处理器(也就是像Cortex-M单片机这样的CPU)。

评论

@不爱说话 :虚拟地址就是靠硬件MMU单元实现的,这样才能把应用彻底隔离,没有虚拟系统根本管理不了应用,应用想干什么干什么,你懂的  发表于 2017-12-28 09:50
@sdggg :没太关注过这方面,主要精力做系统移植了。你可以上网搜搜。  发表于 2017-12-28 09:35
@不爱说话 :我想知道的是还能实现虚拟地址?  发表于 2017-12-28 09:07
@sdggg :no-MMU不等于操作系统不管理内存,只是没有了硬件内存管理单元需要软件去管理而已。写应用就向PC上的linux一样,写c代码用GCC编译就可以了。  发表于 2017-12-27 21:11
不用内存管理?那应用程序呢?  发表于 2017-12-27 17:58
@若水 发表于 2017-12-28 11:12 | 显示全部楼层
不爱说话 发表于 2017-12-26 23:36
这些linux源码在网上都有,不用我开源。

大家是想要移植后的代码,楼主可以录制一个移植的视频教程放到公开课上,可以收点辛苦费
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:飞翼电子工作室 http://shop68798667.taobao.com/

115

主题

886

帖子

34

粉丝
快速回复 在线客服 返回列表 返回顶部