Supporting New Devices
When a chip vendor creates a new microcontroller derivative, there are numerous questions that arise concerning third-party development tools support. The following information is intended to assist chip vendors in aiding Keil provide support for these new devices as quickly as possible.
To get started the following generic questions should be answered:
For chips that are 100% compatible with existing support architectures and that do not require compiler and assembler changes (because of new instructions, math accelerator, or multiple data pointers), integration with the Keil tools is fairly simple.
Following is a list of the integration tasks that must be completed along with an estimate of the difficulty and who would complete them.
Below each task is explained in detail.
All devices supported by the Keil tools are listed in the Device Database. The purpose of the database is to provide a single place that contains all information associated with the device:
A chip is not required to be listed in the database in order for an end-user to develop code. However, chips that are not listed require that the end-user manually specify all assembler, compiler, linker, debugger, and flash programming options.
When the end-user selects a device from the database, all assembler, compiler, linker, and debugger options are set automatically. This saves the end-user a lot of time and allows them to start creating programs faster. Additionally, this reduces the amount of technical support questions regarding tool configuration for a particular device.
An editor for the device database built-in to µVision so that end-users and chip vendors can easily add new devices to the database. The only difference between chips you add and the chips that Keil adds is that Keil-added devices are listed on the web site (http://www.keil.com/dd/) and are included in subsequent product releases. Obviously, the long-term solution is for Keil to add your devices to the database. Once you have created the device specific support files contact us to integrate them into the standard µVision Device Database.
Data Sheet and User Manual
Data sheets, product specifications, and user manuals are created by the chip vendor. When a PDF file of the data sheet or user manual exists, it may be added to the Device Database. When the end-user creates an application for the device, the data sheets are listed on the books tab in µVision.
Device Header, Startup, and System File
Device Header files define the peripheral registers of the device. These files are included in C and assembler programs so that the end-user does not need to define the SFRs or peripheral register. A knowledgebase article that discusses how to create your own header files is available.
The Startup file configures the compiler run-time environment and in some cases even device features. For Cortex-M processor based devices the System file configures device features.
Note that the CMSIS industry standard defines the structure of these files for Cortex-M processor based devices.
The Keil µVision Debugger is the only debugger that is designed to provide complete simulation of all aspects of a target system. Device simulation is achieved through the use of DLLs and is specified in the Device Database.
If your device is 100% compatible with an existing device (including peripherals) you can use one of the simulation drivers already available.
If your device is unique, only the default device simulation is provided. You may contact us to discuss a simulation package for your device or family of devices. Additionally, you may create simulation drivers of your own using the µVision AGSI API. For Cortex-M processor based devices the AGSI Toolkit provides detailed information.
The Keil µVision Debugger can be used to debug programs running on target hardware. This is accomplished with a DLL that connects to the hardware. Keil provides support for several types of hardware debugging as described under Target Debugging. If you wish, you may contact us to discuss creating a hardware debugging package for your device or family of devices.
For Cortex-M processor based devices, the ULINK family of Debug Adapters uses the ROM table to adapt to CoreSight features. Adopting new Cortex-M devices is therefore automatic and does not require any change to existing drivers.
Peripheral Awareness in Debugger
The Peripheral Awareness in the µVision Debugger is currently under definition. We have proposed an XML file standard called CMSIS-SVD where the chip vendor supplies the structure of the peripherals. This CMSIS-SVD XML file allows Keil to create a µVision System Viewer file that is used by the µVision Debugger to show the status of the peripheral components.
Please contact us for detailed information about CMSIS-SVD.
Flash Programming Algorithm
For the the ULINK family of Debug Adapters the Flash Programming Algorithm is provided as *.FLX file (for ARM7 or ARM9) or *.FLM file (for Cortex-M). Adding New Algorithms describes how to create new Flash Programming Algorithms. The ULINK Flash Programming algorithms can also be used with some other JTAG Adapters such as the SEGGER JLINK series.
A device specific default configuration for the Flash Programming utility can be stored in the Device Database.
Adding support to the Keil tools for new devices is something we do every day. However, because of the sophisticated and encompassing nature of the Keil tools, the word support does not have a singular meaning. Instead it includes things such as peripheral register files, device database listings, data sheets, compiler directives, linker options, and simulation. While this may sound like a daunting task, we are eager and ready to assist you in providing our mutual customers with the best development tools available.
Please contact us if you have questions.