使用NO OS在MINI2440上运行可执行文件

时间:2015-03-27 11:07:38

标签: arm embedded embedded-linux

我在PC上安装了Fedora,我有一个Friendly ARM Mini2440板。我已经成功安装了Linux内核,一切正常。现在我有一些图像处理程序,我想在没有操作系统的情况下在板上运行。在船上运行的唯一过程应该是我的程序。在该程序中,如何访问板载摄像头以从中获取图像,以及串行端口将输出发送到PC。

2 个答案:

答案 0 :(得分:1)

您正在谈论通常称为 bare-metal 的环境。 Google可以为您提供帮助,例如here。在裸机环境中,您必须充分了解硬件,因为您必须处理操作系统通常处理的许多事情。

我一直在为ELLCC交叉开发工具链的裸机支持工作(关闭和开启)。我有很长的ARM实现,但仍有很多工作要做。我在blog上写了一些关于我的经历。

首先,您必须启动程序。您需要编写一些启动代码(通常在汇编中),以便在处理器复位(或启动)时处理初始化。然后,启动代码通常将控制权交给用C编写的代码,最终直接或间接调用main()函数。进入main()是您裸机冒险的重要一步!

接下来,您需要决定如何支持您的硬件I / O设备,在您的情况下,包括相机和串行端口。您的图像处理需要多少标准C(或C ++)库?您可能需要为通常需要某种OS支持的printf()或malloc()等函数添加一些支持。一个简单的'#hello world"接下来尝试是件好事。

ELLCC在examples目录中提供了各种级别的ARM裸机的示例。它们的范围从简单的main()到MMU和TCP / IP支持。可以浏览所有内容的来源here

我在今天早上离开工作之前开始写这篇文章并没有时间完成。 dwelch和Clifford都有很好的建议。引导程序可能会使您的工作变得更加简单,并且硬件上的文档也很重要。

答案 1 :(得分:0)

首先,您必须意识到,如果没有操作系统,您有责任将电路板从复位状态启动,包括配置PLL和SDRAM,以及您希望使用的电路板上每个器件的驱动程序代码。要做到这一点,需要有足够的电路板及其设备文档。

您可以使用现有的引导加载程序来配置内核和SDRAM,但这可能不符合您对板上运行的唯一进程的要求应该是您的图像处理程序。

此外,您还需要一些加载和引导的方法;再次,现有的Linux引导程序可能适合。

这绝不是直截了当的,不能在这里详细描述。