x893 35 4 ноября, 2017 Опубликовано 4 ноября, 2017 · Жалоба Мда-а-а пипец Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 64 4 ноября, 2017 Опубликовано 4 ноября, 2017 · Жалоба ; тут в r0 значение 0x1860 ; после выполнения #0000010c в r0 = 0x1870, r3, r4, r5, r6 = 0xffffffff Такое ощещение, что у вас "хвост" от прошивки потерялся. Что в бинарном файле по адресу 0x1860? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 4 ноября, 2017 Опубликовано 4 ноября, 2017 · Жалоба Мда-а-а пипец Можно развернуто:) Такое ощещение, что у вас "хвост" от прошивки потерялся. Что в бинарном файле по адресу 0x1860? Если правильно сгенерил бинарник (из хелпа на ARM DS-5): fromelf --bin --output=outfile.bin infile.axf то вроде всё нормально??? outfile.bin.txt Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 64 4 ноября, 2017 Опубликовано 4 ноября, 2017 · Жалоба то вроде всё нормально??? Проверьте содержимое флеш. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 4 ноября, 2017 Опубликовано 4 ноября, 2017 · Жалоба Да, спасибо, ступил. Ушел с работы, потом подумал, что надо было по адресам флэшки глянуть:) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 8 ноября, 2017 Опубликовано 8 ноября, 2017 · Жалоба Такое ощещение, что у вас "хвост" от прошивки потерялся. Что в бинарном файле по адресу 0x1860? Получается, что потерялся: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 8 ноября, 2017 Опубликовано 8 ноября, 2017 · Жалоба В опциях проекта установлена галка: C/C++ Build->Settings->Binary Parsers->Elf Parser, пытаюсь посмотреть, что собой представляет файл *.axf, получаю, что прошивка заканчивается по адресам 0x00000668, команда fromelf даёт бинарник на 12 байт больше (это и есть значения для инициализации глобальных переменных). Чего-то не хватает в *.sct-файле либо криво установлен ARM DS-5? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 64 8 ноября, 2017 Опубликовано 8 ноября, 2017 · Жалоба Чего-то не хватает в *.sct-файле либо криво установлен ARM DS-5? С .sct все нормально. Не знаю, что не так Elf Parser'ом, всегда fromelf использовал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 8 ноября, 2017 Опубликовано 8 ноября, 2017 · Жалоба С .sct все нормально. Не знаю, что не так Elf Parser'ом, всегда fromelf использовал. Какую IDE Вы используете? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 64 8 ноября, 2017 Опубликовано 8 ноября, 2017 · Жалоба Какую IDE Вы используете? Geany :) Сейчас я не использую ARM'овские компиляторы. Раньше просто в Post Build'е ставил вызов bat-файла с fromelf и прочим. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 15 ноября, 2017 Опубликовано 15 ноября, 2017 · Жалоба Приветствую. Не хочет ARM DS-5 нормально стартовать отладку программы. Пример работы программы на рисунке 1. scatter-file: ; ************************************************************* ; ** Scatter-Loading Description File generated by RTE CMSIS Plug-in ** ; ************************************************************* LR_IROM1 0x00000000 0x00040000 { ; load region size_region ER_IROM1 0x00000000 0x00040000 {; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) } RW_IRAM1 0x10000000 0x00008000 {; RW data .ANY (+RW +ZI) } RW_IRAM2 0x2007C000 0x00008000 { .ANY (+RW +ZI) } } Какая-то внутренняя штука ARM DS-5 может распарсить и показать, что представляет собой файл прошивки *.axf (см. рисунки 2, 3, 4), получаем файл прошивки 1680 байт, после запуска дебага во flash памяти не хватает 20 байт для инициализации переменных. Консоль GDB плюёт следующие сообщения: 365,640 (gdb) 365,641 &"symbol-file \"C:\\\\DS-5 Workspace\\\\startup\\\\Debug\\\\startup.axf\"\n" 365,642 ~"Reading symbols from C:\\DS-5 Workspace\\startup\\Debug\\startup.axf..." 365,642 &"warning: Loadable section \"RW_IRAM2\" outside of ELF segments\n" 365,643 ~"done.\n" 365,646 24^done 365,646 (gdb) 365,646 &"load \"C:\\\\DS-5 Workspace\\\\startup\\\\Debug\\\\startup.axf\"\n" 365,647 ~"Loading section RW_IRAM2, size 0x14 lma 0x2007c000\n" 365,647 25+download,{section="RW_IRAM2",section-size="20",total-size="13880"} 365,647 25+download,{section="RW_IRAM2",section-sent="20",section-size="20",total-sent="20",total-si\ ze="13880"} 365,889 ~"Loading section ER_IROM1, size 0x67c lma 0x0\n" 365,891 25+download,{section="ER_IROM1",section-size="1660",total-size="13880"} 366,392 ~"Start address 0xcc, load size 1680\n" 366,392 ~"Transfer rate: 2 KB/sec, 840 bytes/write.\n" 366,393 25^done 366,393 (gdb) Кто что может сказать по этому поводу? Спасибо. PS: Один и тот же проект компилился последним Keil-ом и ARM DS-5, код на выходе получается одинаковый, только адреса переменных глобальных поменялись между собой. Если залить кейлом файл от DS-5, то всё будет ОК, во flash ляжет вся прошивка, если наоборот, то результат работы DS-5 не меняется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grizzly 0 16 ноября, 2017 Опубликовано 16 ноября, 2017 · Жалоба А вы не пробовали использовать вместо GDB отладчика собственный ARM DS-5? Или там что-то сугубо свое навороченное для продвинутых jtag'ов? Сейчас у вас есть axf файлы, полученные ARM DS5 и Keil. Я не понял, чем вы их загружаете. Какой именно утилитой. OpenOCD или штатными средствами ARM DS и Keil? P.S. А что с release версиями? Не смотрели? Правильный ли код получается? UPD. Совсем дурацкий вопрос. У вас в обеих средах тулчейны одинаковы (компилятор 5-й версии, а не 6-й clang)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 16 ноября, 2017 Опубликовано 16 ноября, 2017 · Жалоба А вы не пробовали использовать вместо GDB отладчика собственный ARM DS-5? Или там что-то сугубо свое навороченное для продвинутых jtag'ов? Как я понял - для продвинутых. Сейчас у вас есть axf файлы, полученные ARM DS5 и Keil. Я не понял, чем вы их загружаете. Какой именно утилитой. OpenOCD или штатными средствами ARM DS и Keil? Для Keil всё штатно, для ARM DS-5 - OpenOCD (настройки на рисунке). P.S. А что с release версиями? Не смотрели? Правильный ли код получается? Код одинаковый, только адреса глобальных переменных между собой поменялись. P.S. А что с release версиями? Не смотрели? Правильный ли код получается? UPD. Совсем дурацкий вопрос. У вас в обеих средах тулчейны одинаковы (компилятор 5-й версии, а не 6-й clang)? UPD. Совсем дурацкий вопрос. У вас в обеих средах тулчейны одинаковы (компилятор 5-й версии, а не 6-й clang)? Да, одинаковы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grizzly 0 16 ноября, 2017 Опубликовано 16 ноября, 2017 · Жалоба Я думаю, надо смотреть в сторону OpenOCD. Вы прежде им пользовались для данного контроллера? Надо внимательно посмотреть на его настройки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 16 ноября, 2017 Опубликовано 16 ноября, 2017 · Жалоба Использовал средства GNU ARM Eclipse, там на выходе .elf-file ( все работало), тут - .axf, думаю проблема в нем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться