AND Technology Research Ltd.
4 Forest Drive, Theydon Bois
Essex. CM16 7EY. UK
+44 (0) 1992 814655 | Tel
 

 

 

Software & Firmware
Software & Firmware

So first off what's the difference? In very basic terms firmware describes the fixed, typically compact code that is embedded into various electronic devices, controlling them internally; where software depicts code that performs set tasks on an operating system.

As the dependence on firmware & software into today's cutting edge products intensifies, so ANDs platform of code development services has diversified. Initially starting out developing inventory & point-of-sale (POS) software for Bookshops AND today offers a complete portfolio of software & firmware development services.

Analysis

Gaining an understanding of the problem & identify the right type of software that could be constructed for your project are important factors in determining the ultimate success of a product. Options include:

Firmware to run on a microcontroller (MCU), microprocessor (MPU), etc.
Software to run on a PC, Apple Mac or Linux machine.
VHDL/pre-programmed logic to run on FPGA, CPLD, etc.

At AND, strong emphasis is put into understanding exactly 'what problem is trying to be solved', investigating possible solutions & working closely with the client to determine the best solution.

Definition & specification

Be it developing a new product or upgrading a faithful best seller decisions about authoring new software, re-engineering existing software or using off-the-shelf software stacks have to be taken. Similarly the tools to be used, operating system, etc., must also be defined.

AND offer full project definition & specification facilities to define the specific requirements of a new project incorporating software/firmware. Once the specification has been defined, written descriptions, lists , &/or UML diagrams showing the logic blocks & the means by which they will be constructed, sourced & authored can all be produced.

Coding

Generation of the all-important source code, while on the face of it a seemingly straight forward task, actually requires in-depth knowledge of software development & system architecture in order to produce a robust, reliable & ultimately user-friendly end product.

ANDs team of professional software & specialist embedded engineers have a wealth of experience in developing firmware, software & programmable logic code for a range of real-world applications. As you can imagine over the years AND has built up considerable expertise in a number of programming languages to meet project needs, including:

Assembler
'C', C++, C#
VHDL
Java
Visual Basic

Simulation

Numerous studies have shown that as project complexity grows, hardware availability & software/firmware integration are two key barriers to keeping development times short & cost low. Simulation techniques offer real gains in these critical areas.

ANDs design & development experience has led to the development of the 'virtual prototyping' technique, where a working simulation of a product is developed for the client on the PC using custom software running in the Windows environment. Not only does this allow for features to be trialled long before a physical model could be built, but the code driving the simulation/virtual prototype will actually be used in the final product, so testing can take place at an advance stage.

Virtual prototype
The life of a simulation/virtual prototype can extend beyond the design modelling stage, & indeed past experience has shown it as a useful tool for clients when it has come to customer demonstrations, market assessments, product verification & product testing.

Testing & debugging

Structured, rigorous testing of developed software/firmware is paramount to delivering a high quality product. At AND, the testing specification is given then same emphasis as the requirements specification & if not already in existence, is developed directly after the requirements specification. While both these documents are not always set in stone & subject to change as a result of new requirements, discoveries, etc., at AND they are rigidly linked to each other, ensuring the customer is delivered a reliable, robust design.

AND define test cases, or scenarios, using known input data that checks the logic of the software/firmware against expected results. By recording anomalies at various planned stages throughout the design cycle, discrepancies are found early on & corrective action can be made quickly, easily & importantly cost-effectively.

 
 

So first off what's the difference? In very basic terms firmware describes the fixed, typically compact code that is embedded into various electronic devices, controlling them internally; where software depicts code that performs set tasks on an operating system.

As the dependence on firmware & software into today's cutting edge products intensifies, so ANDs platform of code development services has diversified. Initially starting out developing inventory & point-of-sale (POS) software for Bookshops AND today offers a complete portfolio of software & firmware development services.

Analysis

Gaining an understanding of the problem & identify the right type of software that could be constructed for your project are important factors in determining the ultimate success of a product. Options include:

Firmware to run on a microcontroller (MCU), microprocessor (MPU), etc.
Software to run on a PC, Apple Mac or Linux machine.
VHDL/pre-programmed logic to run on FPGA, CPLD, etc.

At AND, strong emphasis is put into understanding exactly 'what problem is trying to be solved', investigating possible solutions & working closely with the client to determine the best solution.

Definition & specification

Be it developing a new product or upgrading a faithful best seller decisions about authoring new software, re-engineering existing software or using off-the-shelf software stacks have to be taken. Similarly the tools to be used, operating system, etc., must also be defined.

AND offer full project definition & specification facilities to define the specific requirements of a new project incorporating software/firmware. Once the specification has been defined, written descriptions, lists , &/or UML diagrams showing the logic blocks & the means by which they will be constructed, sourced & authored can all be produced.

Coding

Generation of the all-important source code, while on the face of it a seemingly straight forward task, actually requires in-depth knowledge of software development & system architecture in order to produce a robust, reliable & ultimately user-friendly end product.

ANDs team of professional software & specialist embedded engineers have a wealth of experience in developing firmware, software & programmable logic code for a range of real-world applications. As you can imagine over the years AND has built up considerable expertise in a number of programming languages to meet project needs, including:

Assembler
'C', C++, C#
VHDL
Java
Visual Basic

Simulation

Numerous studies have shown that as project complexity grows, hardware availability & software/firmware integration are two key barriers to keeping development times short & cost low. Simulation techniques offer real gains in these critical areas.

ANDs design & development experience has led to the development of the 'virtual prototyping' technique, where a working simulation of a product is developed for the client on the PC using custom software running in the Windows environment. Not only does this allow for features to be trialled long before a physical model could be built, but the code driving the simulation/virtual prototype will actually be used in the final product, so testing can take place at an advance stage.

Virtual prototype
The life of a simulation/virtual prototype can extend beyond the design modelling stage, & indeed past experience has shown it as a useful tool for clients when it has come to customer demonstrations, market assessments, product verification & product testing.

Testing & debugging

Structured, rigorous testing of developed software/firmware is paramount to delivering a high quality product. At AND, the testing specification is given then same emphasis as the requirements specification & if not already in existence, is developed directly after the requirements specification. While both these documents are not always set in stone & subject to change as a result of new requirements, discoveries, etc., at AND they are rigidly linked to each other, ensuring the customer is delivered a reliable, robust design.

AND define test cases, or scenarios, using known input data that checks the logic of the software/firmware against expected results. By recording anomalies at various planned stages throughout the design cycle, discrepancies are found early on & corrective action can be made quickly, easily & importantly cost-effectively.