Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
21 years ago

Best choice for a Nios II OS?

Hello all -

I'm currently in the research phase of a project where we are trying to deterimine what, if any, Operating System would be best suited for our application when used with the Nios II.

The following are some details about my requirements that will, hopefully, generate some additional feedback on this forum and help guide me towards the best Operating System (OS) selection for our application. I realize that the best choice may be not to use an OS at all and just let the application free run from main().

The project is based on a previous generation of product that uses the Stratix FPGA's and is in the early preliminary design stage. Here is a summary of our basic requirements for the embedded controller as I understand them now:

Required capabilities:

- Access to all Stratix-based registers that were previously accessed via an external controller

- User Interface (UI) comms. to a host PC via an external USB 2.0 device controller

- Compact Flash Interface (CFI) for removable storage

- Control of at least one I2C, SPI, and SMBus device

- Transfer data stored in SDRAM, via the external USB 2.0 controller, to the host PC >= 10 MBytes/sec.

Additional capability wish list:

- 10/100/1000 Base-T Ethernet support for alternate UI comms.

- Flash File System support for CFI

- Calculate up to 256, 14-bit digital filter coefficients using single-precision floating point multiplies

- Perform 2048-point FFT's every 200 milliseconds.

- Provide a USB 2.0 hosting capabilty that allows data to be directly transferred to an USB 2.0-enabled HDD with the need for a host PC.

In the past I have developed several "simple" embedded systems that had several real-time requirements associated with them. Meeting these real-time requirements usually meant developing several routines in assembly in order to maximize each clock cycle of the processor. Currently I'm personally not comfortable enough with any real-time OS (e.g. MicroC/OS-II) to feel that I can develop, based on the real-time requirements, my timing budgets and write the associated routines knowing how long that routine will take to execute (within some reasonable amount of accuracy). I can see how my comfort level would change once I start to use an OS and realize, over time, that the processing times are very deterministic. I'm sure there are lot of users out there who can share their experiences (good and bad) when using OS's that claim to produce determinstic processing results.

I realize that each designer may implement a different set of subjective priorities, based on his/her personal experiences, when evaluating an Operating System for their application (e.g. Memory footprint, cost, availability of development/evaulation systems technical support, etc.?). But any comments/opinions would be appreciated.

Regards,

Brad.
No RepliesBe the first to reply