Поиск
Показаны результаты для тегов 'simplicity studio'.
-
EFM32 и Simplicity Studio, дебаг проекта
kreker опубликовал тема в Все остальные микроконтроллеры
Доброго дня. Спрошу тут, авось кто-нибудь поможет. IDE, эклипсо-подобная: Simplicity Studio v5 МК: EFM32GG11B120F2048GM64 В своей поделке использую cJSON библиотеку. Спустя пару минут работы программного цикла ловлю Hardfault, похоже, связанный именно с этой либой: каким-то образом output_size увеличилось до 13618, хотя на выходе размер строки не должен быть больше 200+ символов. Вместе с формированием \ отправкой строк постоянно рабоает таймер по прерыванию (раз в секунду) и GPIO прерывание (раз в 8 миллисекунд каждые 100 миллисекунд). Каким образом можно определить, почему происходит переполнение буфера? Если что-то не указал - скажите, дополню. Быстрые ссылки на код в либе: printf_string_ptr(), print_object(), print_value(), print_array(), print_value(), print_object(), print_value(), print(), cJSON_PrintUnformatted() Регистры состояния: HardFault: SCB->CFSR 0x00008200 SCB->HFSR 0x40000000 SCB->MMFAR 0x20083399 SCB->BFAR 0x20083399 SP 0x2007fe08 R0 0x2007fe67 R1 0x20002adb R2 0x20002adb R3 0x00003533 R12 0x00000000 LR 0x0000a0af PC 0x0000a0b0 PSR 0x01000000 [HardFault] SP = 2007fe08 R0 = 2007fe67 R1 = 20002adb R2 = 20002adb R3 = 00003533 R12 = 00000000 LR [R14] = 0000a0af - Subroutine Call return address PC [R15] = 0000a0b0 - Program Counter PSR = 01000000 BFAR = 20083399 - Bus Fault SR/Address causing bus fault CFSR = 00008200 - Config. Fault SR HFSR = 40000000 - Hard Fault SR :FORCED, Bus fault/Memory management fault/usage fault DFSR = 00000000 - Debug Fault SR MMAR = 20083399 - Memory Manage Address R AFSR = 00000000 - Auxilirary Fault SR SCB->SHCSR= 00000000 - System Handler Control and State R (exception) Дизассемблер, ошибку проставляет по строке: 0000a0b0: strb r6,[r7,r3] Немного кода.