Intel/Altera und Makros

Gast #6094420
Lesenswert?
• ▲
▼
Ich will gerade etwas mit NIOS ("Software"-Mikrocontroller auf einem 
Intel FPGA) herumspielen, und die mitgelieferten Bibliotheken sehen da 
so aus:
1
/* Page Erase Operation */
2
#define ALTERA_ONCHIP_FLASH_PAGE_ERASE(base, page_erase_block_address)          \
3
    (                                                                           \
4
        IOWR_ALTERA_ONCHIP_FLASH_CONTROL((base),                                \
5
            (IORD_ALTERA_ONCHIP_FLASH_CONTROL((base))                           \
6
            &                                                                   \
7
                ~(                                                              \
8
                    ALTERA_ONCHIP_FLASH_CONTROL_ALLSECTOR_WRITE_PROTECT_MSK |   \
9
                    ALTERA_ONCHIP_FLASH_CONTROL_PAGE_ERASE_MSK |                \
10
                    ALTERA_ONCHIP_FLASH_CONTROL_SECTOR_ERASE_MSK                \
11
                )                                                               \
12
            )                                                                   \
13
            |                                                                   \
14
                (                                                               \
15
                    ALTERA_ONCHIP_FLASH_CONTROL_ALLSECTOR_WRITE_ENABLE  |       \
16
                    (page_erase_block_address) |                                \
17
                    ALTERA_ONCHIP_FLASH_CONTROL_SECTOR_ERASE_NOT_SET            \
18
                )                                                               \
19
        )                                                                       \
20
    )

Makros bestehend aus zeilenweise anderen Makros (teils wieder solche 
Funktionen). Laut Datei-Header stammt das von 2014! Intel hat es echt 
geschafft die Bibliotheken fast vollständig in Makros zu schreiben. Gibt 
es irgendeinen sinnvollen Grund dafür? Ist das bei Xilinx auch so?

Ich muss jedenfalls etwas debuggen und werde gerade fast verrückt.
#6094459
Lesenswert?
• ▲
▼
Marco schrieb:
> Gibt
> es irgendeinen sinnvollen Grund dafür?

Sinnvoll? Weiß ich nicht.

Aber wie willst Du das groß anders machen, wenn - im Gegensatz zu einem 
fix in Hardware gegossenen µC - tatsächlich so ungefähr nichts fix ist?

I/O-Register können "(n)irgendwo" sein, Flash kann ein anderer sein, ...

All das ergibt sich ja erst, wenn es im Qsys festgeschrieben ist.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.