如何从微控制器转向嵌入式Linux?

Pur*_*cle 15 embedded embedded-linux

与此问题相反:"软件开发人员难以进行低级嵌入式系统编程"我想请求从低级嵌入式系统转向使用OS的更高级系统(尤其是嵌入式Linux)的编程.

我主要使用小型微控制器硬件和软件,但现在只使用软件.我的教育主要包括硬件和嵌入式东西.我没有很多编程课程,也不太了解软件设计或OO编码.

现在,我手中有一个很大的项目,将在嵌入式Linux中完成.我在设计事物和保持可管理性方面存在重大问题,因为我之前并不需要这么做.同样利用多任务和阻塞调用而不是从主函数运行"并行"任务就像另一个世界.

从低级编程转向使用OS(Linux)的大型系统,您有什么样的经验?什么是难的,你是如何解决的?需要什么样的心态?

是否值得从零学习C++或继续使用普通C?

Aid*_*ell 10

使用Linux内核替换微控制器系统的主要问题是驱动与之连接的设备.为此,您可能必须编写驱动程序.我会说坚持使用C作为语言,因为您希望尽可能保持用户空间的清洁.查看uclibc库以获得更精简的C标准库.

http://www.uclibc.org/

您可能还会发现busybox很有用.这提供了许多用户空间实用程序作为单个二进制.

http://www.busybox.net/

然后,它只是从一些存储启动到一个实时系统,并通过与硬件接口的init运行一些控制逻辑.如果需要,您可以访问实时系统并运行busybox实用程序.实际上,唯一的区别是用户空间比正常分布更精简,并且您将在目标方面"更接近"内核.

另外看看实时linux.

http://www.realtimelinuxfoundation.org/

如果您需要完成任务的正式承诺.我怀疑最难的是启动/持久存储,如果它是异国情调,则与你的硬件连接.如果你不熟悉Linux启动那么

http://www.cromwell-intl.com/unix/linux-boot.html

可能有帮助.

简而言之,如果您还没有深入开发Linux,构建自己的发行版或拥有内核经验,那么您可能会发现编程很难.

http://www.linuxdevices.com/也许还有帮助

祝好运