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

标签 c arm cross-compiling

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

如何在设备上运行它?

假设我有两个设备来测试它:

  1. 一部配备 Windows Mobile 6.1、ARM926EJ OMAP1710 处理器的三星手机
  2. 搭载 Android 2.x 的 Foston 平板电脑,我没有找到该处理器名称,但它是 ARM 系列处理器之一。

如果无法在当前操作系统上运行它,那么如何格式化设备并使用我的内核而不是 Android/Linux?

最佳答案

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

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

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

手机等小型设备通常运行的操作系统仅具有 PC 功能的一小部分,因此请做好准备,以减少便利功能,并可能“缺少”库。也就是说,如果您确实要编译它,通常您会将设备与受支持的“总线”(USB 非常流行)连接起来,并将程序保存在设备上(有时涉及通过设备发送“开发/调试”代码)总线,开发套件会为您完成此操作)。

如果一切顺利,您就可以从手机启动您的程序。如果程序出现故障并导致手机无法操作,每个开发套件/手机都有关于如何恢复或重新加载新操作系统的具体说明。

以下是一些知名平台的资源(以及使用这些平台的手机的百分比)

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

关于c - 如何在设备上运行 ARM 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10352596/

相关文章:

c - C如何打印一个超大数?

c - 如何解决 "unknown conversion type character ` z' in format”编译器特定警告?

c - 将一些流水线翻译成 C 代码

arm - 如何读取AM335X上的特定寄存器值

arm - ARM9 上的 valgrind?

Golang 检索应用程序正常运行时间

cross-compiling - 告诉配置脚本使用 --datarootdir 的相对路径

c - 在 C 语言中,是否可以像在 char 数组声明中初始化字符串一样在指针声明中初始化字符串?

c - 从文件中的特定位置删除字符串

连接到xampp服务器上的index.php的C程序