为新手ARM程序员提供的资源?

我正在从http://www.embeddedarm.com开始在embedded式arm板上开发应用程序。 我是开发embedded式应用程序的新手。 我希望书籍,在线指南等资源能够让我开始在embedded式开发中开发应用程序。 我打算使用Linux作为操作系统。

一切运行之后,主要是linux编程。 如果你从一个评估板开始,我想你已经有很多工具了。 无论如何,你可能会发现以下链接有用。

工具链:交叉编译。 你可以去简单的方法,即从代码源下载预建的工具链。 或者你可以去努力,建立你自己的工具链。 然而,如果使用正确的工具,困难的方法会变得更容易。 Croostool-ng是一个非常反应性的邮件列表项目。

内核:好吧,arm架构已经在主线上了一段时间,但是,如果你有一些ARM的具体问题,你应该明确地问他们在那里

用户空间:一旦内核启动,你需要一个用户空间运行,即一些文件系统,外壳,C库,初始化进程等…要建立这样的工具,有很多选择。 一个是你自己做的一切。 你从busybox开始,然后继续你需要的各种工具。 或者你可以使用自动化和可配置的工具。 我偏好使用ptxdist ,因为它具有正确的复杂度级别(供我使用)。 另一个选项是我不知道的buildroot 。 如果你觉得你需要更强大的东西,也许你可以看看OpenEmbedded 。

我遇到了与嵌入式开发相关的索姆书,但更像是文档化的脚本。 建立一个完整的嵌入式系统是困难的,我想你会发现在工具和邮件列表中比书中更多的信息。

在某些时候,您需要了解某种级别的ARM汇编语言。 Andrew Sloss等人的“ARM系统开发者指南”是一本非常不错的ARM汇编书籍。

看看www.gnuarm.com 。 Embedded.com在ARM上也有一些文章。

如果您有TS-7000系列电路板,您可能需要订阅TS-7XXX邮件列表 。

另一个伟大的嵌入式Linux资源是由该书的作者运行的嵌入式Linux:硬件软件和接口 。 他提供了几个与嵌入式Linux一起工作的示例,其中大部分是在TS-7XXX平台上运行的。

我认为这取决于你要开发什么样的应用程序。

对于Linux(而不是Android)和应用程序,ARM设备没什么特别之处,我不认为除了构建工具链之外,您不需要任何特定于ARM的知识。 像Ubuntu和Arch这样的发行版本都有基于ARM的版本,他们版本库中几乎所有与开发相关的软件包都可以与ARM一起工作。

对于使用诸如相机,加速计等设备的应用程序,如果他们在Linux上有驱动程序,那么没有什么可担心的。

你真正需要关心的是在Linux上没有驱动程序或非常廉价驱动程序的硬件组件,在这种情况下,你必须直接与设备通信。 您可能需要在内核中工作或使用ioctl类似的界面。 然后ARM内存管理,I / O管理(mem映射,探测等),中断编程是你需要学习的。 只需在供应商的网站上找到您的CPU的手册,就像找到Intel x86或x64开发手册一样。