Keil Logo


Information in this article applies to:

  • µVision Version 4


The µVision device database contains all 8051, 251, C16x/XC16x/ST10, and ARM7/ARM9/Cortex-M standard products. However, there are some custom devices and there will be future devices that are not part of this database (they will be added as they are created, of course). If you need to work with an unlisted MCU, you have two alternatives:

  • Select a generic device.
  • Add a new device to the database.


Under the Generic listing in the device database, for 8051, 251, C16x/XC16x/ST10 you will find the following generic devices:

  • 8031 (all Variants)
  • 8032 (all Variants)
  • 8051 (all Variants)
  • 8052 (all Variants)
  • C166 (all Variants) - Supports CPUs with no extended instruction set
  • C167 (all Variants) - Supports CPUs with an extended instruction set

For ARM and Cortex devices, under the ARM listing in the device database, you will find the following generic devices:

  • ARM7 (Big Endian)
  • ARM7 (Little Endian)
  • ARM966E-S (Big Endian)
  • ARM966E-S (Little Endian)
  • ARM9E-S (Big Endian)
  • ARM9E-S (Little Endian)
  • Cortex-M0
  • Cortex-M0 SDK
  • Cortex-M1
  • Cortex-M1 (Altera)
  • Cortex-M3
  • Cortex-M4
  • Cortex-M4 FPU
  • Cortex-R4
  • Cortex-R4F

You may select one of these devices and then specify any necessary chip options in the Target Dialog.


From the File menu, select the Device Database item. µVision opens a dialog which shows the device database where you may add and modify the existing devices.

To add a new device...

  1. Select a CPU that is similar to the device you want to use. Be sure to double-click to bring the settings for this device into focus.
  2. Change the name of the chip vendor.
  3. Select the appropriate CPU family.
  4. Enter the part number in the device text box.
  5. Modify the description to match your device.
  6. Change the options for the tools (see below).
  7. Single-click in the database window (to change focus). This enables the Add button.
  8. Click Add to add the new device.

To remove a device...

  1. Locate the device you want to remove in the Data Base tree list box and left-click the name once to highlight it.
  2. Press the Del key to remove the device from the Device Database.
  3. Note

    • You will not receive a warning when you press the Del key. The device is deleted immediately.

Adjusting the Options...

In the Options box, CPU= specifies the basic tool settings for the chip. The parameters for CPU= are:

  • IRAM (range)
    Address location of the on-chip IRAM.
  • XRAM (range)
    Address location of the on-chip XRAM.
  • XRAM2 (range)
    Address location of a 2nd on-chip XRAM area (i.e. for C167CS).
  • XRAM3 (range)
    Address location of a 3rd on-chip XRAM area.
  • IROM (range)
    Address location of the on-chip (flash) ROM.
    For classic C166: start address must be 0; IROM is split into two sections if size is above 32KB; range specifies physical ROM size.
  • IROM2 (range)
    (for 8051 and variants only) Address location of 2nd on-chip ROM.
  • XROM (range)
    Address location of external (flash) ROM.
  • XROM2 (range)
    Address location of 2nd external ROM.
  • XROM3 (range)
    Address location of 3rd external ROM.
  • ICAN (range)
    Address location of the on-chip CAN module. Use for C167 and variants only.
  • CPUTYPE (variant)
    Specify CPU variant for ARM based controllers. Currently only ARM7, ARM9, Cortex-M and Cortex-R4 devices are supported.
  • EBIG
    Default to BIG endian for ARM based controllers.
    Default to LITTLE endian for ARM based controllers.
  • ESEL
    Allow selection of the endianiess for ARM based controllers.
  • CLOCK (val)
    Default CPU clock speed (in Hz) used when you select the device. For example CLOCK(12000000), indicates a 12MHz oscillator.
  • FPU
    (for ARM9 only) Specifies default VFPU usage for some ARM9 devices.
  • FPU2
    (for Cortex-M4 only) Specifies default VFPU usage for some Cortex-M4 devices.
  • MASK_REV (val)
    Specifies the mask revision number.
  • MDU_F120
    Use the Multiply/Accumulate Unit of Silicon Labs C8051F12x device variants.
  • MDU_R515
    Use the Multiply/Devide Unit of Cast/Evatronix R80515.
  • MOD167
    Use the extended instruction set of the C167 and variants.
  • MOD517DP
    Enable Infineon specific multiple DPTR registers.
  • MOD517AU
    Enable the Infineon specific Arithmetic Unit.
  • MODA2
    Enable Atmel specific multiple DPTR registers (like on AT89S8252).
  • MODAB2
    Enable Analog Devices specific multiple DPTR registers.
  • MODC2
    Enable Cast/Evatronix specific multiple DPTR registers (R80515).
    Enable support for the Dallas Contiguous Mode.
    Enable Dallas specific Arithmetic Accelerator.
  • MODDP2
    Enable Dallas specific multiple DPTR registers.
  • MODH2
    Enable Hynix/ST uPSD33xx uPSD34xx multiple DPTR registers.
  • MODP2
    Enable Philips specific multiple DPTR registers. (Note also some Atmel devices are using this variant).
  • MODV2
    Use the Infineon XC16x / ST Super10 instruction set extensions.
  • MX
    Enable support for the Philips 80C51MX architecture.
  • MXP
    Enable support for the Philips SmartMX SmartCard architecture.
  • DPX
    Enable 24-bit DPTR register for the Analog Devices ADuC812.
  • PMW
    Enable the PCON.PMW feature that allows to use MOVX instructions to write into code space for the Evatronix R8051XC.
  • DPC
    Enable the data pointer control registers on the Evatronix R8051XC that provide auto-increment features for the DPTR registers.
  • BSE
    Enable the Bank Switch Enable feature in the register DPSEL.3 for the Evatronix R8051XC.
  • PSOC
    Enable the generation of interrupt vectors for Cypress PSoC.

The following additional options are also available:

  • BOOKn=document_file(title)
    Defines books, manuals, device datasheets that are added to the Books Window; (n={0,1,2, ...}).
  • CPU=CPU Options
    Lists the CPU specific attributes: (for example IRAM, IROM, CLOCK, ESEL, etc.). See list above.
  • FLASH=command_file(options)
    Specify the Flash Utility that should be used with the device.
  • REGFILE=sfr_file(folder)
    Specify the SFR register definition file for the CPU.
  • SFILE=startup_file(folder)
    Specify the default startup file that should be copied to a project.
  • SVD=rel_path\
    Specifies the Special Function Register file (*.sfr) containing the peripheral descriptions which control the System Viewer.
  • FLDLL=DLL_name(Parameter string)
    Specifies the AGDI DLL which should be used by default to program the Flash of this device. This setting will be visible in the µVision dialog Options for Target - Utilities - Use Target Driver for Flash Programming. The names of the AGDI target debug driver (also used for Flash programming) can be found in the µVision configuration file Tools.ini in the lines with the tag 'TDRVx=...'. For example UL2CM3.DLL is the driver for the ULINK2 debug interface for Cortex-M devices.
    The parameter string of such a AGDI DLL is implementation specific. It defines all debug, trace and Flash options which are set in the target debug driver setup dialog. The easiest way to find the right parameter string is to setup a debug connection in a µVision project. Then open the µVision project file (*.uvproj) and copy the content of the XML-tag FlashDriverDll to the device database.
    For example, the Device Database entry for a STM32F400 microcontroller and a ULINK2 target debug interface may look like:
    FLDLL=UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000)

Other options specify data books and µVision debugging DLLs. You should leave these variables unchanged when adding a new device to the database.




The following Discussion Forum threads may provide information related to this topic.

Last Reviewed: Wednesday, October 2, 2019

Did this article provide the answer you needed?
Not Sure
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.