Before you begin designing your system, here are some typical questions you might consider:
Naturally, your particular system will dictate whether all of these (or others) are relevant. But for the purposes of this discussion, we'll assume all these considerations apply.
If at all possible, try to prototype the system on either a standard PC (in the case of x86-based designs) or a supported evaluation board (in the case of x86 and ARM designs). This will very quickly give you a "feel" for the speed of a particular processor.
Graphics controllers are one of the particularly delicate areas in the design of an embedded system, often because a chip may be very new when it's selected and we may not yet have a driver for it. Also, if you're using a graphics controller in conjunction with an LCD panel, beware that this is perhaps the most complicated setup because of the many registers that must be programmed to make it work.
Note that QNX Software Systems can do custom development work for you; for more information, contact your sales representative. Other consulting houses offer similar services to the QNX community.
We recommend that you install some form of easy-to-get-at hardware debugging port, so that the software can output diagnostics as it's booting. Generally, something as simple as a latched output that can drive a single LED is sufficient, but an 8- or 16-bit port that drives a number of 7-segment LEDs would be even better. Best of all is a simple serial port, because more meaningful diagnostics can be written by the software and easily captured.
This debug port can be left off for final assembly or a slightly modified "final" version of the board can be created. The cost savings in terms of software development time generally pay for the hardware modifications many times over.
You may need such a vehicle for your update software even during your initial software development effort. At this early phase, you'll effectively be performing "field upgrades" as your software is being developed.
The target requirements vary depending on your intended usage. The bare minimum requirements for generic x86 target systems are:
We also support non-BIOS IPL for x86 on specific processors and chipsets, but you should ask us about your exact target configuration.
For requirements for non-x86 targets, see the Board Support Packages that we provide; the target boards that we support represent a cross section of the minimum hardware (in terms of DRAM, CPU/SoC performance, storage space, etc.) that we require. If you're considering another board, ask us to help analyze it.