Jump to content

    
Sign in to follow this  
BSACPLD

IAR + PicoRV32 выравнивание кода

Recommended Posts

Коллеги, нужна ваша помощь.

Пишу код под PicoRV32 и столкнулся со следующей проблемой.

Если компилировать проект под ядро RV32IM, то все работает.

Если включить RV32IMC (compressed instruction set), то при выполнении программа падает из-за того, что процессору требуется код выравненный по 4 байтам, а IAR выравнивает по 2 байтам.

Можно ли настроить IAR так чтобы он выравнивал все инструкции по 4 байтам?

Share this post


Link to post
Share on other sites
18 hours ago, Zeal0t said:

есть #pragma pack

но это больше относится к данным

Это только к данным.

18 hours ago, Obam said:

ALIGHNROM 2 ?

Линкер ругается:

Error[Li005]: no definition for "ALIGHNROM 2" [referenced from <internal module>]

Share this post


Link to post
Share on other sites

Виноват:
во-первЫх, ALIGN;
во-вторых, или ALIGNRAM, а ALIGNROM нету как у аэрэма :-(

Секцию с кодом в файле конфигурации линкера (.icf) назначить с требуемым выравниванием (with alignment).
А команды-то сами 2х-байтные? Эт тогда между командами дырки (по 2 байта) будут?

Share this post


Link to post
Share on other sites

Команды 2 или 4 байта в зависимости от типа команды.

Можно пример *.icf для линкера?

Мне нужно чтобы линкер выравнивал весь код. И startup и остальную программу.

Share this post


Link to post
Share on other sites

Прочитал, но так и не понял, как прописать выравнивание для startup кода :(

Для RAM понятно.

Там выравнивание задается при объявлении области памяти через define.

А как это сделать для startup? Мы же его не через define задаем.

Share this post


Link to post
Share on other sites

В настройках линкера заказать создание .map-файла, откуда узнать, куда, в какую секцию попадает стартап (если не можете принудительно приказать ликеру куда размещать стартап), а после задать выравнивание этой секции. Вот как-то так...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this