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.