c - 如何在linux中启动ARM编程?

标签 c linux embedded arm embedded-linux

我在我的项目中使用 PIC 微 Controller 。现在我想转向基于 ARM 的 Controller 。我想使用 Linux(使用 C)启动 ARM。但是我不知道如何开始使用 Linux。哪个编译器最好,我需要研究的东西有很多困惑。你们能帮我吗?我的项目通常包括UART、IIC、LCD等等。我没有使用任何 RTOS。你们能帮帮我吗?

抱歉我的英语不好

最佳答案

一旦您在设备上安装了像 Linux 这样的重量级操作系统,它提供的硬件的抽象级别使得它在很大程度上与芯片是什么无关。如果您想具体了解 ARM,使用 Linux 是避免这种情况的一种方式!

此外,从 PIC 到 ARM + Linux 的飞跃是巨大的。 Linux 不会因为少于 4Mb 或 RAM 和相当多的非 volatile 存储而起床 - 这是最低限度。 ARM 芯片覆盖范围广,低端部分甚至无法支持 Linux。要使 Linux 物有所值,您需要支持 MMU 的 ARM 部件,这不包括大量 ARM7 和 Cortex-M 部件。

有许多适用于 ARM 的小型操作系统,可让您以非常小的占用空间执行高效(和硬实时)调度和 IPC。它们的范围从简单的调度内核(如 FreeRTOS)到具有标准设备支持和网络(如 eCOS)的更完整的操作系统。即使您使用简单的调度程序,也有大量库可用于支持网络、文件系统、USB 等。

您关于编译器的问题的答案几乎肯定是 GCC - 这是构建 Linux 的编译器。您将需要一个交叉编译器来构建内核本身,但如果您有一个具有足够资源的 ARM 平台,一旦您在其上运行 Linux,您的目标就可以在本地托管一个编译器。

如果你真的想在 ARM 上使用 Linux 而不是我的所有建议,那么成本最低、工作量最少的方法可能是使用 Raspberry Pi。它是一 block 基于 ARM11 的主板,开箱即用地运行 Linux,得到越来越广泛的支持,并且可以超频到 900MHz

关于c - 如何在linux中启动ARM编程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14352270/

相关文章:

c - 如何在 switch 语句的 case 字段中使用变量?

c - recv() 的原型(prototype)

c - 指针如何存储在内存中?

node.js - 在 Amazon Linux 2 中安装 Node

c - 这个数据报套接字有什么问题?

c++ - 为什么 UNIX 文件描述符不是由它们自己的类型实现的,尤其是在 C++ 中?

embedded - 用于 Arduino 的 Korg Nanokey MIDI Controller ?

c - Atmel 处理器已复位,但 MCUSR 中未指示复位源

embedded - 我着迷于硬件板和直接使用硬件编码。我想开始?

c++ - C 和 C++ 标准对位级整数表示和操作有什么看法?