系统相关
首页 > 系统相关> > 开发C应用程序以在嵌入式Linux设置上运行

开发C应用程序以在嵌入式Linux设置上运行

作者:互联网

我需要编写一个在嵌入式Linux设置(DMP Vortex86DX处理器)上运行的C应用程序.供应商提供了可以安装到板上的minimal linux installation image ,并包含适当的硬件驱动程序.我的问题是由我以前关于在particular kernel to run on a different kernel上编写Linux软件的问题的答案引起的.关于确保兼容性,我真的不知道从哪里开始编写软件.

我的本能方法是在嵌入式设备和台式机上安装相同版本的g,在开发机器上编写应用程序,复制到板上并在那里编译.但是,这似乎是疯狂的,我很难相信这是嵌入式软件的开发方式.关于我上一个问题的答案,有没有一种方法可以简单地在我的桌面上构建,而是使用嵌入式设备上存在的glibc版本-如果可以,如何强制链接到特定版本?还是可以静态构建所有内容,以便应用程序不动态链接到任何内容(我怀疑这是可能的).

我是嵌入式开发的新手,除非能获得一些好的建议或资源,否则我会经历数月的挫折.无论看上去多么简单或琐碎,任何关于从何处开始的指针或建议都将不胜感激-关于嵌入内容,我真的是从最底层开始.

解决方法:

好的,考虑到Vortex86SX/DX/MX声称是与x86兼容的,应该使用少量编译器开关来编译目标计算机的代码:-m32以确保32位代码,而没有-march开关针对特定的CPU.

然后,您需要链接您的代码.只要您不使用任何花哨的东西,而是使用简单的已建立的glibc函数,我就希望ABI在您的开发机器和嵌入式系统上是相同的.换句话说,您可以针对主机库进行编译,将二进制文件复制到嵌入式系统,并且应该使用那里可用的库简单地运行它.

如果X-Linux使用其他的libc,例如uclibc或类似的东西,那么您的主机上将需要一个交叉编译器.在这方面,我对Ubuntu的经验很少,但是我知道Gentoo linux的sys-devel / crossdev软件包使交叉编译器的生成非常容易.这可能适用于不同的体系结构(在您的情况下不需要)和不同的库(例如uclibc).

我想简单地尝试复制二进制文件,如果在那里遇到任何问题,请报告.

标签:embedded-linux,glibc,linux,c-4
来源: https://codeday.me/bug/20191201/2078330.html