|Written in||Java, C|
|Operating system||Microsoft Windows|
DAVE (Infineon) Digital Application Virtual Engineer (DAVE™), a C/C++-language software development and code generation tool for microcontroller applications. DAvE is a standalone system with automatic code generation modules and is suited to develop software drivers for Inﬁneon microcontrollers and aids the developer with automatically created C-level templates and user desired functionalities.
Latest releases of DAVE include all required parts to develop code, compile and debug on the target for free (based on the ARM gcc toolsuite). Together with several low-cost development boards one can get involved in microcontroller design very easy. This makes Infineon micocontroller products also more usable to small companies and to home-use / DIY projects - similar to established products of Atmel (AVR, SAM) and Microchip (PIC, PIC32) to name a few. Find here a press release about latest DAVE version.
DAVE was developed by Inﬁneon Technologies. Therefore, the automatic code generator supports only Infineon microcontrollers. The user also has to get used to the concept of the Eclipse IDE. The generated code can be also used on other (often non free) development environments from Keil, Tasking and so on.
Latest version 4 (beta) for ARM based 32bit Infineon processors
The successor of the Eclipse-based development environment for C/C++ and/or GUI-based development using "Apps". It generates code for the latest XMC1xxx and XMC4xxx microcontrollers using Cortex-M processors. The code generation part is significantly improved. Beside the free DAVE™ development software, a DAVE™ SDK is a free development environment to set up own "Apps" for DAVE™. Details (downloads, getting started, tutorials etc.) can be found on the website.
After starting DAVE, an Eclipse environment appears. In the project browser, a standard C/C++ or a DAVE project can be set up by selecting one of the available processors of Infineon. The latter project setup allows configuration of the selected MCU using a GUI-based approach. This simplifies the setup of complex peripherals significantly. It also ensures that related peripherals (e.g. PLL configuration for peripheral clock on the one hand and the peripheral itself on the other hand) are configured consistently. In simplest cases, the user ends up in coding callback functions to certain peripheral events and a main loop. Pre-configured project templates allows to successfully set up first programs easily.
Stable version 3 for ARM based 32bit Infineon processors
Automatic code generation is based on use case oriented, configurable and tested SW components, DAVE™ Apps. They are comparable to executable and configurable Application Notes that can be downloaded form the web just like Apps for smart phones or tablet PCs. This environment is based on Eclipse, beside the "App approach" ordinary program development using C/C++ is available as well. Targets are XMC1xxx and XMC4xxx microcontrollers using ARM™ Cortex™-M processors.
Previous (older) versions
This version targets 32-bit MCUs (TriCore AUDO Family), 16-bit MCUs (C166, XC166, XE166, and XC2000 Family) and 8-bit MCUs (XC800 Family) from Infineon. After the initial setup the conﬁguration wizard appears and gives an overview over the hardware peripherals, control units, and modules. Here, the actual microcontroller application can be created by selecting the desired functionality. At this step, module specific functions have to be selected for module initialization and control. Finally, the application source ﬁles will be generated by DAvE and embedded in a project for the selected development environment, where you can continue to modifying your code or adding it to an existing project.
The installation of DAvE and DIP-ﬁles is unproblematic, with only a few clicks after downloading the application from Inﬁneon’s webpage. One can start working with DAvE and already generate example code without reading a manual, as the steps for doing so are pretty much self-explanatory when following the application wizard. Furthermore, Inﬁneon provides many application notes and tutorials on how to use DAvE in combination with different microcontrollers and development environments.
An intuitive user interface allows to familiarize oneself with the basic functionality of DAvE in a significantly small amount of time. Once the user has learned the main steps of creating an embedded application with DAvE the application development can be performed very fast. By providing a graphical user interface and a wizard it is easy to memorize the steps, even when the user returns to the tool after a period of not using it. In general, in embedded application development it is easy to make mistakes by creating conflicting conﬁgurations, e.g., assigning one I/O pin to multiple modules or select not supported baud rate for communication or wrong operating frequency. When using DAvE these conﬂicts are being resolved by reducing the conﬁguration choices automatically. In addition to that, in order to being able to use the source code generated by DAvE and to create a meaningful embedded application, it is crucial to understand the functionality of the generated C-functions and the targeted hardware. DAvE’s interactive user interface provides a fail-safe way to select desired features before beginning to program an application. Conﬁguration windows allow the designer to select and conﬁgure a specific product and then automatically generate code for that product, including its core, peripherals, memory, appropriate driver functions, and interrupts. As changes are made in conﬁguration options, all resulting changes in code are dynamically updated and displayed in all applicable open conﬁguration windows. In addition, the program automatically creates detailed documentation for each conﬁguration, with complete explanations of function calls, macros, parameters, and return values. It also features a built-in register viewer that displays all registers and enables the user to easily track changes up to bit conﬁgurations. To add user specific functionality to the automatically generated code DAvE offers designated user code areas (marked by //USER CODE BEGIN and //USER CODE END comment section), where application specific code can be entered using any editor. This ensures that these parts won’t be overwritten when applying further changes to the microcontroller conﬁgurations through DAvE later.
DAvE is meant to be a one stop access point to all standard knowledge associated with Infineon’s embedded technology expertise, by offering a context sensitive access to user’s manuals, data sheets, application notes, etc. directly from the development environment. It also provides an environment to build AddIns. To build an AddIn for DAvE is easy. The DAvE Template Generator creates a template for an AddIn and has the capability to add sample code of your choice. Furthermore, there is a detailed documentation with a sample project being installed together along with DAvE’s SDK. VB syntax is not hard to understand especially when an example project is being provided. It may take some more time to get acquainted with DAvE’s SDK than with the code generator, but it will be possible to obtain a runnable AddIn within a day.
Besides the main development environment, DAvE, Inﬁneon also developed additional software that can be used in conjunction with DAvE for speciﬁc microcontroller families or additional hardware: DAvE Bench for XC800 is a platform providing free development tools for Inﬁneons 8-bit microcontrollers family, based on the Open Source Eclipse architecture. DAvE Drive is a GUI based software tool that allows application developers to create embedded software for control of brushless synchronous 3-phase motors.
As mentioned, the Infineon MCUs are directly supported by several commercial products - depending on the selected MCU target. Also an embedded coder library for Matlab exists details here. As an free alternative to DAvE, the developer can use the Keil Microcontroller Development Kit (MDK) Version 5. Code for the XMX1000 series up to 128kB can be developed this way without purchasing a license from Keil. 
- "Getting started with XC164CS starterkit using DAvE, Tasking EDE & CrossView Pro Debugger" (PDF). Application Note. Infineon Technologies. Retrieved 5 March 2011.
- "DAvE Bench". Product Intro. Infineon Technologies. Retrieved 5 March 2011.
- "DAVE™ Drive Application Code Generator for PMSM and BLDC Motor Control with Infineon’s 8-bit Microcontrollers". Application Brief. Infineon Technologies. Retrieved 5 March 2011.