Keil Logo

ARM: Warning #440: Requested device .. is substituted with variant ..

Information in this knowledgebase article applies to:

  • MDK-ARM 5.25 and newer


Since creating a µVision project, I have:

  • Upgraded to MDK-ARM 5.25 from an older version of MDK-ARM.
  • Updated the DFP (Device Family Pack) to use a newer version.

Now when I open the project, I see a warning like this for every target in every project:

Warning #440: Requested device 'STM32F407IG' is substituted with variant 'STM32F407IGTx' for target 'Debug'

Compiling and linking the target works. However, I would like to understand the following:

  • Why does µVision use the new "...Tx" variant instead of the original device?
  • What should I do to stop Warning #440 appearing?


Device manufacturers sometimes dictate device names changes from one pack version to the other.

For example, ST introduced new device variants with new names to cover different package variants. For instance, the device previously known as STM32F407IG now has two different package variants: STM32F407IGHx and STM32F407IGTx.

These naming changes resulted in a change to the hierarchy of the Pack Description (*.PDSC) file format, which describes the devices. A new variant element was added to further differentiate the device selection.

µVision always uses the installed DFP pack with the most recent version. When you load a project, µVision looks for the device specified by that project in the most recent DFP pack. In this situation, the old device name (STM32F407IG) is not found in the list of devices because new names have been introduced (STM32F407IGHx and STM32F407IGTx), so µVision temporarily selects one of those variants. Because µVision has no way to know if it selected the correct variant, µVision reports diagnostic warning #440 to increase transparency to the user.


Because µVision can't take over the device selection for the user, the resolution is for the user to specify which of the new variant device names to use for the project.

To specify the device:

  1. Open the Project - Options for Target ... - Device dialog.
  2. Select or toggle the required device from the database list.
  3. Click OK.

This will fully update the target and save the new device name in the project. The next time you open the project, you should no longer see Warning #440.

Note: When you select the new device, the device-specific default settings will be applied on the Project - Options for Target ... - Target tab. If you had previously customized settings on the Target tab that you want to continue to use, you must configure those settings again.


Last Reviewed: Friday, April 20, 2018

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.