简体   繁体   English

嵌入式应用

[英]embedded application

In the last two months I've worked as a simple application using a computer vision library(OpenCV). 在过去的两个月里,我使用计算机视觉库(OpenCV)作为一个简单的应用程序工作。

I wish to run that application directly from the webcam without the need of an OS. 我希望直接从网络摄像头运行该应用程序,而无需操作系统。 I'm curious to know if that my application can be burned into a chip in order to not have the OS to run it. 我很想知道我的应用程序是否可以刻录到芯片中,以便不让操作系统运行它。

Ofcorse the process can be expensive, but I'm just curious. 这个过程可能很昂贵,但我只是好奇。 Do you have any links about that? 你有任何相关的链接吗?

ps: the application is written in C. ps:应用程序是用C语言编写的。

我使用比PIC更大的东西,例如小型32位ARM处理器。

I think you'll find this might grow into pretty large project. 我想你会发现这可能会成长为一个相当大的项目。

It's obviously possible to implement a stand-alone hardware solution to do something like this. 显然可以实现独立的硬件解决方案来做这样的事情。 Off the top of my head, Rabbit 's solutions might get you to the finish-line faster. 在我的头脑中, 兔子解决方案可能会让你更快地到达终点线。 But you might be able to find some home-grown Beagle Board or Gumstix projects as well. 但您也可以找到一些本土的Beagle BoardGumstix 项目

Two Google links I wanted to emphasize: 我想强调的两个谷歌链接:

Yes. 是。 It is theoretically possible to port your app to PIC chips. 理论上可以将您的应用程序移植到PIC芯片。

But... 但...

There are C compilers for the PIC chip, however, due to the limitations of a microcontroller, you might find that the compiler, and the microcontroller itself is far too limited for computer vision work, especially if your initial implementation of the app was done on a full-blown PC: PIC芯片有C编译器,但是,由于微控制器的局限性,您可能会发现编译器和微控制器本身对计算机视觉工作的限制太大,特别是如果您的应用程序的初始实现是在一台成熟的PC:

  • You'll only have integer math available to you, in most cases, if not all (can't quote me on that, but our devs at work don't have floating point math for their PIC apps and it causes many foul words to emanate from their cubes). 在大多数情况下,如果不是全部的话,你只能得到整数数学(不能引用我的话,但是我们的工作开发人员没有针对他们的PIC应用程序的浮点数学,它会导致许多错误的单词从他们的立方体发出)。 Either that, or you'll need to hook to an external math coprocessor. 要么是这样,要么你需要挂钩外部数学协处理器。

  • You'll have to figure out how to get the PIC chip to talk USB to the camera. 您必须弄清楚如何让PIC芯片与相机进行USB通话。 I know this is possible, but it will require additional hardware, and R&D time. 我知道这是可能的,但它需要额外的硬件和研发时间。

  • If you need strict timing control, you might even have to program the app in assembler. 如果您需要严格的时序控制,甚至可能需要在汇编程序中对应用程序进行编程。

  • You'd have to port portions of OpenCV to the PIC chip, if it hasn't been already. 您必须将部分OpenCV移植到PIC芯片(如果尚未安装)。 My guess is not. 我的猜测不是。

  • If your'e not already familiar with microcontroller programming, you'll need some time to get up to speed on the differences between desktop PC programming and microcontroller programming, and you'll have to gain some experience in that. 如果您还不熟悉微控制器编程,那么您需要一些时间来快速了解台式PC编程和微控制器编程之间的差异,并且您必须获得一些经验。 This may not be an issue for you. 这对您来说可能不是问题。

Basically, it would probably be best to re-write the whole program from scratch given a PIC chip constraint. 基本上,考虑到PIC芯片约束,最好从头开始重新编写整个程序。 Good thing is though, you've done a lot of design work already. 好的是,你已经做了很多设计工作。 It would mainly be hardware/porting work. 它主要是硬件/移植工作。

OR... 要么...

You could try using a small embedded x86 single-board PC, perhaps in the PC/104 form factor , with your OS/app on a CF card. 您可以尝试使用小型嵌入式x86单板PC(可能是PC / 104外形) ,将您的操作系统/应用程序放在CF卡上。 It's a real bone fide PC, you just add your software. 这是一个真正的骨头PC,你只需添加你的软件。 Good thing is, you probably wouldn't have to re-write your app, unless it had ridiculous memory footprint. 好的是,你可能不必重写你的应用程序,除非它有可笑的内存占用。 Embedded PC vendors are starting to ship boards based on 1 GHz Intel Atoms, and if you needed more help you could perhaps hook a daughterboard onto the PC-104 bus. 嵌入式PC供应商开始出货基于1 GHz Intel Atoms的主板,如果您需要更多帮助,您可以将子板连接到PC-104总线上。 You'll work around all of the limitations listed above, as your using an equivalent platform to the PC you developed your app on. 您将解决上面列出的所有限制,因为您使用的是与您开发应用程序的PC相同的平台。 And it has USB ports! 它有USB端口! If you do a thorough cost analysis and if your'e cool with a larger form factor, you might find it to be cheaper/quicker to use a system based on a SBC than rolling a solution using PIC chips/microcontrollers. 如果您进行全面的成本分析,并且如果您使用更大的外形尺寸,那么您可能会发现使用基于SBC的系统比使用PIC芯片/微控制器滚动解决方案更便宜/更快。

A quick search of PC-104 on Google would reveal many vendors of SBCs. 在谷歌上快速搜索PC-104可以揭示许多SBC供应商。

OR... 要么...

And this would be really cheap - just get a off-the-shelf cheap Netbook , overwrite the OEM OS, and run the code on there. 这将是非常便宜的 - 只需获得现成的廉价上网本 ,覆盖OEM操作系统,并在那里运行代码。 Hackish, but cheap, and really easy - your hardware issues would be resolved within a week. Hackish,但便宜,而且非常简单 - 您的硬件问题将在一周内得到解决。

Just some ideas. 只是一些想法。

I would second Nate's recommendation to take a look at Rabbit's core modules. 我会提出Nate的建议,看看Rabbit的核心模块。

Also, GHIElectronics has a product called the Embedded Master that runs .Net MicroFramework and has USB host/device capabilities built-in as well as a rich library that is a subset of the .Net framework. 此外,GHIElectronics还有一款名为Embedded Master的产品,它运行.Net MicroFramework,内置USB主机/设备功能,以及作为.Net框架子集的丰富库。 It runs on an Arm processor and is fairly inexpensive (> $85). 它运行在Arm处理器上并且相当便宜(> 85美元)。 Though not nearly as cheap as a single PIC chip it does come with a lot of glue logic pre-built onto the module. 虽然不像单个PIC芯片那么便宜,但它预先在模块上预先安装了许多胶合逻辑。

CMUCam CMUCam

I think you should have a look at the CMUcam project, which offers affordable hardware and an image processing library which runs on their hardware. 我想你应该看看CMUcam项目,该项目提供价格合理的硬件和在其硬件上运行的图像处理库。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM