cancel
Showing results for 
Search instead for 
Did you mean: 

MBMUXIF_SystemInit address offset comparison fails, falls into infinite while loop

bblouin
Associate III
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?

6 REPLIES 6
bblouin
Associate III

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
Senior

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
Associate III

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

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

YBOUV.1
Senior

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.

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