Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I am working on a project involving the following with my team:
GUI and a keyboard for user interaction.
Real-time processing and display.
SPI communication.
USB-based printing.
1, 2 and 3 are to be done in parallel.
Currently we are using Raspberry Pi. But R-pi is lagging in doing the job. So any other embedded processor meeting the above specs and should be less than $100.
Any suggestion would be highly appreciated.
PS: Do ask questions if I'm vague in my statements.
Your lack of real-time response probably has more to do with the fact that Linux is not a real-time OS than the performance of the RPi. You can throw processing power at the problem if you like, but it still may not reliable solve your problem.
It is not possible to advise based on the little information you have provided; you'd need to define the real-time response requirements in terms of time and quantity of data to be processed.
While an RTOS might solve your real-time processing problems, that would need you needing drivers for the USB printer, display, and a GUI implementation, these are readily available for Linux, but not so much for a typical low-cost RTOS, especially a USB printer driver, since the raster-image processing required is complex and resource hungry - resources a typical Linux system will have.
If you have the necessary time and skill, you could port RTLinux to RPi (or some other board capable of supporting Linux). It has a different scheduler to the standard time-sharing kernel, and can be used to improve real-time response, but it is no substitute for a real RTOS for deterministic performance.
You may be better off using the RPi and connecting it to a stand-alone microcontroller to perform the hard real-time processing. There are a number of project examples connecting an Arduino to RPi for example. The lower clock rate does not mean slower response since the processor can be dedicated to the task and will not non-deterministically switch to some other task for long periods.
Try the beaglebone black. Its 1GHz processor should be more then sufficient to do your processing. Also it is ARM7, Ubuntu dropped support for ARM6 (Pi) a couple of months ago.
http://beagleboard.org/products/beaglebone%20black
Related
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 6 years ago.
Improve this question
I was looking to benchmarks and I can't see a difference. OpenGL 4.5 is same with Vulkan. Can an API effect the graphics quality?
It is a bit broad, but it cannot hurt to have The Motivation question answered.
This official video presentation discusses some of the differences: https://www.youtube.com/watch?v=iwKGmm3lw8Q
Vulkan API is a complete rework.
It also gives the programmer more control (but doing so requires him to do more, and know more).
Because of the above any graphics application also requires whole-hearted rework. Otherwise the benefits won't simply manifest. I don't keep updated, but I think big engines like UE4 and Unity still work on a way how to incorporate Vulkan in a non-naive manner.
Some benefits can be seen already in benchmarks. Though not in every benchmark. Some workload is fine for OpenGL and so Vulkan cannot show any improvement. Some aplications perhaps add Vulkan support just as an afterthought, making it unfair comparison. Some Vulkan drivers optimization may not be priority (e.g. for older GPU cards).
Main benefit of Vulkan is on the CPU side. It may manifest in other ways than FPS, such as less ventilator noise (temperature), more battery life and simply having more free CPU for other tasks.
Vulkan also gives more control to the programmer. If exploited it may also translate in other non-FPS benefits, like improving input latency and preventing hitching.
Vulkan also requires less of the driver, hopefully making it easier to optimize and GPU companies more willing to adopt it and implement it even on older cards.
Everything being the same (including the program itself as much as it can be), there should be no overall resulting image quality difference. Pixel values can differ slightly here and there though.
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 8 years ago.
Improve this question
Till now I used to think that embedded and real time systems are same. But when I was asked in an interview that what the difference is between the two, I was scared. I can't even get proper answer by searching in web.
It was a poor question perhaps since they are not mutually exclusive; an embedded system may be real-time or it may not. One term describes the physical embodiment of a system, the other describes its performance and response characteristics.
Embedded system describes a system that contains one or more software programmable devices but which is not itself a general purpose computer. Such a system typically has a fixed, single application rather than end-user selected and loaded software (which would make it general purpose).
However "embedded" covers a wide spectrum of systems and is not always easy to define; for example if you were writing the UMTS code for a smartphone, you might reasonably be regarded as an embedded developer, if you were writing Flappy Angry Birds 2.0 for that same phone however, you would not - so a smartphone may be both an embedded system and general purpose computer - depending on your view point. Similarly a hand-held games console's system software is embedded; the games themselves are not I would say.
A real-time system describes a system with deterministic low latency response to input events. An embedded system may be "real-time, or it might not. I would normally use the term "real-time embedded system" to be clear.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 4 years ago.
Improve this question
I'm trying to measure the effects of cpu overcommitting on a KVM setup (both host and guest). I can detect performance is degraded when the number of vCPUs is increased but ideally I want to look at some more objective metric (like CPU Ready in esxtop). Is there an equivalent to esxtop for KVM that provides a similar metric.
There is a fundamental difference between how you monitor VMs in KVM and how you monitor them with ESXi.
Since a lot of people run KVM in Linux, I'm going to assume your underlying OS is a Linux based one.
How to get CPU Ready like functionality with KVM?
With htop enable additional metrics and watch the gu section. This tells you how much CPU usage a guest is using.
Use virt-top which tells you overall CPU usage (among other things) of a guest.
The oversubscription principles that apply to ESXi also apply to KVM. Although KVM does not use CPU bonding (by default) like ESXi does, you still do not want to go more than 1:5 ratio pCPU to vCPU ratio in KVM. Of course, this depends on how much you're utilizing the CPUs. You also do not want to give more CPU cores than necessary either. Start with 1 core and move up.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 8 years ago.
Improve this question
I've read that every manufacturer can produce his own BIOS ,
where to find a specific BIOS interrupts list , and how to know my PC's BIOS version?
there's a lot ( IBM , AT&T , ..)
And it's really strange that the only reference is RBIL !
where to read "ALL" interrupts of specific version ?
Most BIOS vendors are compatible with the original IBM PC BIOS source, but that is a convention, not a rule. Many BIOS vendors will offer their own extended/undocumented BIOS calls.
If you are simply trying to boot, read disk sectors, print characters on the screen, etc, you should be able to manage that without having to know which specific BIOS you are running on. After all, they must be similar enough for DOS to boot!
If you really want to know what specific BIOS you have, you can look in the BIOS POST or setup screens. Look for a version or ID string. Otherwise, you can boot Windows and run the System Information tool, which can tell you. Otherwise, you can dump the F000 segment to a file and run the "strings" utility on it. Again, you probably do not need to know this, because it is irrelevant for 99% of the basic PC operations.
My favorite reference for BIOS and DOS interrupts is the Programmer's PC Sourcebook (Second Edition). It's long out of print, but I think you can still find used copies on Amazon. There are other books out there, but this is the one on my bookshelf that I have used for the last 10+ years.
If you are adverse to spending money, the Ralf Brown Interrupt List (RBIL), seems pretty comprehensive, but I have never used it personally.
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
As far as I understand it, embedded software is just software (that runs on a general purpose CPU) that has little if any user input or configuration. Embedded software powers IP routers, cars, computer mice, etc.
My question is:
When (roughly) was the historical moment when embedded software was first considered cost-effective for some applications (rather than an equal technical solution not involving embedded software)? Which applications and why?
Detail: Obviously there is a tradeoff between the cost of a CPU fast enough to perform X in software versus the cost of designing hardware that performs X.
Embedded systems date from the Apollo moon landings. Specifically the Apollo Guidance Computer (AGC) - widely held to be one of the first examples of embedded systems.
Commercially in the early 1970's early microprocessors were being employed in products, famously the 4-bit Intel 4004 used in the Busicom 141-PF. Bill Gates and Paul Allen saw the potential for embedded microprocessors early with their pre-Microsoft endeavour the Traf-O-Data traffic survey counter.
So I would suggest around 1971/72 at the introduction of the Intel 4004 and the more powerful 8-bit 8008. Note that unlike the more powerful still Intel 8080 which inspired the first home-brew microcomputers and the MITS Altair, the 4004 and 8008 were barely suitable for use a general purpose "computer" as such, and therefore embedded computing systems pre-date general purpose microcomputers.
I would dispute your characterisation of what an embedded system is; if you were asking that question here's my answer to a similar question.