Simplifying MCU design "implementation details"
At the very beginning of my professional life in electronics, I worked at the California Institute of Technology where I noticed that it took the staff scientists and grad students an inordinate amount to time to get to get from the idea or algorithm they working on to the actual device or system they needed to complete a project.
It was only after learning a lot about the" implementation details" of the tools and building blocks they needed - which had nothing to do with the ultimate aim of their project - that they were able to build the systems that would allow them to go back to their original goals..
This was at a time when electronics was at the MSI and SSI level and the highest level of integration and functionality were in the "bit slices" of particular compute functions, such as ALUs, registers barrel shifters, micorsequencer, and control rom that were used to piece together the control system. After that it was still necessary to use primitive assembly code operations in hardware or software to"program" it.
Now, even with many processor architectures and the variety of hardware and software aids to deal with the implementation details. there are still a lot of steps before the domain specialist in automotive, consumer and industrial embedded applications gets to the final design that was originally mapped out on the back of a napkin or scribbled quickly in a pocket note pad.
In recent years, in parallel with all the new and powerful microcontrollers, hardware vendors especially have been coming out with tool frameworks that further reduce that time between an idea and its physical realization. The most recent example of a tool that reduces this gap is Texas Instrument's newest iteration of its Code Composer Studio tool suite, Version 6.
In addition to offering developers of embedded designs an intelligent apps center and enhanced learning tools it has also incorporates features that makes things simpler and easier for the domain specialist - or even DIY "domain enthusiast" - to speed up and even eliminate some of those nasty implementation details which get in the way of getting to the final design.
Of particular interest to many domain enthusiast users of Arduino is that Code Composer Studio is integrated with, and fully supports, the Energia open source electronics prototyping platform that brings the Wiring and Arduino framework to the Texas Instruments MSP430-based LaunchPad
But CCStudioV6 also allows you to pick from the whole range of TI's MCU options and easily locate and download additional resources quickly, including libraries, code and application examples, SDKs, real-time operating systems (RTOSs), etc. Even in these days of the Internet and Web and all the sources made available there, without such a capability, sorting through the many options can often be a long and drawn out process.
If the domain enthusiast or specialist is new to the use of Integrated Development Environments for microcontroller design - let alone CodeComposer - the new version's App Center allows the developer to select a "Simple Mode," (Figure below) that makes some decisions for the developer and reduces the often bewildering number of available options.
It does this by showing only the essential functionality the specialist/enthusiast needs to get up-and-running with a quick and dirty design. Once you're familiar with the basic functions and operations of Code Composer you can switch back to the full development mode at any time.
There are also a number of built-in learning tools, such as the optimizer assistant and the ultra-low power (ULP) advisor, if the developer wants to move further into "implementation details." The optimizer assistant, for example, includes a graphical display of memory usage. It also can generate real-time advice on how to get the best performance for the code size available on the MCU you've chosen.
For the power conscious, the ULP advisor analyses your C source code line by line, verifies everything against a detailed ULP checklist, and highlights areas of code that can be improved.
But if you are a developer who just loves to deal with implementation details - or have the job of dealing with them - the new Code Composer Studio has a number of new features that should please you. First, in addition to the highly optimizing TI developed C compiler, CCStudioV6 integrates GCC compiler distributions for MSP430 MCUs, as well as TI's various ARM-based 32-bitters.
It also has incorporated the latest version of the Eclipse open source IDE to ensure compatibility with newest complementary products offered and to make working with Code Composer Studio v6 easier, including more more than 1,200 third-party plug-ins for static code analysis, source code control, modeling and scripting development.
Third, there is an improved advanced code editor with features such as code completion, code folding, local history of source changes, markers and the ability to associate tasks with source lines, speeding design and trouble shooting considerably.
For users of the various more hefty multicore-based ARM variants in TI's repetoire of processors (such as the company's Keystone), CCStudio can be used for multi-processor debugging and to manage status and information from multiple cores without the confusion that arises when each core requires its own separate debugger.
Fifth. CC Studio's newest version also allows you to automate common tasks with debug server scripting interface, such as code validation and profiling.
A final note, the Energia integrated open source software framework mentioned earlier is not just for "newbies." It can be useful to experienced developers with its easy to understand APIs; abstracted, intuitive libraries; and access to an active community. And if you are just starting out in embedded design, you can start with Energia and easily transition to the full-featured Code Composer Studio IDE to debug code and utilize other TI software packages.
Free licenses of Code Composer Studio are available if you're using a development board with an integrated debug interface or using the XDS100 debug probe. MSP430 developers can use a free 16KB code-size-limited license with the TI compiler or unlimited code size with GCC.
Available for purchase is a full platinum license for all TI embedded processors as well as a free version for Linux and Android application developers who do not require a JTAG debugger.