Wenn das Nios® II-TSE-Beispieldesign (Triple Speed Ethernet) unter Verwendung von Subsystemen mit einer Qsys instanziert wird, sind manuelle Änderungen an der Beispielsoftware erforderlich, um den richtigen Pfad zu Peripheriegeräten zu definieren.
Die Beispielsoftware verwendet den Instanznamen von Komponenten im TSE-Beispieldesign, diese sind jedoch mit einem zusätzlichen Namen vorgeformt, wenn das TSE-Design als Untersystem in Qsys instanziiert wird. Dies führt zu ähnlichen Fehlern wie bei der Kompilierung in Nios II Software Build Tools (SBT):
error: 'EXT_FLASH_NAME' undeclared here (not in a function)
error: 'TSE_MAC_BASE' undeclared here (not in a function)
error: 'TSE_MAC_BASE' undeclared here (not in a function)
error: 'TSE_MAC_TRANSMIT_FIFO_DEPTH' undeclared here (not in a function)
error: 'TSE_MAC_RECEIVE_FIFO_DEPTH' undeclared here (not in a function)
error: 'TSE_MAC_USE_MDIO' undeclared here (not in a function)
error: 'TSE_MAC_ENABLE_MACLITE' undeclared here (not in a function)
error: 'TSE_MAC_MACLITE_GIGE' undeclared here (not in a function)
error: 'TSE_MAC_IS_MULTICHANNEL_MAC' undeclared here (not in a function)
error: 'TSE_MAC_NUMBER_OF_CHANNEL' undeclared here (not in a function)
Um die Fehler zu beheben, folgen Sie den Schritten unten in Ihrem Anwendungsprojekt im Nios II SBT für Eclipse:
- Öffnen Sie network_utilities.c und führen Sie einen Such- und Ersatz für "EXT_FLASH" -> "_ EXT_FLASH" durch.
- Beispiel: Wenn Ihr .qsys-System der obersten Ebene in Ihrer .qsys-Projektebene "QSYS_TOP" genannt wird, suchen Sie nach "EXT_FLASH" und ersetzen Sie es durch "QSYS_TOP_EXT_FLASH"
- Bevor:
#define EXT_FLASH_NAME "/dev/ext_flash"
- Nach:
#define QSYS_TOP_EXT_FLASH "/dev/ext_flash"
- Beispiel: Wenn Ihr .qsys-System der obersten Ebene in Ihrer .qsys-Projektebene "QSYS_TOP" genannt wird, suchen Sie nach "EXT_FLASH" und ersetzen Sie es durch "QSYS_TOP_EXT_FLASH"
- Bearbeiten Sie tse_my_system.c: Zeile 10, um die #defines Makros zu aktualisieren, die beim Erstellen der TSE-Infostruktur verwendet werden:
- Bevor:
alt_tse_system_info tse_mac_device[MAXNETS] = { TSE_SYSTEM_EXT_MEM_NO_SHARED_FIFO(TSE_MAC, 0, SGDMA_TX, SGDMA_RX, TSE_PHY_AUTO_ADDRESS, 0, DESCRIPTOR_MEMORY) };
- Nach:
alt_tse_system_info tse_mac_device[MAXNETS] = { TSE_SYSTEM_EXT_MEM_NO_SHARED_FIFO(QSYS_TOP_TSE_MAC, 0, QSYS_TOP_SGDMA_TX, QSYS_TOP_SGDMA_RX, TSE_PHY_AUTO_ADDRESS, 0, QSYS_TOP_DESCRIPTOR_MEMORY) };
- Bevor:
- Wiederherstellung des Softwareanwendungsprojekts
Diese Informationen werden voraussichtlich in einer zukünftigen Version des Nios II- und TSE-Beispieldesigns enthalten sein.
Dokumentation.