Przemek, I agree, agree and agree that the industry needs to support a common code library. My initial point is that this code library is and needs to be ISA independent. The other issue is that no two applications are alike and one size fits all, especially in the MCU world, has some major draw backs since MCUs have limitations on the amount of memory and CPU resources. Until we can makes MCUs for almost nothing with near infinite memory and CPU performance this debate will rage on.
"Therefore, there are on going efforts to provide HAL or API to reduce peripheral dependency such as with Renesas RPDL and STM with CMSIS along with code generation tools such as Renesas PDG or Applilet and Freescale Processor Expert."
And herein lies the dilemma--how would a proprietary middleware layer reduce peripheral dependency? Only CMSIS has a multivendor support, and it's ARM only.
That's why Open Source community-supported software is winning and will eventually take over. The manufacturers would do well to take heed and support a common code library with a significant developer community participation.
Pkimelman, thank you for the comment. The best practice for modern tools is to seamlessly support multiple ISA. Case in point is Micrium. The same can be said for Threadx, FreeRTOS and CMX. The compiler manufactures (IAR, Greenhills, GNU) have done a great job to hide ISA. Segger J Link is another example for a debugger. The MCU architectures supporting the Eclipse IDE have taken it a step further to seamlessly support different suppliers compliers and debuggers. The real issue is not the ISA, but the peripherals. Therefore, there are on going efforts to provide HAL or API to reduce peripheral dependency such as with Renesas RPDL and STM with CMSIS along with code generation tools such as Renesas PDG or Applilet and Freescale Processor Expert.
On: “A focus on the [MCU’s] instruction set architecture is misguided,”
The problem for Carbone is that people focus on ISA only in the sense of ecosystem - few customers know a single instruction, but they sure know how many compilers and debuggers and RTOSes and stacks are available for a given ISA. That is a major factor in software cost since frameworks are one thing but your software engineers need tools to build the actual applications. Intel does not have that problem, Renesas very much does, especially with so many incompatible architectures.
Application developers waste a lot of time if they have to learn new tools and/or are forced to use tools that make them less productive. This why people pay attention to ISA.
A Book For All Reasons Bernard Cole1 Comment Robert Oshana's recent book "Software Engineering for Embedded Systems (Newnes/Elsevier)," written and edited with Mark Kraeling, is a 'book for all reasons.' At almost 1,200 pages, it ...