2010-01-08 5 views
1

У меня есть приложение, написанное на C для XilinxMicroblaze. Однако производительность не совсем то, что я хочу, поэтому я рассматривал возможность перезаписи некоторых основных функций в сборке. У меня возникли проблемы с выяснением того, как заставить Xilinx Platform Studio скомпилировать оба файла в один файл ELF.Xilinx Microblaze C и сборка

Как я могу это сделать?

+0

Какую версию EDK вы используете? – eepp

ответ

1
  1. Проверьте, не работает ли компилятор встроенной сборки. Попробуйте функцию asm() ". Убедитесь, что он поддерживает привязку переменных. Если ваш компилятор основан на GCC, это легко.
  2. Вы всегда можете написать исходный сборщик, собрать его и связать с ним в своем приложении. Вам необходимо понять ABI вашего компилятора, чтобы сделать совместимые функции.
1

Вы прокомментировали, с какой именно плоской производительностью? По моему опыту, основные функции выполняются довольно быстро, поэтому ваш код, вероятно, является источником проблемы. Попробуйте выполнить компиляцию с оптимизацией (-O3) или измените размер кеша (если вы используете кеш).

2

Как предложил Янн, вы можете использовать встроенную сборку. Вот как:

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

Хотя, попробуйте свой код, чтобы определить, где узкие места производительности. SDK Xilinx позволяет навязчивое профилирование. Вы также можете использовать GPIO и осциллограф (или Logic Analyzer с быстрым синхронизирующим тактом), чтобы профилировать ваши функции/секции кода сами.

Приветствия, Erick

0

Я не знаю, какой MicroBlaze функции вы хотите переписать, но вы всегда можете пойти в Xilinx каталог установки (например, C: \ Xilinx \ 13,4 \ ISE_DS \ ЕДК \ SW \ lib \ bsp \ standalone_v3_00_a \ src \ microblaze), чтобы изменять функции или даже включать собственный файл asm в конкретную библиотеку программного обеспечения.