Embedded Software – NXP, STM, Atmel & PIC

Embedded NXP STM ATMEL PIC software

CREATING UNIQUE DIGITAL EXPERIENCES

Since 2020

Embedded Software Solutions
Embedded software solutions for STM, NXP, PIC, Atmel and virtually any other processor...
Embedded Software Design
Design
Embedded Software Testing
Software written by our embedded software engineer is verified by our dedicated test engineer.
software

Embedded Software Solutions

We provide embedded software development and support for your NXP and ST processors. The Oxa software team can deliver software on its own or together with the circuit design.

Once you have defined your requirements, please do not hesitate to contact us.

Step-by-Step Embedded Software Design

Every embedded software project follows a structured process – from defining the requirements to final checks and long-term support.

Requirements are defined together with you based on the target device and the tasks the processor must perform, and the whole project is managed online with you throughout.

Each step is tested and documented, so the firmware we deliver is reliable, maintainable and ready for production.

Step 1 – Defining Requirements

Requirements are defined according to the target device and the tasks the processor must perform. This is managed online together with the customer throughout the project.

Step 2 – Building the Algorithm

The embedded software algorithm is built according to the defined requirements.

Step 3 – Writing the Firmware

The firmware is written in an editor according to the algorithm. The completed firmware then moves on to testing.

Step 4 – Software Testing

Any gaps or errors found during testing are recorded as notes or a report. The embedded software test engineer passes the report to the developer, so issues are fixed quickly.

Step 5 – Final Checks

The software completed by the software and test engineers undergoes final checks with the assembly team. The first version is then added to the file management system for delivery to the customer.

Step 6 – Long-Term Support

Software work is carried out on a short- or long-term basis, as agreed.
software-price

Defining Requirements and the Algorithm

An algorithm can be thought of as the sequence of code that makes an electronic board work according to the customer’s requirements.

The overall structure is built from flowcharts or pre-written software function blocks.

Requirements that cannot be verified otherwise are simulated on a computer.

Where possible, tests are also carried out on real-time systems.

Only structures and algorithm blocks that are proven to work move on to the coding stage.

Embedded Software

Software is the name given to the blocks of code that make a device work as intended. It can be written in different languages, most commonly C – which is also our language of choice. You can find detailed information about embedded software via this link.

Coding is based on the structure obtained from the algorithm and simulation tests. Functions are written independently of one another to keep the computational load as low as possible. Programming can be carried out directly on the board or over a remote connection. The software is then sent for testing to validate the finished board.

software
electronic board test

Software Testing

Testing is one of the most important steps in software development – effectively, the test process for the finished device.

Device-specific algorithms and code are tested section by section: the board’s power stage, processor, communications and, finally, the power electronics.
The device then undergoes long-term testing, which can last from one hour to three months depending on its specification.

Once testing is complete, the device is sent for customer acceptance. Depending on the number of units produced, the software is either programmed onto the devices or delivered to the customer together with documentation.

Long-Term Support

After your software is released, we can provide long-term support for your company, deliver weekly or monthly updates and run daily tests using online tools. You can also find our reporting and consulting services here.

consulting

Contact Form

What You Should Know About Embedded Software

1. How is embedded software coded?

Many languages have been used for embedded software since the early days of semiconductors. C stands out for being simple and readable, and it contains code and structures that map closely to machine language.

Programs written in an editor are converted into microprocessor code by compilers. The processor executes this code according to its structure and the processor’s capabilities, controlling its interfaces – which in turn control the connected hardware.

2. Which processors do you use?

There are thousands of processors from dozens of manufacturers. In terms of performance, 32-bit ARM processors stand out. We mainly use NXP and ST processors, which offer excellent value for money, and can work with other processors at the customer’s request.

3. How long does embedded software development take?

It is hard to give a precise figure. Work similar to previous projects may take only a few days, while brand-new products can take weeks or even months. It depends entirely on the application and requirements.

Once all the details are agreed at the contract stage, the delivery date is written into the contract. Where appropriate, an open-ended timeline can also be agreed.

4. Which editor do you use for embedded software?

There are dozens of development environments, many of which can be downloaded and installed free of charge – for example Visual Studio, STM32CubeIDE and Keil – alongside helpful editors such as Notepad++ and Visual Studio Code.

Free software tools are becoming increasingly common. For ST processors, our preferred environment is STM32CubeIDE.

5. How is the software delivered?

The libraries we have built over many years allow us to produce competitive products quickly and cost-effectively. For this reason we do not share source code or libraries (except demo code). Instead, we deliver the compiled original firmware for your electronic board.

Parts of the source code used on the processor can be shared under contract, although this can significantly increase the service fee, so we do not generally recommend it for small and medium-sized businesses.

6. How do you price embedded software?

Pricing is usually based on time and depends directly on the complexity of the project. For small and medium-sized businesses, embedded software typically costs between USD 500 and USD 5,000 on average. More complex projects can exceed tens of thousands of dollars – it is determined entirely by the project.

7. How is embedded software loaded onto the processor?

There are several methods. Firmware is usually loaded using intermediate hardware called a programmer, the most popular being ST-Link and PICkit 3. Segger programmers offer excellent performance but are somewhat less common in Türkiye.

The programmer connects to the board via the JTAG or SWD pins, which give direct access to the processor. Depending on the processor, firmware can also be loaded over USB using the boot pin. This is usually the customer’s preferred method after project delivery, as it removes the need for a separate programmer.

Kind regards,
The Oxa Software Team