Forum: Mikrocontroller und Digitale Elektronik IAR Interrupts


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Leopold N. (leo_n)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

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

Grüße

von Peter (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
-1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Google doch einfach jedes Wort. Anders wirst du auf keine Lösung kommen.

Fang z.b. mit "EXTI0_IRQHandler" an.

von Peter (Gast)


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

von Blume (Gast)


Bewertung
1 lesenswert
nicht 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)


Bewertung
-1 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.