Xilinx Microblaze C и сборка - PullRequest
       99

Xilinx Microblaze C и сборка

1 голос
/ 08 января 2010

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

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

Ответы [ 4 ]

2 голосов
/ 24 января 2011

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

AR # 18561. 11.1 EDK - Как включить встроенную сборку в исходные файлы C?

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

1 голос
/ 19 января 2010

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

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

Я не знаю, какую функцию Microblaze вы хотите переписать, но вы всегда можете перейти в каталог установки Xilinx (например, C: \ Xilinx \ 13.4 \ ISE_DS \ EDK \ sw \ lib \ bsp \ standalone_v3_00_a \ src \ microblaze) для изменения функций или даже для включения вашего собственного файла на языке ассемблера в специальную библиотеку программного обеспечения.

...