Nios® II 트리플 스피드 이더넷(TSE) 예시 설계가 계층적 Qsys를 사용하여 하위 시스템으로 인스턴스화되는 경우, 주변 장치로 올바른 경로를 정의하려면 예제 소프트웨어에 수동 수정이 필요합니다.
예제 소프트웨어는 TSE 예제 설계에서 구성 요소의 인스턴스 이름을 사용하지만, TSE 설계가 Qsys의 하위 시스템으로 인스턴스화되면 계층적 이름으로 미리 보류됩니다. 이로 인해 아래와 유사한 오류가 Nios II 소프트웨어 빌드 도구(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)
오류를 해결하려면 Eclipse Nios II SBT의 응용 프로그램 프로젝트 내의 아래 단계를 따르십시오.
- network_utilities.c를 열고 "EXT_FLASH" -> "_ EXT_FLASH"에 대한 찾기 및 교체를 수행합니다.
- 예: 최상위 레벨 .qsys 시스템이 최상위 .qsys 프로젝트 검색에서 "QSYS_TOP"이라고 하면 "EXT_FLASH"을 검색하고 "QSYS_TOP_EXT_FLASH"으로 대체합니다.
- 전에:
#define EXT_FLASH_NAME "/dev/ext_flash"
- 후:
#define QSYS_TOP_EXT_FLASH "/dev/ext_flash"
- 예: 최상위 레벨 .qsys 시스템이 최상위 .qsys 프로젝트 검색에서 "QSYS_TOP"이라고 하면 "EXT_FLASH"을 검색하고 "QSYS_TOP_EXT_FLASH"으로 대체합니다.
- tse_my_system.c 편집: TSE 정보 구조가 생성될 때 사용되는 #defines 매크로를 업데이트하려면 10줄:
- 전에:
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) };
- 후:
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) };
- 전에:
- 소프트웨어 응용 프로그램 프로젝트 재구축
이 정보는 향후 버전의 Nios II 및 TSE 예제 디자인에 포함될 예정입니다.
설명서.