Arm 在没有操作系统的MINI2440上运行可执行文件

Arm 在没有操作系统的MINI2440上运行可执行文件,arm,embedded,embedded-linux,Arm,Embedded,Embedded Linux,我的电脑上安装了Fedora,我有一块主板。我已经成功安装了Linux内核,一切正常。现在我有一些图像处理程序,我想在没有操作系统的情况下在主板上运行。板上运行的唯一进程应该是我的程序。在该程序中,我如何访问车载摄像头以从中拍摄图像,以及如何访问串行端口以向PC发送输出。首先,您必须意识到,如果没有操作系统,您需要负责使电路板复位,包括配置PLL和SDRAM,并负责电路板上您希望使用的每个设备的驱动程序代码。要做到这一点,需要对电路板和it设备进行充分的记录 您可以使用现有的引导加载程序来配置c

我的电脑上安装了Fedora,我有一块主板。我已经成功安装了Linux内核,一切正常。现在我有一些图像处理程序,我想在没有操作系统的情况下在主板上运行。板上运行的唯一进程应该是我的程序。在该程序中,我如何访问车载摄像头以从中拍摄图像,以及如何访问串行端口以向PC发送输出。

首先,您必须意识到,如果没有操作系统,您需要负责使电路板复位,包括配置PLL和SDRAM,并负责电路板上您希望使用的每个设备的驱动程序代码。要做到这一点,需要对电路板和it设备进行充分的记录

您可以使用现有的引导加载程序来配置core和SDRAM,但这可能无法满足您的要求,因为主板上运行的唯一进程应该是您的图像处理程序

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


这一点也不简单,也不能在这里详细描述。

您所说的环境通常被称为环境。例如,谷歌可以帮助你。在裸机环境中,您必须对硬件有很好的了解,因为您必须处理操作系统通常处理的许多事情

我一直在(断断续续地)为我的交叉开发工具链提供裸机支持。我在ARM实现方面已经做了相当长的一段时间,但是仍然有相当多的工作要做。我在网上写了一些我的经历

首先,你必须开始你的计划。您需要编写一些启动代码,通常在汇编中,以处理处理器在复位(或通电)后的初始化。然后,启动代码通常将控制权传递给用C编写的代码,这些代码最终直接或间接地调用main()函数。进入main()是您裸机冒险的一大步

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

ELLCC目录中有各种级别的ARM裸机示例。它们的范围从简单的main()到包括MMU和TCP/IP支持。所有这些信息的来源都可以浏览


我今天早上上班前就开始写这篇文章了,没有时间完成。德韦尔奇和克利福德都有很好的建议。引导加载程序可能会使您的工作简单得多,而硬件文档则至关重要。

没有操作系统的程序的术语是独立程序或裸机程序。最明显的问题是“为什么?”为什么我们不关心这个问题……与这个问题无关……首先,你需要弄清楚,如果你还没有开始运行linux的话。请参阅供应商提供的手册。他们最有可能使用像uboot这样的引导加载程序。用击键中断引导,可能会有一个loadx或loady命令,您可以从中下载裸机程序,获取处理器的文档,使用bootloader命令写入uart tx寄存器,查看是否有字符出现,然后从那里开始,谷歌裸机arm或其他。相机是一个更大的问题要解决,但如果你有文档,可能是可行的先生,你是对的,它肯定需要很多时间来消化所有的东西。所以现在我选择了一个非常轻量级的操作系统,['开始使用。这个操作系统只在SD卡中运行可执行文件,并为所有外设提供驱动程序支持。非常感谢。你帮了我很大的忙。先生,你说得对,现在我正在开发()'StartOS'。谢谢你的支持和指导。:)