Diskuze - danyk.cz

Vlákno z kategorie: Hlavní diskuze
Celkem 5 odpovědí.


7.02.2018 (03:55:49) K # IP X
RayeR (web) :
Kurva to je zas prekvapko. Updatnul sem arm-gcc 6.3.1 na 7.2.1 a kod prestal fungovat. Tak hledam a koukam, ze optimalizator LTO (parametr -flto) mi vyhodil kod obsluhy presruseni, listing:
drive:
.text.USART2_IRQHandler
0x08000f90 0xa8 ..\Temp\cckJZ3oJ.ltrans0.ltrans.o
0x08000f90 USART2_IRQHandler

nyni:
.text.Default_Handler
0x08000fec USART2_IRQHandler

Zkousim ho presvedcit atributy
__attribute__((interrupt))
__attribute__((used))
u definice ISR a stejne mi to vzdy vyhodi. Pokud -lfto vyradim, tak vse funguje spravne, ale kod nakyne o nepouzivane funkce...
7.02.2018 (10:12:51)  # IP X
metan obalka :
Zkus __attribute__((externally_visible)) to se pouziva v kernelu na funkce ktere jsou volane jenom z assembleru, coz je trosku neco jineho, ale mohlo by to zafungovat.
7.02.2018 (11:39:49)  # IP X
RayeR (web) :
Nn, zadna zmena. Tam bude nakej problem s tim, jak to deli kazdou funkci do samostatny sekce, mozna by pomohlo v linker skriptu udelat specialni kodovou sekci pro ISR oznacenou jako KEEP, pak by na to snad nesahal, ale je to zas kapanek nestandardni zasah do ld skriptu, kerej pouzivam generickej...
7.02.2018 (13:30:25)  # IP X
8-bit obalka (web) :
Nebo řekni šéfovi, ať ti koupí normální, fungující překladač **02
7.02.2018 (18:06:39)  # IP X
RayeR (web) :
No, nesoudil bych tak rychle,mozna bude pes zakopanej v STM Cube startup souboru, kde sou preddefinovany jemena ISR takto:
.section .isr_vector,"a",%progbits
.type g_pfnVectors, %object
.size g_pfnVectors, .-g_pfnVectors
g_pfnVectors:
.word _estack
.word Reset_Handler
...
.word USART2_IRQHandler
...
.weak USART2_IRQHandler
.thumb_set USART2_IRQHandler,Default_Handler
a mozna to ma byt napsane nejak jinak. Pokud tu ISR funci nejak prejmenuju, ze se neshoduje s tim aliasem, tak vyhozena neni...
2.03.2018 (12:16:06)  # IP X
RayeR (web) :
Přezdívka:
Heslo:
Text: