Skip to main content
bblouin
Associate III
July 8, 2021
Question

MBMUXIF_SystemInit address offset comparison fails, falls into infinite while loop

  • July 8, 2021
  • 6 replies
  • 975 views
if (OptionsBytesStruct.IPCCdataBufAddr != (uint32_t) pMb_RefTable)
 { 
 /* USER CODE BEGIN MBMUXIF_SystemInit_Prevent_OB_Programming */
 /* WARNING: If there is a difference between the MAPPING_TABLE placement in memory */
 /* and the address calculated according to the IPCCDBA option byte, */
 /* To avoid writing the IPCCDBA OB by mistake, the execution enters now in a while(1){} */

The IPCC addr and MBMUX_ComTable_t value are compared: My results are

IPCCdataBufAddr = 536871136
MBMUX_ComTable_t *pMb_RefTable = 536871140

Where do I change this offset value?

This topic has been closed for replies.

6 replies

bblouin
bblouinAuthor
Associate III
July 8, 2021

It references this:

if (OptionsBytesStruct.IPCCdataBufAddr != (uint32_t) pMb_RefTable)
 { 
 /* USER CODE BEGIN MBMUXIF_SystemInit_Prevent_OB_Programming */
 /* WARNING: If there is a difference between the MAPPING_TABLE placement in memory */
 /* and the address calculated according to the IPCCDBA option byte, */
 /* To avoid writing the IPCCDBA OB by mistake, the execution enters now in a while(1){} */

YBOUV.1
ST Employee
July 9, 2021

HI @bblouin​ 

many tips are given in https://community.st.com/s/question/0D53W00000VgqmvSAB/trouble-with-the-stm32cubewl-dual-core-example-projects

1/ Option byte IPCCDBA:

The option byte IPCCDBA probably does not match MAPPING_TABLE address in the linker file at STM32CubeIDE\CM4\STM32WL55JCIX_FLASH.ld.

  • MAPPING_TABLE is mapped at RAM_SHARED (@0x20008000). Mapping table is used to exchange data between the cores.
  • To see IPCCDBA, connect with cube programmer, open tab 'OB', section 'User Configuration', scrolling down to bottom you will find it.

following rule shall apply IPCCDBA = (MAPPING_TABLE>>4)

please try to program manually option byte IPCCDBA to 0x800. The board will restart to reload the new OB value.

2/

if you are using CubeIDe, you should use the .ld files attached in the post linked above,

please let us know,

bblouin
bblouinAuthor
Associate III
July 9, 2021

How do I use STLINK v3 to flash dual-core?

bblouin
bblouinAuthor
Associate III
July 9, 2021

How do I use STLINK v3 to flash dual-core?

YBOUV.1
ST Employee
July 9, 2021

a dual core project is composed of 2 separate projects:

- a cm4 project

- a cm0 project

Compiling a dual core project is nothing else that compiling 2 separate project.

Hence, there will be 2 .elf file generated.

1/ connect to the device using cube programmer (https://www.st.com/en/development-tools/stm32cubeprog.html)

2/For example, you can drag and dorp the 2 elf files into the cubeProgrammer

3/ push download (for both elf) and reset the target.

bblouin
bblouinAuthor
Associate III
July 9, 2021

It now says .elf files are too big when I copy/paste.