CubeIDE как ходить по дизассемблеру?

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
compote
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Вт фев 04, 2020 12:28:50

CubeIDE как ходить по дизассемблеру?

Сообщение compote »

Подскажите, можно ли в CubeIDE ходить по дизассемблеру? Поискал, но ничего не нашел. Можно переходить на текущий адрес, по какому-то адресу, а просто ходить по командам не получается. Получается это
просто просмотровщик?

Изображение
Реклама
a797945
Мучитель микросхем
Сообщения: 446
Зарегистрирован: Вс ноя 01, 2015 09:15:16
Откуда: 69.Ржев

Re: CubeIDE как ходить по дизассемблеру?

Сообщение a797945 »

извини - за навигацию не скажу, в кубе дальше вариантов по ногам не ходил.
а на такой листинг смотреть ну очень печально :(
Реклама
compote
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Вт фев 04, 2020 12:28:50

Re: CubeIDE как ходить по дизассемблеру?

Сообщение compote »

[uquote="a797945",url="/forum/viewtopic.php?p=3997075#p3997075"]на такой листинг смотреть ну очень печально :([/uquote]
Так это просто проверка. Было интересно как ведет себя компилятор при одиночном копировании, через memcpy, и с каких адресов он берет данные, при const массиве и при обычном. И как влияет static при определении массива глобально и локально :shock:
a797945
Мучитель микросхем
Сообщения: 446
Зарегистрирован: Вс ноя 01, 2015 09:15:16
Откуда: 69.Ржев

Re: CubeIDE как ходить по дизассемблеру?

Сообщение a797945 »

я "впечатлен" работой именно компилятора.
только что обращался к соседнему байту - и надо ж, заново формирует адрес.
впрочем, если оптимизация выключена, наверно, так и надо.
Реклама
Эиком - электронные компоненты и радиодетали
compote
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Вт фев 04, 2020 12:28:50

Re: CubeIDE как ходить по дизассемблеру?

Сообщение compote »

[uquote="a797945",url="/forum/viewtopic.php?p=3997098#p3997098"]я "впечатлен" работой именно компилятора[/uquote]
Все никак не мог понять, куда деваются массивы-) Наверное это оптимизация. Если копируешь всего пару байт из const массива, то компилятор вообще не размещает массив во флеше.

Чем отличаются вкладки Debugging и Optimization?
Изображение Изображение
Реклама
a797945
Мучитель микросхем
Сообщения: 446
Зарегистрирован: Вс ноя 01, 2015 09:15:16
Откуда: 69.Ржев

Re: CubeIDE как ходить по дизассемблеру?

Сообщение a797945 »

... всего пару байт из const массива,..
а зачем ему создавать лишние сущности. пару констант он и по ходу дела в нужные места может поставить.
Реклама
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: CubeIDE как ходить по дизассемблеру?

Сообщение Мурик »

compote писал(а):Чем отличаются вкладки Debugging и Optimization?
Разве не видно?
На первой задается уровень детализации отладочных данных, а не второй уровень оптимизации при компиляции.
Изучайте https://gcc.gnu.org/onlinedocs/gcc/Debu ... ng-Options
https://gcc.gnu.org/onlinedocs/gcc/Opti ... ze-Options
compote писал(а):И как влияет static при определении массива глобально и локально
Давайте я поищу за вас! http://www.c-cpp.ru/books/staticheskie- ... peremennye
https://coderoad.ru/572547/Что-означает-static-в-C
compote
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Вт фев 04, 2020 12:28:50

Re: CubeIDE как ходить по дизассемблеру?

Сообщение compote »

[uquote="Мурик",url="/forum/viewtopic.php?p=3997216#p3997216"]На первой задается уровень детализации отладочных данных, а не второй уровень оптимизации при компиляции[/uquote]
Спасибо за ссылки, ознакомлюсь!

[uquote="Мурик",url="/forum/viewtopic.php?p=3997216#p3997216"]Давайте я поищу за вас![/uquote]
Уже нашел, привёл в пример, что изучил этот вопрос еще и на практике-) Спасибо, что не прошли мимо :beer:
Аватара пользователя
ymv
Родился
Сообщения: 3
Зарегистрирован: Сб апр 16, 2016 20:34:38

Re: CubeIDE как ходить по дизассемблеру?

Сообщение ymv »

Камрады, а вот кстати связанный вопрос. Можно ли в КубеИДЕ получать более вменяемый дизанутый текст, нежели чем его стандартный .list-файл? В .list-файле мне не нравится, что там сопоставляется только вызов функции и код, а вот простой оператор Си (присвоение, инкремент и т.п.) что-то нигде я там не вижу, чтобы он сопоставлялся ассемблерным командам.
Ответить

Вернуться в «ARM»