I'm quite a beginner to embedded systems, but am eager to learn more. I've used an Arduino previously and quite recently purchased a Raspberry Pi (but not used it as much). I have numerous questions that I haven't found answers to when using Google, thus the post! I'd appreciate any insight (apologies in advance if my questions seem too naive!).
Recently, I've been working on some image processing code using a few image processing libraries. My code is written using C++ in Visual Studio on Windows XP. My program uses multi-threading capabilities at various stages primarily because some of the processing tasks are quite time consuming. My intention is to transfer this working code and install the back-end libraries (OpenCV, Boost etc.) onto an embedded system that is merely connected to a camera.
- From my search, it seems that the top of the line, embedded system are at a maximum of 500 Mhz (http://microcontrollershop.com/product_info.php?products_id=3790). This really surprises me, we have i7 Quadcore PCs running at 2.5 Ghz available quite commonly for Laptops/Desktops. Why haven't embedded systems caught up to this increase then? Also they maximum memory I've seen is 500 MB. Again, desktop PCs average at-least 4 to 8 GB commonly. Do we get dual/quad-core embedded systems? What is the top of the line system currently available?
- To allow for an initial easy transition, I've heard that XP Embedded or Windows Embedded 7 Standard (embedded variant of Win 7) are alternatives. Here is a difference chart. However, I've read at a few places that Windows Embedded 7 has more RAM support and thus I am inclined to it for that reason alone. Can someone add to this please? I know I could use Linux Embedded or VxWorks as well, but at this point I believe I would run into numerous OS related issues with my code if I continued and perhaps the libraries might not be supported ...
- I've come across PC-104 systems a few times in my searches. Reading about this, it seems to be standard. Are there better alternatives? I'm a little confused with the top-of-the-line ARM processors I've found since I don't think they satisfy the minimum hardware requirements to run the OS (1 GHz x86 or amd64 processor).
- My main reason to transition to this is to learn something cool in the process and have a dedicated solution that is headless and designed to perform just one specific task (hopefully in a real-time manner).