Hardware and software platforms drive long-term product strategies

By Ray Upton, VP
& GM, Connected MCU, and Zoran Mladenovic, GM, Software Development, Texas
Instruments

A robust software/hardware foundational platform can improve the
return on investment (ROI) in new products by facilitating long-term product
strategies. Getting new products to market quickly is certainly essential, but
microcontrollers (MCUs) that are part of a robust software/hardware platform
will give new products staying power, effectively sustaining a healthy return
on investment over a longer period of time.

Consider the development of a new IoT-enabled product such as a
smart security control panel. By selecting an MCU that not only meets the
performance requirements of the current design but is also part of a family of
devices that share a robust software platform, the developers would be
supported by a broad range of ready-to-deploy software, including low-level
device drivers, middleware modules, operating system kernels, and others (Fig. 1). Instead of having to develop
and integrate some or all of these foundational software modules, the second project
team can spend more time developing exciting features and capabilities that
will make a difference against the competition. They can also reuse their
initial code investment on future products using other devices in the
portfolio.

 

Fig. 1: Example of a hardware and software MCU platform.

A recent survey of design engineers bears this out. When asked about the most important factor in their choice of a
processor, 70% of the engineers said that software development tools were their
No. 1 criterion. When these tools are robust, intuitive to use, and
comprehensive, they ease code generation and debug tasks considerably. The
platform approach includes a complete set of intuitive and robust tools to help
with each phase of development. Processor performance was a distant second in
the survey with only 38% of the participating engineers listing it as No. 1.

This same survey also found that the foremost challenge over the next
year for engineers will be “managing increases in code size and complexity.” In
addition, 87% of the engineers said that they are reusing software from
previous projects on their current project. Clearly, software is a major concern for development engineers. They
know that they need effective tools and methodologies to efficiently manage the
flow of code beginning with initial development but also from one system generation
to the next and from one product to complementary or interrelated products.

Test
until hardened

Of course, there are many other aspects of a foundational platform
that must be considered. The code, which makes up the platform, must be not
only exhaustively tested to make sure that it performs as expected but also
hardened. This means subjecting it to as many stressful contingencies as
possible to ensure that it will perform properly. Such testing should include
static analysis, numerous industry-standard test suites, and the appropriate
system and interoperability testing.

User feedback and operational data collected from user systems in
the field as well as ongoing system testing may also trigger upgrades and
improvements to the platform software, resulting in updates to the field. And
this leads to the question of how and when code updates are distributed.

Some technology providers may go many months or even years without
issuing a software update and then suddenly spring one on customers with little
or no warning. Typically, product manufacturers find this sort of unpredictability
disruptive. A more efficient approach would be to establish a schedule for
maintenance updates so that manufacturers will know when to expect the next
updates. Then manufacturers can plan accordingly to ensure that adequate resources
are available for implementing the updates.

Another aspect of vendor-supplied software that can be disruptive
involves the sources of that software and whether the proper licensing
arrangements have been obtained. Pieces or parts of a software code base may
have originated as open-source code. This raises the scepter of whether that
code was properly licensed. If it wasn’t, the system supplier where the code
has been deployed could be in legal jeopardy. Proper licensing is another
measure of a software platform’s robustness.

The release cadence of software updates and fixes is another major
headache that can halt production. If the supplier is not committed to regular
software releases, it becomes difficult for the developer to continue to
innovate and support products already deployed. The platform’s supplier must be
able and willing to stand behind and account for all of the code in the
platform.

Code
and knowledge portability

Just as developing software for a product is considered an
investment, so, too, is the time and effort spent learning the programming and
integration tools that support a certain processing technology. Whereas code
reuse can help achieve a better return on investment from the original product
software, knowledge portability can also reduce development costs because
engineers are not being forced to constantly learn new tools and development
methods if they can consistently reuse the tools that they’ve already learned.

For example, a development team may believe that its product needs
a certain technical capability to compete better in the marketplace. The MCU that
the product is currently based on does not have this capability, and so the
team decides to change vendors. The next hurdle to cross will be learning a new
tools base and developing new code.

Another example would be a product supplier that has several related
product lines, but each is based on a different MCU and each MCU has its code
base that is not compatible with others. Each MCU may also have its own set of
tools. Shifting development resources across product lines would be cumbersome
at best and certainly inefficient because much time would be spent learning about
the different tools that support each product line.

In both of these cases, the absence of a code-compatible foundational
platform for all of the MCUs prevents knowledge portability among developers. Too
often, developers are faced with relearning tools or reinventing a basic system
architecture because their current MCU does not fit its next-generation
product.

With a cohesive platform that offers a breadth of technical
capabilities, the developer can easily pick another MCU without having to spend
time and money relearning the basics of the product. It is much more efficient
when technologies, such as families of MCUs and related devices, share a
consistent platform. Code reuse and mobility as well as knowledge portability are
ensured.

Engineers and product developers feel the daily pressure of facing
the daunting challenge of creating the next great innovation. Of course, it’s
not enough for developers to keep up with the competition. They must be ahead
of the curve, always mindful of what’s over the horizon. And that takes smarter
development methodologies, tools, plug-ins, resource libraries, and all aspects
of a robust, code-compatible, foundational technology platform that shows them
the way to efficient innovation, leveraging their initial software investment
to create a comprehensive product portfolio that maximizes return on
investment.

Part
1: Platform approach pays off for product and system engineers
 – 
Hardware and
software platforms accelerate design innovation