Keil™, An ARM® Company

Chip Vendor Information

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.

The notion of support comes down to two questions:

  1. Is the device 100% compatible with an architecture or device the Keil tools already support (ARM, 8051, 251, or XC16x/C16x/ST10)?

    If the answer is no, the Keil development tools probably do not support the device. You should contact us to discuss how we can work together to provide you with development tools required.

  2. For compatible devices, did you add new features (like new instructions, multiple data pointers, or math accelerators) to the architecture? (New SFRs are not necessarily new features. SFRs are already supported by the compiler and assembler.)

    If the answer is yes, are compiler or assembler changes required to support the additional features? If so, contact us to discuss how to proceed.

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.

Integration Tasks

Following is a list of the integration tasks that must be completed along with an estimate of the difficulty and who would complete them.

TaskDifficultyCreated By
Device Database
(See Below)
EasyKeil
PDF Data Sheet
(See Below)
EasyChip Vendor
Header File
(See Below)
EasyChip Vendor or Keil
Assembler Modification
(Please Contact Us)
Medium to HardKeil (under contract)
Compiler Modifications
(Please Contact Us)
Medium to HardKeil (under contract)
Simulator Support
(See Below)
Medium
(time consuming)
Keil (under contract)
Debugger Support
(See Below)
Medium to HardChip Vendor or
Emulator Vendor

Device Database

When an end-user creates a program using the Keil tools and µVision, they start by selecting a chip from the Device Database.

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:

  • Part Number,
  • Microcontroller Family,
  • Chip Vendor,
  • Header File,
  • Data Sheets,
  • Compiler/Assembler/Linker Settings,
  • Simulation Driver Settings,
  • and Debugger Settings.

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, and debugger 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 (at 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.

Header File

Header files define the SFRs of the devices. These files are included in C and assembler programs so that the end-user does not need to define the SFRs. Typically, someone who is familiar with the device can create a new header file in under 1 hour.

A knowledgebase article that discusses how to create your own header files is available.

The header file is included in the device specification in the Device Database.

Data Sheets

Data sheets, product specifications, and user manuals are created by the chip vendor. When a PDF file of the data sheet 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.

Compiler Options

Typically, the only options required for the compiler are:

  • On-chip RAM/XRAM,
  • On-chip ROM/FLASH,
  • Dual Data Pointers,
  • and Instruction Set Specification.

All of this information can be derived from the data sheet.

Simulation Support

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 devices is unique, only the default device simulation will be available. 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.

Debugger Support

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:

  • MON51, MON251, and MON166 are target monitors (small applications that run on the end-user's target hardware). A DLL allows the µVision Debugger to connect to the monitor (via serial interface) and download user code, set breakpoints, read memory, and so on.
  • ISD51 is an In-System Debugger that may be used with single-chip 8051 target systems. A DLL allows the µVision Debugger to connect with the target system via serial interface.
  • Various emulator companies provide DLLs that allow the Keil µVision Debugger to interface directly with the emulator. An AGDI API provides emulator companies with an interface to the Keil debugger and allows the Keil tools to control the emulator. The emulator company must be engaged to create this DLL.
  • JTAG and OCDS hardware debuggers can be interfaced to the Keil µVision Debugger using the AGDI API. This development is typically performed by the chip vendor.

If you wish, you may contact us to discuss creating a hardware debugging package for your device or family of devices.

Conclusion

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 SFR header 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.