cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H7 Dual Core MCU CM4 FLASH 0x081E0000

snnzdmr1
Associate II

Hello ,
I am working with stm32h747.

M4 .ld File

FLASH (rx) : ORIGIN = 0x08100000, LENGTH = 1024K

M7 .ld File

FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 1024K

With the above settings I can run Core M7 and M4 properly.
I need more flash on the m7 side and I want to separate the flash as follows

M4 .ld File

FLASH (rx) : ORIGIN = 0x081E0000, LENGTH = 128K

M7 .ld File

FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 1896K
I also make adjustments with cube programer as in the picture.b.pnga.png

Core m7 works but m4 doesn't seem to work.I think I'm missing something or doing something wrong. Can you help me?
Codes are as follows

CM4 Main  Code : 

int main(void)
{
  MPU_Config();
  __HAL_RCC_HSEM_CLK_ENABLE();
  HAL_HSEM_ActivateNotification(__HAL_HSEM_SEMID_TO_MASK(HSEM_ID_0));
  HAL_PWREx_ClearPendingEvent();
  HAL_PWREx_EnterSTOPMode(PWR_MAINREGULATOR_ON, PWR_STOPENTRY_WFE, PWR_D2_DOMAIN);
  __HAL_HSEM_CLEAR_FLAG(__HAL_HSEM_SEMID_TO_MASK(HSEM_ID_0));

  HAL_Init();
  MX_MDMA_Init();
  MX_DMA_Init();
  MX_GPIO_Init();
  MX_SPI1_Init();
  while (1)
  {
  HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13);
  HAL_Delay(100);
  }
}
​

CM7 Main  Code :
int main(void)
{

  int32_t timeout;
  MPU_Config();
  SCB_EnableICache();
  SCB_EnableDCache();
   timeout = 0xFFFF;
   while((__HAL_RCC_GET_FLAG(RCC_FLAG_D2CKRDY) == RESET) && (timeout-- > 0));

  HAL_Init();
  SystemClock_Config();
  PeriphCommonClock_Config();
__HAL_RCC_HSEM_CLK_ENABLE();
HAL_HSEM_FastTake(HSEM_ID_0);
HAL_HSEM_Release(HSEM_ID_0,0);
timeout = 0xFFFF;
while((__HAL_RCC_GET_FLAG(RCC_FLAG_D2CKRDY) == RESET) && (timeout-- > 0));
if ( timeout < 0 )
{
Error_Handler();
}


  MX_GPIO_Init();
  while (1)
  {
  HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_1);
  HAL_Delay(100);
  }
}
1 REPLY 1
SofLit
ST Employee

Hello,

First in next time, please use </> button to paste your code.

Second,

Don't modify option bytes. Keep the default boot address:

SofLit_0-1733148758284.png

Just use the linker file as you did:

FLASH (rx) : ORIGIN = 0x081E0000, LENGTH = 128K

 I'm editing your post then. 

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.