如何在设备上运行ARM应用程序?

时间:2012-04-27 14:33:02

标签: c arm cross-compiling

我使用ARM的arm-linux-gnueabi编译器编译了一个用C编写的简单可执行应用程序。

如何在设备上运行它?

假设我有两台设备用于测试它:

  1. 采用Windows Mobile 6.1,ARM926EJ OMAP1710处理器的三星手机
  2. 使用Android 2.x的Foston平板电脑,我找不到处理器名称,但它是ARM系列中的处理器之一。
  3. 如果无法在当前操作系统上运行它,那么如何格式化设备并将内核放入Android / Linux?

1 个答案:

答案 0 :(得分:1)

应用程序通常构建为在操作系统之上运行。操作系统通常构建为在硬件之上运行。记住这一点。

运行Android / Linux的应用程序而不是意味着您的应用程序是某种操作系统。如果您没有编写或包含显式代码来控制设备中的硬件芯片,那么您只是提出错误的问题,您应该问“我在C中使用了一个应用程序,现在如何在我的手机上运行它操作系统。”如果您确实编写或包含显式代码来控制设备中的硬件芯片,那么您确实提出了正确的问题(但有些细节似乎已关闭)。这种开发方式在arduino / PIC /嵌入式ARM社区中发生了很多。

假设您没有进行嵌入式开发,则必须编译应用程序,并了解操作系统提供的内容(针对操作系统的可用API),这通常会使它们与其他操作系统不兼容。这意味着第一步是确定您要定位的操作系统,并获取它的开发套件。一旦你拥有它,假设它支持C代码(大多数情况下),套件将以与设备的CPU和设备上的操作系统的API兼容的格式重新编译源代码。

像手机这样的小型设备通常运行的操作系统只具有PC的一小部分功能,因此请准备好更少的便利功能,并可能“丢失”库。也就是说,如果您确实需要编译,通常您可以使用支持的“总线”(USB非常受欢迎)将设备挂起,并将程序保存在设备上(有时需要发送“开发/调试”代码)公共汽车,开发套件为你做这个。)

如果一切正常,您可以通过手机启动程序。如果程序行为不当并使手机无法操作,则每个开发套件/手机都有关于如何恢复或重新加载新操作系统的具体说明。

以下是一些众所周知的平台的资源(以及使用它们的手机的百分比)

请注意,这些测量与大多数调查一样,虽然它们是随机且无偏的,但它们容易出现测量误差和采样误差,因此数字作为相对指标比绝对值更有用。