Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: opeocd выравнивает секцию во флеши
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
Дмитриос
Загружаю программу в LPC2768

openocd + gdb + codeblocks

вот листиг дизассемблера
CODE
dee4: 7fffe9ac svcvc 0x00ffe9ac
dee8: 00000001 andeq r0, r0, r1

Disassembly of section .vectors_in_ram:

40000000 <_data-0x38>:
...

Disassembly of section .data:

40000038 <status>:
40000038: 00000101 andeq r0, r0, r1, lsl #2


то есть с адреса deeС должна лежать копия сгмента данных

то есть _data = 40000038
однако openocd или gdb тупо выревнивает его и пишет
Код
Info : Padding image section 0 with 4 bytes
Warn : keep_alive() was not invoked in the 1000ms timelimit. GDB alive packet not sent! (1125). Workaround: increase "set remotetimeout" in GDB

что получается теперь сегменты данных выравниваются по 8 байт что ли?

Если простотреть дам памяти то

Код
0xdee0: b0 af 02 80 ac e9 ff 7f|01 00 00 00 ff ff ff ff  
0xdef0: 01 01 00 00 00 a2 4a 04|00 00 00 00 2c 03 00 40


В итоге openocd просто сместил копию сегмента памяти? Нагло вставил 0xffffff? wacko.gif
Дмитриос
Упс biggrin.gif . Проблема была в неправильном скрипте линкера. А я уже грешным делом "катил бочку" на openocd. Прошу закрыть тему!


Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.