Si la conception de l’exemple Nios® II TSE (Triple Speed Ethernet) est instancedée en tant que sous-système à l’aide de Qsys hiérarchiques, des modifications manuelles sont nécessaires au logiciel de l’exemple pour définir le chemin correct vers les périphériques.
L’exemple du logiciel utilise le nom d’instance des composants dans la conception de l’exemple TSE, mais ceux-ci sont pré-couplés avec un nom hiérarchique si la conception TSE est instantanément couplée à un sous-système dans Qsys. Cela entraîne des erreurs similaires à celles ci-dessous qui sont visibles sur la compilation dans Nios II les outils de construction de logiciels (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)
Pour résoudre les erreurs, suivez les étapes ci-dessous dans votre projet d’application dans le Nios II SBT pour Eclipse :
- Ouvrez network_utilities.c et effectuez une recherche et un remplacement pour « EXT_FLASH » -> « _ EXT_FLASH »
- Par exemple : si votre système .qsys de haut niveau est appelé « QSYS_TOP » dans votre projet .qsys de haut niveau, recherchez « EXT_FLASH » et remplacez par « QSYS_TOP_EXT_FLASH »
- Avant:
#define EXT_FLASH_NAME "/dev/ext_flash"
- Après:
#define QSYS_TOP_EXT_FLASH "/dev/ext_flash"
- Par exemple : si votre système .qsys de haut niveau est appelé « QSYS_TOP » dans votre projet .qsys de haut niveau, recherchez « EXT_FLASH » et remplacez par « QSYS_TOP_EXT_FLASH »
- Modifiez tse_my_system.c : ligne 10 pour mettre à jour les macros #defines utilisées lors de la création de la structure d’informations TSE :
- Avant:
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) };
- Après:
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) };
- Avant:
- Reconstruire le projet d’application logicielle
Ces informations doivent être incluses dans une version ultérieure de la conception de l’exemple de Nios II et du TSE
Documentation.