ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
16 октября
1548382
AlexG (Сегодня, 08:05 - 08:39, просмотров: 224)
Кто-нибудь разбирался как на RISC-V/GCC можно размотать стек вызовов (сделать stack trace)? Для AVR/IAR это было элементарно и очень полезно временами - при перезапуске в результате сбоя моя прошивка сохраняла и показывала стек вызовов и либо сразу было видно, где в программе произошел сбой, либо видно, что в стеке был мусор и это какое-то переполнение. 

Пробую портировать на RISC-V/GCC один давний проект сделанный изначально на AVR/IAR и перед этим портированный на ARM/IAR, но не полностью. GCC взят так как IAR для RISC-V не ломается до рабочего состояния, на сколько я знаю.

В проете накопилось много всякого полезного, удобного и завязанного на компилятор и архитектуру:

- экран смерти с дампом стека вызовов

- не инициализируемые переменные

- переменные уложенные до заданному адресу

- атомарно выполняемые функции

- подмена библиотечных функций работы со временем на модифицированные

- прозрачная работа c EEPROM/эмуляция EEPROM.

- обновление прошивки