Se o Nios® II de exemplo ethernet de velocidade tripla (TSE) for instânciado como um subsistema usando Qsys hierárquico, modificações manuais são necessárias para o Software de exemplo para definir o caminho correto para periféricos.
O software de exemplo usa o nome de instância de componentes no design de exemplo do TSE, mas estes são pré-pendentes com um nome hierárquico se o design do TSE for instanciado como um subsistema em Qsys. Isso causará erros semelhantes ao abaixo a serem vistos na compilação em 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)
Para resolver os erros, siga as etapas abaixo dentro do seu Projeto de aplicativo no Nios II SBT para Eclipse:
- Abra network_utilities.c e execute uma localizar e substituir por "EXT_FLASH" -> "_ EXT_FLASH"
- Por exemplo: se o seu sistema .qsys de nível superior for chamado de "QSYS_TOP" no seu projeto de nível superior .qsys, procure "EXT_FLASH", e substitua por "QSYS_TOP_EXT_FLASH"
- Antes:
#define EXT_FLASH_NAME "/dev/ext_flash"
- Depois:
#define QSYS_TOP_EXT_FLASH "/dev/ext_flash"
- Por exemplo: se o seu sistema .qsys de nível superior for chamado de "QSYS_TOP" no seu projeto de nível superior .qsys, procure "EXT_FLASH", e substitua por "QSYS_TOP_EXT_FLASH"
- Editar tse_my_system.c: linha 10 para atualizar as macros #defines usadas quando a estrutura de informações do TSE for criada:
- Antes:
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) };
- Depois:
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) };
- Antes:
- Reconstrução do projeto de aplicativos de software
Essas informações estão programadas para serem incluídas em uma versão futura do design Nios II e do exemplo TSE
Documentação.