Saturday, May 19, 2012

Embedded Software Versioning

Ureka!  I've been thinking about the best way to version embedded software when you release it.  Here you go:


Major corresponds to the PCB or product build.
Minor corresponds to the release number.
Sub corresponds to the release iterative release if the Minor number has been branched.

So you are building a product.  There will be 4-5 different prototype  builds of the product before it hits production.  The major number represents the prototype build the software will programmed on.  This could be just for the PCB, or a prototype build of the enitre product.  Usually these are a big deal, thus getting the major revision.

Minor is for subsequent software releases number after the build.  So the third prototype build comes back with your software preprogrammed on it (version 3.0.0).  Then you make more releases intended for this build (3.1.0, 3.2.0, 3.3.0) as development and testing continues.

Sub is if you have to branch a minor release to keep the software stable if there are any major features to be added between minor releases.  Ie 3.1.1, 3.1.2, 3.1.3 gets released for tester to regress bugs, while the code is taken apart and put together again for release 3.2.0.  Then of course, all the xx.1 xx.2 and xx.3 changes will need to be merged in at some point.

Another way to describe this: Major subdivides the project by hardware build, Minor subdivides it by software releases, and sub allows a scheme to fix bugs and do sub releases to QA

Yes, this is very similar to regular software version numbering.  But the major is associated with hardware platform.

Would everyone agree with this scheme?  Probably not, and I think that is okay.  You see, revision numbering isn't a one-size-fits-all system.  It all depends on the end-user of the version number.  Who will be using the version number, and what organiziation concepts they will expect of it.  This isn't the same for every industry.

Okay, time for some rest.


  1. This comment has been removed by a blog administrator.

  2. Typically the operating speeds have recently been increased and the memory the OS takes alcoda software upwards while performing daily jobs in the back has been greatly decreased meaning you have a smarter more efficient PC.

  3. These are the main types of software testing and each of them are important. Filehippo

  4. These are the main types of software testing and each of them are important
    igg games

  5. I am very Thankful to The Admin and Please Buddy Share your Knowledge Time to Time .
    file hippo
    File hippo
    Download Free PC Software
    File hippo

  6. Normally those operating speeds need as of late been expanded and the memory the os takes alcoda product upwards same time performing Every day occupations in the go need been significantly diminished significance you bring a smarter a greater amount productive pc.

  7. i had been impressed by this article.. thanks for sharing it

  8. This comment has been removed by the author.

  9. I would like to say this is a well-informed article as we have seen here. Your way of writing is very impressive and also it is a beneficial article for us. Thanks for sharing an article like this.IT Service Provider in Noida Uttar Pradesh

  10. I read this article, it is really informative one. Your way of writing and making things clear is very impressive. Thanking you for such an informative article.IT Help Desk Companies site.

  11. Top Casinos in Miami - Mapyro
    Miami's famous restaurants are packed 영주 출장안마 with quality food, entertainment and a 안양 출장안마 full-service spa. This property is 나주 출장안마 the 과천 출장샵 closest to Miami Beach. 안산 출장마사지