Дмитрий@Demnlight
Пользователь
Информация
- В рейтинге
- Не участвует
- Откуда
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Дата рождения
- Зарегистрирован
- Активность
Специализация
Десктоп разработчик, Инженер встраиваемых систем
Средний
C++
C
ASM
Программирование микроконтроллеров
Оптимизация кода
Специальный технологический центр - гибрид. 3/2
Жду продолжение статьи по всем 3 пунктам
Недавно встретили баг, на новой версии компилятора.
Прошивка просто висла при прыжке в функцию, логи нормально помочь не смогли, полезли программатором, оказалось что компилятор новой версии генерировал инструкцию LDRD, для того что бы вытащить uint64_t. Который у нас находился по невыравненному адресу. А ядрышко так не умеет :)
STM32F437
Компилятор старой версии генерировал просто 2х LDR.
На последнем скрине чистый псевдокод на C/C++, который получили после дизассемблирования