Intel just released their System Studio 2015 development suite with a bunch of interesting new features. If you do any low-level or embedded coding on x86 devices, this is the tool set for you.
Intel’s System Studio 2015 is not aimed at high level coders, if you are writing anything a user will directly use or see, this is not your tool set. If you are into low-level coding, UEFI minutia, Android device OS optimizations, and similar typical every day tasks, this is the suite for you. This new version supports almost all your embedded OS targets, Wind River, Linux, Android including 64-bit Lollipop, and even Windows.
System Studio is not just a compiler, it offers a bunch of libraries aimed at the embedded set, debuggers, code analyzers, and even JTAG based system debugger support. All of this is of course dependent on which of the three versions of the suite you buy, but that is the case for almost every tool of this nature. Since we can tell you want the details, lets take a closer look at what the 2015 version offers.
Low level code developers tend to be a fashion-conscious bunch so System Studio 2015 now has a new IDE that integrates better into Wind River and Eclipse. Also new is VTune and System Debugger integration, no more fiddling around with multiple programs manually. Given the new capabilities and features around low-level debug and trace, this is a really good thing to have.
On the Windows side, 2015 is now a plugin to Visual Studio. Intel seems wise to finally support the low-level Embedded Windows Device market because… because… nope, there is absolutely no up side to this one, we can’t think of any sane reason to embed Windows anywhere. Should you think of one however, Intel System Studio will support it. One thing to note, Windows Phone and/or Windows CE is not supported, nor is JTAG based debugging.
One very useful new feature that may become relevant if Intel ever gets its 14nm process sorted out is support for the new Processor Trace feature in Broadwell. Officially it is for Broadwell-Y only but we assume that it is common across all Intel CPUs in the family and future ones. If Intel ever decides to start briefing on CPU tech again, we will ask about this. Don’t hold your breath.
The new Processor Trace (PT) allows you to do branch trace recordings with time stamps. Since it is built into the CPUs it does so with low overhead and in a claimed ‘almost’ realtime manner. It is of course JTAG based but anyone needing this capability will have JTAG tools and probably not baulk at the Ultimate Edition’s price. This capability is for serious system vendors and OEMs, not backyard hackers.
OK, that was the case until this release, System Studio 2015 now supports Quark platforms and the OpenOCD standard. In case you haven’t been paying close attention to the advances in the JTAG based trace and debug world, OpenOCD is a new standard that radically drops the price of JTAG based debug tools from the thousands or tens of thousands of dollars to, well less than that of a Quark based Arduino/Edison board in some cases. SemiAccurate recently saw that board at Fry’s for ~$85, quite a bit cheaper than $10K even counting the price of System Suite 2015 Ultimate. OpenOCD is a proverbial ‘Really Good Thing’.
You might recall that we mentioned libraries earlier, and a few of then are included. These come in two forms, Integrated Performance Primitives (IPP) and Math Kernel Library (MKL). IPP is aimed at things like computer vision for embedded devices and OpenCV. Luckily enough there is a new version of OpenCV coming soon, the 3.0 Beta is up now. MKL is a bit more generalized math library just much better tuned for Intel’s CPUs than the generic versions.
A lot of this type of work is better done on a GPU though and with System Suite 2015 you can do just that. It supports Intel’s Clik extensions for offloading code to their GPUs too so if MKL and IPP aren’t enough, you can take it a step farther. In theory this will work for any type of parallel processor that Intel integrates into their CPUs or supports but I wouldn’t bet your project on new ones coming really soon unless you feel like embedding a Larrabee/Phi.
If all that is too high level for you this new version supports advanced UEFI debugging via JTAG or USB. All you budding boot code writers or just BIOS replacement enthusiasts out there now can hunt down, isolate, and kill those nasty ultra-low level bugs with more ease than before. Don’t expect it to be actually easy but at least you can see what you are doing better and that counts for a lot.
Similarly with a new feature called Energy Profiler that is unfortunately only supported on Core M/Broadwell-Y CPUs at the moment. Worse yet it is only currently available for Windows targets, Broadwell-Y platforms running Windows are not a way to sell many licenses. That said Energy Profiler will let you monitor platform wake up events and correlate them directly to code, an extremely useful feature. It also supports DRAM self-refresh and GPUs, two areas that are traditionally very hard to optimize in this way.
Updated October 31, 2014 at 3:45pm: Energy profiler is available for Android too. Not only is this a good idea but it ups their TAM by several orders of magnitude. It is however still restricted to Broadwell-Y/Core M CPUs at the moment.
Updated November 4, 2014 at 12:45pm: It looks like the energy profiler also supports Linux and some Atom based SoCs.
The best part of System Studio 2015 is not really any single part of the suite, it is the whole thing. You can now code, debug, trace, and profile low-level code for lots of platforms in one place. Integrating them all into one more coherent than before package allows you to not only find where a problem is occurring but tie it back to code or events in a much cleaner way than before. Although this functionality is still at an early stage, it will only get better from here. That cohesive whole can make life a lot better for anyone doing low-level work.S|A