Skip to main content
baris.akpinar
Associate II
December 1, 2022
Solved

STM32F407 DMA1(USART1-USART6) TX Callback ınterrupt silence

  • December 1, 2022
  • 2 replies
  • 1053 views

I wish everyone good work.First of all, sorry for my bad english.

I would like to talk about the problem I had with my STM32F407.

There are 3 programs running on my system.

These:

* Bootloader 1 (Updates the bootloader 2.)

load region = 0x08000000 

size_region = 0x00004000

* Bootloader 2 (Updates the application.)

load region = 0x0800C100

size_region = 0x00014000

* Application  

ROM 1:

load region = 0x08020100

size_region = 0x00040000

ROM 2:

load region = 0x080C0000

size_region = 0x0040000

When I install applications one by one, all the interrupts in the system work.

But as soon as I install the bootloader and the application, the UART DMA Tx interrupts do not work. A total of 6 UARTs are used in my system.Only UART1 and UART6 where I'm experiencing interrupt silence. UART1 and UART6 work on the APB1 line, depending on the DMA2 channel. I do not have a problem with the working uarts on the DMA1 channel. Although I turned off interrupts during application transitions, I could not solve the problem. I guess something is staying open during the migration.

I checked the addresses of my interrupt vectors. It starts from the same place as the application.

Vector address at application startup = SCB->VTOR = 0x08020100 

I'd like to get your opinions on the transition problem I'm experiencing between applications.

0693W00000WJyufQAD.png

This topic has been closed for replies.
Best answer by baris.akpinar

Thanks DeLorean,After setting the addresses as 512 bytes, my problem was solved.

2 replies

Tesla DeLorean
Guru
December 1, 2022

Don't the vectors need to live​ on a 512 byte (9-bit) boundaries?

U​se the sector boundaries

Tips, Buy me a coffee, or three.. PayPal VenmoUp vote any posts that you find helpful, it shows what's working..
baris.akpinar
baris.akpinarAuthorBest answer
Associate II
December 1, 2022

Thanks DeLorean,After setting the addresses as 512 bytes, my problem was solved.