2010-01-08 6 views
1

XilinxMicroblaze 코어의 C로 작성된 응용 프로그램이 있습니다. 그러나 성능이 내가 원하는 바가 아니기 때문에 어셈블리의 핵심 기능 중 일부를 다시 작성하는 것을 고려하고있었습니다. 자일링스 플랫폼 스튜디오 (Xilinx Platform Studio)를 단일 ELF 파일로 컴파일하는 방법을 알아 내는데 어려움이 있습니다.Xilinx Microblaze C 및 어셈블리

어떻게하면됩니까?

+0

어떤 EDK 버전을 사용하고 있습니까? – eepp

답변

1
  1. 컴파일러가 인라인 어셈블리를 구현하는지 확인하십시오. asm() 함수를 사용해보십시오. 변수 참조를 지원하는지 확인하십시오. 컴파일러가 GCC 기반이라면 쉽습니다.
  2. 항상 원시 어셈블러를 작성하고 어셈블하여 응용 프로그램에 연결할 수 있습니다. 호환 기능을 만들기 위해서는 컴파일러의 ABI를 이해해야합니다.
1

실적이 저조한 부분을 정확히 파악 했습니까? 제 경험으로 볼 때 핵심 기능은 매우 빠르므로 코드가 문제의 원인 일 수 있습니다. 최적화 (-O3) 또는 캐시 크기 변경 (캐시를 사용하는 경우)으로 컴파일 해보십시오.

2

Yann이 제안한대로 인라인 어셈블리를 사용할 수 있습니다.

http://www.xilinx.com/support/answers/18561.htm

비록, 성능 병목 위치를 확인하는 코드를 프로파일 링하려고 방법은 다음과 같습니다이다. 자일링스의 SDK는 침투성 프로파일 링을 허용한다. 또한 GPIO와 오실로스코프 (또는 고속 트리거링 클럭이있는 로직 애널라이저)를 사용하여 함수/코드 섹션을 스스로 프로파일 링 할 수 있습니다.

건배, 에릭

(예를 들어, 설치 디렉토리 난 당신이 다시 원하는 기능을 마이크로 블레이즈있는 모르겠지만, 당신은 항상 자일링스에 갈 수
0

, C : \ 자일링스 \ 13.4 \ ISE_DS \ EDK \ 자상 \ lib \ bsp \ standalone_v3_00_a \ src \ microblaze) 함수를 수정하거나 특정 소프트웨어 라이브러리에 자신의 asm 파일을 포함시킬 수도 있습니다.