打印
[程序源码]

普通32位单片机使用linux的应用代码

[复制链接]
906|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
vsfopen|  楼主 | 2019-12-20 13:45 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 vsfopen 于 2019-12-21 03:56 编辑

当然,这里的普通单片机,还是需要一定的资源的,flash至少32K,RAM的话看应用以及堆栈大小的设置。而且,这里的实现并不是跑完整的linux,而是做了一个linux的子系统,可以编译一些linux的应用代码,理论上各种应用代码都可以,只是缺什么库就需要补什么库。

MCU里使用linux的应用也只是一些特殊场合,之前做这个,也仅仅是因为客户需要移植一个十几万行代码的3个linux应用到MCU里,所以只能用这个方法来实现了。


上代码:
https://github.com/vsfteam/vsf/tree/master/source/vsf/shell/sys/linux

工程:
https://github.com/vsfteam/vsf/tree/master/source/example/project/iar_8.4
vsf_template.eww,选择linux_m484配置
https://github.com/vsfteam/vsf/tree/master/source/example/project/vc
vsf_template.sln,选择vsf_linux_win

截图:

这个demo里,有VSF的内核、文件系统、USB主机和从机协议栈,linux子系统(自己实现的shell和一些命令,以及libusb),应用层的lsusb代码
IAR最高size优化下(不选择多文件编译),编译结果为33K代码占用(vsnprintf就包含了好几K)

使用特权

评论回复

相关帖子

沙发
vsfopen|  楼主 | 2019-12-20 14:10 | 只看该作者
实际一些应用的测试:https://raw.githubusercontent.com/mevdschee/2048.c/master/2048.c

这个是一个简单的命令行2048游戏,运行效果:


除了一些特殊字符显示不正常外,其他功能都OK,当然,这个也只是比较简单的linux应用

使用特权

评论回复
板凳
vsfopen|  楼主 | 2019-12-20 14:36 | 只看该作者
本帖最后由 vsfopen 于 2019-12-20 19:43 编辑


libuvc 摄像头驱动,稍微改了一下libuvc的代码,不过也是很简单就可以在VSF的linux子系统里运行。
这里为了方便开发调试,直接使用了VC运行PC端的VSF环境,代码和MCU端基本一样,只是USB的HCD使用winusb而已。

由于目前还没去实现同步EP,所以libuvc也就只能读取和解析摄像头的参数。

使用特权

评论回复
地板
gyh974| | 2019-12-20 16:06 | 只看该作者
楼主厉害

使用特权

评论回复
5
叶春勇| | 2019-12-20 16:30 | 只看该作者
开源项目,顶起

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

90

主题

325

帖子

8

粉丝