Keil Logo

ARMCLANG: Linker Error: Internal fault: [0xb3b91b:6120001]


Information in this knowledgebase article applies to:

  • Arm Compiler Version 6.11
  • Arm Compiler Version 6.12

SYMPTOM

In rare cases, an Internal fault: [0xb3b91b:6120001] might be reported by the linker when an application is built with Arm Compiler version 6.11 or 6.12.
For instance, some NXP LPC55Sxx examples in the LPC55S59_DFP pack version 11.0.0 are affected by this issue.

CAUSE

This issue was introduced with Arm Compiler version 6.11. So far, we have only seen it when a linker scatter files contain the .ANY selector and when the sections have random sizes. µVision creates scatter files that contain the .ANY selector when the option Use Memory Layout from Target Dialog is selected.

RESOLUTION

This issue was solved in Arm Compiler version 6.13 which will be part of Keil MDK version 5.29. The Arm compiler version 6.13 can be downloaded and can be integrated in Keil MDK version 5.28 as shown under SEE ALSO below.

In case the Arm Compiler version 6.13 cannot be used, there are different ways to work around this issue. The first two workarounds are easy and try to change the section sizes but they may or may not work. The only safe workaround is to not use the .ANY selector in the linker scatter file.

  • Change the compiler optimization level. When debugging is required, change the optimization level from 0 (-O0) to 1 (-O1) (recommended) or vice versa. Use a different optimization level (1 or higher) for application releases. In µVision you can select the optimization level in the dialog Options for Target - C/C++(AC6) - Optimization
  • Change the setting One ELF Section per Function. In µVision you can select this option in the dialog Options for Target - C/C++(AC6)
  • The safest workaround is to replace the .ANY selector in the linker scatter file with * if possible. If you are using a custom scatter file, you can modify it like this:

    Example:
    Replace:

      ...
      ER_m_text 0x00020000 FIXED 0x10000 {
        * (InRoot$$Sections)
        .ANY (+RO)
      }
      ...
    

    with:

      ...
      ER_m_text 0x00020000 FIXED 0x10000 {
        * (InRoot$$Sections)
        * (+RO)
      }
      ...
    
    If you have selected the option Use Memory Layout from Target Dialog in the µVision dialog Options for Target - Linker, µVision generates the scatter file for you. In this case, you need to disable this option and edit the already created scatter file manually.

STATUS

This issue was solved in Arm Compiler version 6.13 which will be part of Keil MDK version 5.29.

MORE INFORMATION

SEE ALSO

Last Reviewed: Thursday, January 7, 2021


Did this article provide the answer you needed?
 
Yes
No
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.