|
|
 |
Ответов
|
May 16 2016, 16:20
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(Alechek @ May 16 2016, 19:09)  Единственное, для чего мне это понадобилось, это скинуть дамп регистров при возникновении Fault. Пришлось написать вставку на ASM для копирования регистров в память (структуру). Остальная работа на C. Зачем копировать? Там уже все в стеке (правда, нужно определить правильный стек). CODE .global HardFaultException .extern print_fault HardFaultException: mov r0, sp push {lr} bl print_fault pop {pc}
void print_fault(sFAULT *fault) { con_str("FAULT:\n\r"); con_str("r0 = "); con_dword(fault->r0); con_str(", "); con_str("r1 = "); con_dword(fault->r1); con_str(", "); con_str("r2 = "); con_dword(fault->r2); con_str(", "); con_str("r3 = "); con_dword(fault->r3); con_str("\n\r"); con_str("r12 = "); con_dword(fault->r12); con_str(", "); con_str("lr = "); con_dword(fault->lr); con_str(", "); con_str("pc = "); con_dword(fault->pc); con_str(", "); con_str("xpsr = "); con_dword(fault->xpsr); con_str("\n\r"); con_start(); }
typedef struct sFAULT { DWORD r0; //!< Регистр R0 DWORD r1; //!< Регистр R1 DWORD r2; //!< Регистр R2 DWORD r3; //!< Регистр R3 DWORD r12; //!< Регистр R12 DWORD lr; //!< Регистр LR DWORD pc; //!< Регистр PC DWORD xpsr; //!< Регистр XPSR } sFAULT;
|
|
|
|
Сообщений в этой теме
hardgame Чтение внутренних регистров STM32 May 16 2016, 14:10 Forger Цитата(hardgame @ May 16 2016, 17:10) Ест... May 16 2016, 14:31 prottoss Цитата(Forger @ May 16 2016, 20:31) Я бы ... May 16 2016, 14:35  Forger Цитата(prottoss @ May 16 2016, 17:35) А е... May 16 2016, 14:44   prottoss Цитата(Forger @ May 16 2016, 20:44) Вот п... May 16 2016, 16:17 scifi Цитата(Forger @ May 16 2016, 17:31) Я бы ... May 16 2016, 15:05   adnega Цитата(aaarrr @ May 16 2016, 22:42) А R4-... May 16 2016, 19:59    aaarrr Цитата(adnega @ May 16 2016, 22:59) Меня ... May 16 2016, 20:27     adnega Цитата(aaarrr @ May 16 2016, 23:27) У мен... May 16 2016, 20:38      aaarrr Цитата(adnega @ May 16 2016, 23:38) А на ... May 16 2016, 21:24 jcxz Цитата(Alechek @ May 16 2016, 22:09) Един... May 17 2016, 02:00  Alechek Цитата(jcxz @ May 17 2016, 07:00) И где г... May 17 2016, 05:22   jcxz Цитата(Alechek @ May 17 2016, 11:22) __st... May 17 2016, 08:48    scifi Цитата(jcxz @ May 17 2016, 11:48) Ещё раз... May 17 2016, 09:01     jcxz Цитата(scifi @ May 17 2016, 15:01) Как гд... May 17 2016, 10:33 prottoss ИМХО - лучше всего сделать отдельный ассемблерный ... May 16 2016, 16:21 hardgame Всем Спасибо за комментарии. Регистры были необход... May 16 2016, 17:35 Alechek jcxz, если делать что-то бездумно - то возможны лю... May 17 2016, 11:00 adnega Цитата(Alechek @ May 17 2016, 14:00) И не... May 17 2016, 11:10  Копейкин Цитата(adnega @ May 17 2016, 14:10) Листи... May 17 2016, 11:34   adnega Цитата(Копейкин @ May 17 2016, 14:34) Ком... May 17 2016, 11:51    Alechek Цитата(adnega @ May 17 2016, 16:41) Зачем... May 17 2016, 11:57 jcxz Цитата(Alechek @ May 17 2016, 17:00) jcxz... May 18 2016, 05:05 Alechek adnega, речь немного не про такой случай.
Использо... May 17 2016, 11:40 Alechek jcxz, сравнивать неопределеность, исходящую от ком... May 18 2016, 06:00
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|