Loading...
 

SW4STM32 and SW4Linux fully supports the STM32MP1 asymmetric multicore Cortex/A7+M4 MPUs

   With System Workbench for Linux, Embedded Linux on the STM32MP1 family of MPUs from ST was never as simple to build and maintain, even for newcomers in the Linux world. And, if you install System Workbench for Linux in System Workbench for STM32 you can seamlessly develop and debug asymmetric applications running partly on Linux, partly on the Cortex-M4.
You can get more information from the ac6-tools website and download (registration required) various documents highlighting:

System Workbench for STM32


assembly interrupt is ineffective; Default_Handler acts instead

Hello and thank you for the reply.
My problem is solved.

I read your response.
So it must be a linker thing, apparently.
Like, the linker does only see this weak definition in startup_stm32l053xx.s:
.weak TIM6_DAC_IRQHandler
.thumb_set TIM6_DAC_IRQHandler,Default_Handler
But does not see my definition in klavirko_asm.s.

Your suggestion was to remove the weak definition.
But I thought that this can not be the solution.
This way the weak definition will no longer be seen,
but my intended definition will most likely not “appear” because of it.
and this should result in a failure to assemble because it would be putting an unknown symbol into the interrupt vector.

So I focused on the topic of why would it not be seen.
I thought,
In klavirko_asm.s I tell that this is a global symbol,
.global TIM6_DAC_IRQHandler
but maybe in startup_stm32l053xx.s, where the interrupt vector is defined this information is not known.
I thought that I should add there the information that there is this global symbol elsewhere.
But before I could try it, I have done somehing else which turned out to be the solution.

I added these statements (copied from startup_stm32l053xx.s) so that the assembler would be at the same correct state when reaching my statements:
.syntax unified
.cpu cortex-m0plus
.fpu softvfp
.thumb
(also added size information while doing it.)
So my file klavirko_asm.s now looks like this:

.syntax unified
.cpu cortex-m0plus
.fpu softvfp
.thumb

.global TIM6_DAC_IRQHandler
.section .text.TIM6_DAC_IRQHandler,"ax",%progbits
.type TIM6_DAC_IRQHandler, %function
TIM6_DAC_IRQHandler:
bx lr

.size TIM6_DAC_IRQHandler, .-TIM6_DAC_IRQHandler

Now everything works.
The processor corrwectly enters and leaves the interrupt now.
Now I can focus on the actual work to write the interrupt function.

success