Hitex ARM Conference Future Proof Software
Introduction HCC is in a fairly unique position • Broad range of reusable software components for peripherals • USB, Flash, Networking, Bootloaders, File Systems • RTOS agnostic and as a consequence support at any time…. > 10 tool-chains > 100 microcontrollers > 15 RTOSes CPU compatibility across ARM cores does not help with peripherals
Typical Embedded Scenario • Every new project requires the use of files, templates and methods from different sources • ie compiler, hardware abstraction, middleware, libs etc. • This can lead to an unstructured development environment which is difficult to carry forward with guarantees of quality and correctness to the next project. • Undesirable to change core code. Better to change peripheral code to meet an interface standard • There are attempts such as CMSIS to deal with some aspects of peripheral portability
Advanced Embedded Framework Tools MCUs Software Dev Board Components PROJECT • AEF developed by HCC to deal with changing environments • All code clean of anything specific to one environment • Modules re-used without modification
Future Proof Embedded Software Portability Issues Approach API • Implement Source Tree Management • Includes • Version checks • Configuration • Pre-emption • Cache Establish Module Development Guidelines • Endianess • Memory Allocation • Types • Error handling • Timers • Version checks Module inter-Dependency Management init/start/stop/delete • • External resource management (mutex/event/task) • API Develop Reusable Peripheral Interfaces Register access • • Configuration • Drivers
Platform Independent Module API TCP/IP Version Config
Framework Overview Module Peripheral Source Tree MDM Guidelines Interfaces Software Components Toolchain PSP OS AL Embedded Target
Source Tree Management
Module Development Guidelines • Typically software from multiple sources is used in every project – legacy/libs/middleware/hal/rtos/etc • Usually developed either ‘freestyle’ or to different standards • C language has known deficiencies Ambiguity Portability Quality Increased dev cycles
Module Development Guidelines • These problems are universal and attempts to address have resulted in various attempts to harmonize approach to coding Coding Language C99 MISRA Etc standards definition • At HCC we have taken a rigorous systematic approach to future proof our software since s/w developed to the highest standard can be re- used in any environment from ‘freestyle’ to safety or certification
Code from Different Sources Approach does not obviate the need for 3 rd party software written to differing • standards choice is either……………… rewrite legacy/lib to required standard abstract legacy/libs • In either case the rules for approaching this problem are clearly defined and consistent • This strongly typed subset of C is akin to a new language. When developers learn it they are happier that they can meet goals without ambiguity and it is no more difficult or time consuming than ‘freestyle’ coding..
Re-usable Peripheral Interfaces • Software can only be reused without modification if external interfaces are consistent => driver interface must conform to desired standards • all supporting components are designed to expose interfaces that are consistent with any quality standard to be reached. • Wrapper layers could be used to achieve some of these goals on an ad hoc basis. There are drawbacks to this approach – it obfuscates the design and the code and is difficult to standardize. The more you add the worse it gets. And it is not necessarily easy to use a wrapper layer in projects requiring a higher level of quality.
Traditional Approach
Conclusion • We have tried to present some of the core issues involved in building a development environment suitable for the production of high quality embedded products • Reusability of • software elements • learnt techniques. • There are, of course many more elements to this – and in an upcoming webinar we will take this model much further by describing a complete development process for managing high reliability projects – suitable for use in safety environments
thank you – questions ?
Recommend
More recommend