DAVE™ version 3, is a free Eclipse based development platform to generate libraries for the XMC1000 and the XMC4000 microcontroller families
Hardware oriented software development for microcontrollers often requires a comprehensive know how of the microcontroller-HW to implement required functionalities like PWM signal generation, measuring of analog and time dependent signal, communication, I/O configuration, etc. With DAVE™ it is very easy to generate the library source code with the APIs for such functionalities that runs on the XMC1000 and the XMC4000 microcontroller families without the need of a deep HW understanding. The SW component based approach with DAVE™ Apps allows use case oriented code generation of initialization code, peripheral driver, middle ware and algorithms.
What are DAVE™ Apps?
DAVE Apps are application-oriented SW components or library components.. Each DAVE™ App is dedicated to a certain application use case and provides the following interfaces:
- A graphical configuration UI to configure the required functionality
- Signals and events to compose different DAVE™ Apps for efficient event handling
- APIs to use the provided functions in the user code
The signals and events of different DAVE™ Apps can be connected like in a schematic tool. With this functionality it is possible to connect for example the PWM status signal form a PWM App to the start signal of an ADC App. The respectively generated initialization code ensures that an ADC conversion is started automatically when the PWM status changes, without CPU interaction. With the same mechanisms event signals can be assigned to Interrupt Apps (NVIC Apps) and as result a respective Interrupt handler will be referenced.
Depending on the application case, a DAVE™ App can require HW resources of the used chip or can require other DAVE™ Apps to reuse the respective API for a higher abstractions.
Conflict free resource mapping and pin assignment with the Solver
Another unique feature of DAVE™ is the resource solver that supports conflict free, automatic assignment of resources that are required by DAVE™ Apps to the available HW resources of the used XMC microcontroller. For example, the solver finds the best suitable CCU channel for the PWM App that fulfills all connectivity requirements without creating resources conflicts. The solver also support automatic and manual pin configuration: The user can constrain I/O resources to a specific pin, based on the PCB requirements (e.g. UART or CAN communication signals should be assigned to a specific pin) and let the solver decide to which other pins the I/O functions should be assigned to. The manual pin assignment is supported in a way that only viable options can be selected.
DAVE™ Apps overcome restrictions of Libraries
The component based approach of DAVE™ overcomes the restrictions and difficulties of a library approach where the user has to solve all potential resource conflicts when combining different library functions. The dilemma is best imaginable in cases where the SW developer has just finished manually the conflict free assignment of the required resources and now a new library function is required to be added. In many of these cases the HW partitioning work start again from the beginning, with DAVE™ it is just a click on the solver. Also, the DAVE™ generated library sources provide an application uses cases oriented APIU which makes programming much easier than with most of the today’s standard low level driver libraries.
The number of available DAVE Apps will increase continuously
All the nice features of DAVE™ are only valuable if the DAVE™ Apps for the various application cases are available. Currently there are more than 160 DAVE™ Apps released. They cover a wide range of application use cases that cover already almost all basic applications for communication, signal generation and signal capture and signal conversion; it covers middle ware for encryption/ decryption, file system, Ethernet, USB and the Segger GUI library; it provides the free CMSIS RTX (RTOS) and related communication Apps and it covers application specific middle ware for motor control and lighting solutions.
Currently we are releasing new DAVE™ Apps regularly (almost every month). The availability of new or updated DAVE™ Apps will be announced via the technical support portal, and the DAVE™ forum, or can simply be checked with the “Check for DAVE App Update” function directly in DAVE™ >Help.
The generated code from DAVE™ Apps is MISRA 2004 compliant. The DAVE™ Apps are developed according to the standard Infineon SW development process and are provided for free, mostly under a standard BSD open source licenses term. There is a dedicated technical support site including forum, knowledge base and a ticketing system for problem reporting and tracking.
DAVE™ a complete development platform
Beside the described code generation features DAVE™ includes a free GNU C-compiler, a free debugger from TASKING and a data visualization tool called xSPY.
Interface to other Tools
The DAVE™ 3 generated code can be imported in other tools, currently specific import functions available for the Keil MDK and the TASKING VX toolset.
IAR and Atollic also plan to provide import or plug options.
In the near future we will also support the combination of existing SW or commercial middleware solution with the code generated by DAVE™ 3. For this purpose a resource reservation functionality will be included to ensure that the DAVE3 generated code will not conflict with existing SW.