当然,这里的普通单片机,还是需要一定的资源的,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)
实际一些应用的测试:https://raw.githubusercontent.com/mevdschee/2048.c/master/2048.c
这个是一个简单的命令行2048游戏,运行效果:
除了一些特殊字符显示不正常外,其他功能都OK,当然,这个也只是比较简单的linux应用
一周热门 更多>