ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
25 апреля
817847
misyachniy (20.02.2018 17:15, просмотров: 2968)
Как я искал методику поиска "улета" программы. Делал отладку по следующей инструкции: https://www.iar.co …n-in-stand-alone-mode/ 1) Файл ReportCheckFailedStdout.c не удалось прикрутить
Error[Li006]: duplicate definitions for "__iar_ReportCheckFailedStdoutAbort"; in "E:\Halt\maisb_s6\KPA_MAIS\firmware\Debug\Obj\ReportCheckFailedStdout.o", and "ReportCheckFailedStdout.o(as4l.a)" Error while running Linker
2)Исключил файл из проекта, IAR сам взял в библиотеке as4l.a. Получил в окошке "Terminal I/O" ошибку CRUN_ERROR: 0x7000005 0x103849 0x20335C 0x20339D 0x20335C 0x20339C 0x102A10 Записал ее в файл "catch_1.out" Начал пробовать ее декодировать 3)По ссылке предлагается подредактировать .bat файл
"Append -–rtc_filter after --rtc_enableand save the file."
В сгенерированом .bat файл Нету "--rtc_enableand" 4) При запуске даю имя файла с сохраненым текстом
emu_pouo.Debug.cspy.bat catch_1.out Failed to generate .sim file from debug file: catch_1.outFlash loading failed CSpyBat terminating.
5) Запустил батник без ничего - расшифровки нет:
execUserReset() Enable Main Oscillator Set PLL to 96MHz Set Master Clock to 48MHz CRUN_ERROR: 0x7000005 0x103849 0x20335C 0x20339D 0x20335C 0x20339C 0x102A10
К тому же запускается программа на выполнение 6)Перечитал инструкцию еще раз Понял(решил), что нужно подсовывать не файл с кодами ошибок, а выходной файл линкера Все равно выводит запускает программу, выводит строку с ошибкой. Кроме того в примере курсор нарисован в конце строки, у меня сразу строка переводиться куросор в начале строки на клавишу enter не реагирует, только ctrl^C. 7)Открыл файл emu_pouo.Debug.general.xcl который как оказалось вместо параметров передается, нашел --rtc_enable добавил -–rtc_filter Получил ошибку и перечень команд:
... --rtc_enable Enable C-Run runtime checking --rtc_output <output file> The name of the file to which C-RUN messages will be written. Use .xml extension to get xml format, any other extension for text --rtc_raw_to_txt <file> The name of the raw C-RUN messages file that should be converted to text ...
8) Задал имя для --rtc_output - не помогло: файл создается но пустой 9) Дал имя --rtc_raw_to_txt Наконец-то получил: crun_fail Access out of bounds -- Access outside pointer bounds: -- Access 0x0020335c - 0x0020339d -- Bounds 0x0020335c - 0x0020339c, char com_bufer[64]; main.c\71:6-14 -- DLib_Product_string.h\57:5-30 -- emu_real.c\206:6-51 10) Ищу 206 строку memcpy(target_buf, emu_rx_read_pointer, bytes); 11 ;-) 12 - Как оперативно(без файла) подставлять коды для анализа, я так и не понял. P.S. Поиск в Google "__iar_ReportCheckFailed" lftn 4 ссылки: три на EWARM_DebuggingGuide.ENU.pdf одна на ту что в начале поста. P.P.S RTFM - меньше голова болит. P.P.P.S Где предпросмотр страницы перед отсылкой на сервер?