cancel
Showing results for 
Search instead for 
Did you mean: 

External Loader Problem STM32H743ZGT

celo01
Associate II

Hello everyone,
I'm writing this to provide support for my External Loader project for TouchGFX , which I've been working on for a long time.

The External Loader file works good with STM32CubeProgrammer. (Write-Erase-Read operations are possible)  LOG OUTPUT IS ATTACHED --> [STM32Cube Programmer LOG Output]

When I run my project file LCD_Driver_v10 and my External Loader file together, I get the following errors: The complete error message is attached. --> [STM32Cube IDE CONSOLE Output] 

Error: failed to download Sector[0]

Error: failed to download the File

Encountered Error when opening C:\Users\USER\STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.externaltools.cubeprogrammer.win32_2.2.300.202508131133\tools\bin\STM32_Programmer_CLI.exe

Error in STM32CubeProgrammer

 

I also checked this address https://community.st.com/t5/stm32-mcus-touchgfx-and-gui/external-loader-fails-to-download/m-p/136566#M6974 which has a similar problem, but nothing changed.

My Mcu is STM32F743ZGT
STM32CubeIDE verison is v2.0.0
STM32CubeProgrammer version is v2.21.0 (i pasted from cubeide)

Please share with me what I should check first.

Best Regards.

External loader and main project are attached in zip files.

 

3 REPLIES 3
celo01
Associate II

Hello everyone,

I created an external loader project using the STM32H743 development board. I used the W25Q32 chip. I used SPI directly in my project (I didn't use OctoSPI or QSPI).


I followed the advice found in forums and meticulously followed the video examples. However, when I try to open and test my external load file with STM32CubeProgrammer, I can only establish a connection; I cannot perform operations such as deleting, writing, or reading.

I'm sharing my project file, the CubeProgrammer Log output, and the library I used along with this post.

I can't figure out where I'm making a mistake.

I would appreciate your help. Best regards.

Saket_Om
ST Employee

Hello @celo01 

Could you please try the following two steps:

  1. First, try disabling interrupts completely, then use the external loader with your application.
  2. If that doesn’t work, try deinitializing the RCC before configuring the system clock, and deinitializing OSPI before initializing it

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.
Saket_Om

Thanks for the feedback,

I tried step 1 and shared my Loader_Src.c file. All interrupts are disabled (I also disabled from read, write, and erase functions.), but it still didn't work.

I tried step 2 as you suggested, but nothing changed. 
The Init function from Loader_Src.c 

int Init (void){

 

*(uint32_t*)0xE000EDF0 = 0xA05F0000;

 

 

HAL_RCC_DeInit(); // RCC reset

HAL_SPI_DeInit(&hspi1); // SPI1 hardware reset

 

SystemInit();

 

/* H7 cihazı için VTOR ayarı */

SCB->VTOR = 0x24000000 | 0x200;

 

__set_PRIMASK(0);

 

HAL_Init();

uint8_t result;

 

 

SystemClock_Config();

 

MX_GPIO_Init();

LOC_SPI_Init();

 

LOC_LedOn();

result = Flash_Init();

LOC_LedOff();

 

__set_PRIMASK(1);

 

return result;

}