No matter what industry you’re in, chances are the competition is fierce. If you’re an embedded software developer that means you’re under pressure not only to get the job done faster than ever before, but more effectively than ever before. That means delivering software that has higher performance and fewer “bugs.”
Your ability to do this is often a function of the embedded software design tools that you’re using. You need tools that help you build software quickly and efficiently, not get in the way. You need tools that you can use without a lot of “work-arounds” or less than optimal features.
To help you select the embedded software design tools that are right for your company, here are the five most important features to consider.
Feature #1: Device/core support
The first thing that you need to do is to make sure that the software you select supports the right devices. To do this, first make a list of the devices that you’re currently using in your products. Then, check to see if the embedded design software that you want to purchase supports those devices.
It may be that the new software need not support devices used in older products. The tools that you already have in place may be sufficient because you will only be maintaining that software, not developing new applications with them.
Next, consider the devices that you’ll be using in the future. You will want the embedded design software that you purchase to also support those devices or that family of devices. You don’t want to purchase new tools every time you start using a new device as it’s very costly to have to train developers how to use a new development tool.
Feature #2: Ease of use
Ease of use is also a very important feature. Tools that are difficult to use can be frustrating for developers and lengthen development times.
To ensure that embedded design software is easy to use, download it and try it before purchasing. Most vendors offer a free 15-30 day evaluation period, and it is a good idea to put the software to the test before purchasing it.
To do this, set up a trial project. It needn’t be very complicated – you have only 30 days, after all – but the trial should be complex enough for developers to get a feel for how easy the editor supports code development tasks and how quickly a compiler compiles code.
In your evaluation, don’t use the “canned” projects that come with the software packages. These have often been optimized by the vendors to run quickly and compile into efficient code. They’re really not a good test.
Feature #3: Support for common functionality
After you’ve tested a software package for ease of use, check out the support for the different functionality that you’ll need. This might include support for a real-time operating system (RTOS), and communications hardware and software, such as USB, TCP/IP, and Bluetooth. If your designs require this functionality, and your embedded design software doesn’t offer support for it, you’ll spend a lot of time and money designing your own solutions.
Another feature that may be important in your application is support for functional safety standards, such as ISO 26262, which provides guidance for software tool qualification. If this is important to you, look for a tool that provides a solution that supports both “increased confidence from use” and “validation of the software tool” qualification methods.
Feature #4: Debugging
No one designs perfect software right off the bat. This is especially true with today’s complex, high-performance applications. This means that developers are going to be spending a lot of time debugging their applications and spending a lot of time with the debugger. Debugger capability and speed, therefore, have a big impact on time-to-market. Some features that you might want to look for include:
- Multiple information windows that let you monitor variables, memory, and the stack
- Complex breakpoints that let you halt program executions based on instruction counts, cycle counts, or timer counts
- Save and restore memory that lets you easily return the system to a known condition
Feature #5: Tech support
Finally, consider the type of technical support that a vendor is able to provide. Vendors differ greatly in the type of tech support they provide. Some provide support only in online forums or perhaps by e-mail. While you may eventually get the answers you need via these channels, it may take quite a long time to do so.
We would suggest that you find a vendor that offers good technical support and you can test this during the evaluation period. Send them a support request and see what happens. It doesn’t have to cost more to purchase embedded design software from a vendor who offers good technical support, but it do matter to you if you get into a situation when this support is needed.
Choosing the right embedded software development tools and the right tool vendor can be a challenge. Make sure that the software you choose supports the devices you’ll be using, has the features you need, and the support to back it up. By doing this, you will certainly be more successful in developing embedded software applications.
Mats Pettersson is Senior Embedded Field Application Engineer at Altium Americas.