Jump to content
    

Отладка в "IAR for ARM" кода, сгенерированного иным компилятором.

32 minutes ago, jcxz said:

SES = "SES | Satellite Communication Service Provider"

Мне не спутник нужен.

Спутница ?

image.png.06ba3be93e62dd41435c7987a1163295.png

Share this post


Link to post
Share on other sites

12 hours ago, jcxz said:

"отлаживать в gdb" - это вообще визуальный отладчик? Или там из командной строки?

Для него полно фронтэндов, и текстовых, и графических. Так что ничего страшного и неудобного нет.

7 hours ago, jcxz said:

Но вряд-ли их будет много (если вообще будут).

Если при сборке под IAR были включены все опции по проверке программы, а не оставлены дефолтные, то под gcc такие программы у меня собирались и работали без ошибок.

Edited by tonyk_av

Share this post


Link to post
Share on other sites

12 часов назад, x893 сказал:

SES забыли. Если руки две, то и за полчаса можно наиграться.

Тоже вариант. Главное - не забыть третьей рукой отключить от USB CMSIS-DAP, прежде чем её запускать, иначе висит с таким вот сообщением:

image.png.e563a359ee3b572e959473332bfe9d14.png

После отключения CMSIS-DAP закрывается. Или то "местный эффект"?

Share this post


Link to post
Share on other sites

9 часов назад, jcxz сказал:

Не уверен, что нет скрытых багов, которые вылезут после сборки другим компилятором/компоновщиком.

Если делаете это впервый раз, то кое-что может вылезти. IAR не так требователен к наличию volatile и  более лоялен к constexpr ограничениям. Если asm-ом сильно не балуетесь, конечно.

А так, я уже давно делаю проекты, которые собираются (и даже работают) в IAR, Keil и GCC. Стартап написать универсальный да и всё.

startup_iar_gcc_keil_stm32G030.c low_level_init.cpp

Share this post


Link to post
Share on other sites

30 минут назад, VladislavS сказал:

А так, я уже давно делаю проекты, которые собираются (и даже работают) в IAR, Keil и GCC.

Рядовой код без прекрас, может, и будет собираться сразу. А так - специфичные для IAR атрибуты, как минимум, могут заставить переворачивать проект.

Share this post


Link to post
Share on other sites

Что за специфичные атрибуты, пример? IAR давно уже всё допилил для совместимости.

Share this post


Link to post
Share on other sites

Насколько я помню, несколько отличались поведения атрибутов выравнивания и упаковки. Ну и атрибут размещения в секции тоже.

Share this post


Link to post
Share on other sites

IAR давно поддерживает __attribute__((packed))  __attribute__((aligned(16)))  __attribute__((section(".init"))).

Share this post


Link to post
Share on other sites

Как я понимаю, проблема в различии форматов объектных файлов. Так что загрузить трудно.

Когда имел то такое удовольствие:

Имеется .hex файл но нет исходников. К каждому слову из файла приписал db и получился ассемблерный файл.

Загрузил в IAR и под отладчиком нашёл ошибку.

Share this post


Link to post
Share on other sites

3 минуты назад, dOb сказал:

Имеется .hex файл но нет исходников. К каждому слову из файла приписал db и получился ассемблерный файл.

Загрузил в IAR и под отладчиком нашёл ошибку.

Загрузить готовый .bin/.hex - не проблема. Вопрос был про связывание строк и переменных исходного кода с командами этого самого образа.

Share this post


Link to post
Share on other sites

Он же стандартные elf делает, там всё связано. А вот как его загрузить... Ozone так точно умеет, это его основной режим.

 

Share this post


Link to post
Share on other sites

32 минуты назад, VladislavS сказал:

IAR давно поддерживает __attribute__((packed))  __attribute__((aligned(16)))  __attribute__((section(".init"))).

Всё это знаю и уже применил. И многое другое. Есть некоторые проблемы пока с intrinsic-функциями, с которыми в GCC как-то не очень...  :sad:

Также впереди - адаптация .asm-файлов.

 

PS: Ещё - ОЧЕНЬ хреновый в GCC формат листинг-файлов (си/си++ компилятор). Может кто подскажет что-то более читаемое? Близкое к формату IAR.

Более всего в листингах мешает огромный объём стороннего текста (кроме собственно команд). Как его уменьшить? А также - отсутствие строк исходного кода в листинге (как у IAR).

Формат листингов - дефолтный. Пока не разбирался. Может кто сразу подскажет - как его улучшить?

Только что, VladislavS сказал:

Ozone так точно умеет, это его основной режим.

Ещё раз - Ozone мимо, так как не бесплатный.

Share this post


Link to post
Share on other sites

9 минут назад, jcxz сказал:

Ещё раз - Ozone мимо, так как не бесплатный.

У вас вроде J-Link-ов разных туева хуча была...

image.thumb.png.ab7d5b1bcc3a17f4e25fbe143cfe589e.png

19 минут назад, jcxz сказал:

Есть некоторые проблемы пока с intrinsic-функциями

Они же в CMSIS забиты.

Share this post


Link to post
Share on other sites

22 минуты назад, VladislavS сказал:

У вас вроде J-Link-ов разных туева хуча была...

Ну да... и ни одного оригинального.  :biggrin:

22 минуты назад, VladislavS сказал:

Они же в CMSIS забиты.

Не использую. В IAR-е они есть и без всяких CMSIS.

Share this post


Link to post
Share on other sites

3 минуты назад, jcxz сказал:

Ну да... и ни одного оригинального.

Работодатель жмот ? 😂

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.

×
×
  • Create New...