Forum: Mikrocontroller und Digitale Elektronik IAR Interrupts


von Leopold N. (leo_n)


Lesenswert?

Hallo,

wo, bzw. in welcher Datei werden bei IAR die Interrupts (mit Name, 
Adresse,...) festgelegt?
µC: STM32F103C8T6

Grüße

von Peter (Gast)


Lesenswert?

In der Startup Datei.
startup_stm32f103xx.s zum Beispiel..

Da steht keine Adresse sondern ein Offset zum Start der Vector Tabelle

von Leopold N. (leo_n)


Lesenswert?

Peter schrieb:
> In der Startup Datei.
> startup_stm32f103xx.s zum Beispiel..
>
> Da steht keine Adresse sondern ein Offset zum Start der Vector Tabelle

Ich würde mir diese Tabelle gerne selber schreiben (bitte nicht nörgeln 
wieso, und dass die vorgefertigten Libs ja sowieso besser sind...)

Wie kann ich das machen?

von Peter (Gast)


Lesenswert?

Ist eine Blöde Idee gewisse Dinge solltest du 1 zu 1 übernehmen da iar 
einige Init Routinen nutzt und vor der Main aufruft.


; Cortex-M version
;

        MODULE  ?cstartup

        ;; Forward declaration of sections.
        SECTION CSTACK:DATA:NOROOT(3)

        SECTION .intvec:CODE:NOROOT(2)

        EXTERN  __iar_program_start
        EXTERN  SystemInit
        PUBLIC  __vector_table

        DATA
__vector_table
        DCD     sfe(CSTACK)
        DCD     Reset_Handler             ; Reset Handler

        DCD     NMI_Handler               ; NMI Handler
        DCD     HardFault_Handler         ; Hard Fault Handler
        DCD     MemManage_Handler         ; MPU Fault Handler
        DCD     BusFault_Handler          ; Bus Fault Handler
        DCD     UsageFault_Handler        ; Usage Fault Handler
        DCD     0                         ; Reserved
        DCD     0                         ; Reserved
        DCD     0                         ; Reserved
        DCD     0                         ; Reserved
        DCD     SVC_Handler               ; SVCall Handler
        DCD     DebugMon_Handler          ; Debug Monitor Handler
        DCD     0                         ; Reserved
        DCD     PendSV_Handler            ; PendSV Handler
        DCD     SysTick_Handler           ; SysTick Handler

         ; External Interrupts
        DCD     WWDG_IRQHandler                   ; Window WatchDog
        DCD     PVD_IRQHandler                    ; PVD through EXTI 
Line detection
        DCD     TAMP_STAMP_IRQHandler             ; Tamper and 
TimeStamps through the EXTI line
        DCD     RTC_WKUP_IRQHandler               ; RTC Wakeup through 
the EXTI line
        DCD     FLASH_IRQHandler                  ; FLASH
        DCD     RCC_IRQHandler                    ; RCC
        DCD     EXTI0_IRQHandler                  ; EXTI Line0
        DCD     EXTI1_IRQHandler                  ; EXTI Line1
        DCD     EXTI2_IRQHandler                  ; EXTI Line2
        DCD     EXTI3_IRQHandler                  ; EXTI Line3


Das sind die ersten Zeilen schau dir mal die Datei an vielleicht wird es 
dir dann klarer

von Leopold N. (leo_n)


Lesenswert?

Peter schrieb:
> Das sind die ersten Zeilen schau dir mal die Datei an vielleicht wird es
> dir dann klarer

Hab ich schon, aber die ganzen Codewörter, die dort drin stehen, sagen 
mir nichts.
Kann mir das jemand erklären?

von fusi (Gast)


Lesenswert?

Google doch einfach jedes Wort. Anders wirst du auf keine Lösung kommen.

Fang z.b. mit "EXTI0_IRQHandler" an.

von Peter (Gast)


Lesenswert?

Einige sind in der Iar Hilfe erklärt dort solltest du erst einmal 
suchen.

von Blume (Gast)


Lesenswert?

Leopold N. schrieb:
> Ich würde mir diese Tabelle gerne selber schreiben (bitte nicht nörgeln
> wieso, und dass die vorgefertigten Libs ja sowieso besser sind...)
>
> Wie kann ich das machen?

Keine Ahnung von der Materie aber alles selber machen.

WTF

von Leopold N. (leo_n)


Lesenswert?

Blume schrieb:
> Leopold N. schrieb:
>> Ich würde mir diese Tabelle gerne selber schreiben (bitte nicht nörgeln
>> wieso, und dass die vorgefertigten Libs ja sowieso besser sind...)
>>
>> Wie kann ich das machen?
>
> Keine Ahnung von der Materie aber alles selber machen.
>
> WTF

Nennt sich Lernprozess...
Aber danke für deine überaus hilfreiche Antwort.

von Cyblord -. (cyblord)


Lesenswert?

Leopold N. schrieb:

> Nennt sich Lernprozess...

Ne, das nennt sich Dummfrech.

Wirklich Lernen würde bedeuten du nutzt erst mal das was bereits da ist 
und verstehst das Vorhandene zu 100%.
Dann kannst du dich dran machen das zu verbessern und dein eigenes Ding 
zu machen.

: Bearbeitet durch User
von Mike R. (thesealion)


Lesenswert?

Cyblord -. schrieb:
> Wirklich Lernen würde bedeuten du nutzt erst mal das was bereits da ist
> und verstehst das Vorhandene zu 100%.

Das kann man von den heutigen Makern doch nicht erwarten. Da wird 
einfach etwas kopiert und wenn das nicht funktioniert wird halt die 
nächste Library probiert, vielleicht geht das ja besser.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.