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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren