简体   繁体   中英

How to decide system requirements for embedded systems application/software

How should I decide system requirements like:

  • RAM capacity
  • FLASH memory capacity
  • Processor frequency
  • etc

I am building an application to control NAND FLASH, LCD driver, UART control, keypad control using a 16 bit micro-controller.

This has to be estimated from previous projects with similar functionality. Or even other people's products. But it is best to develop with a larger capacity and decide on final parts when your software nears completion, because its easier to omit components than to try and find room for them later. This kind of design can be an iterative process, start with one estimate and see if a prototype works, don't commit to volumes until you are nearly at the end.

In the case of an LCD based product, you will have two major components using up flash memory, the code and the LCD data (character strings, bitmaps etc). Its certainly easier to estimate the LCD data than the code, which depends on functionality, compiler optimisations etc. If you are bringing in external libraries then at least you already have code for them.

In any case, have an upgrade plan. The worst thing is to run out of capacity at the end of the project and be struggling to optimise the last feature/debug solution in without adding another problem. Make sure you know what the next size up chips are and how you can get them to fit, sometimes a PCB can be designed to take various different chips in the same position. Or have an expandable system, where you can plug things into a memory bus.

How many units will you be making ?

If your volumes are low (<1e3), but per unit profits high and time to market matters, more hardware will get the developers done sooner.

If the volumes are huge (>1e6), profits per unit low, then you penny pinch the hardware, but time to develop will go up. If time to market matters, that's a tradeoff.

Design the board with 2x the capacity (RAM/flash), but don't load the parts, other than to check it works. Then if you run out of room, there is somewhere to go.

Will customers expect to get firmware updates ? Or is this a drop-ship product with no support ? Supportable is harder, needs more resources. You'll need to pad resources to have room to expand into if the product needs support for a long time.

For CPU frequency estimates, how much work is required to be done ?

Get an Eval board for a likely MCU and prove out the core function. Let us say it's a display for a piece of exercise equipment. Can it keep up with the sensors on the device at 2-3x the designed pace ? That's reading the sensors and updating the display. If cost is required to be low, you can then underclock the eval board adn see what trades can be made.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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