реклама на сайте
подробности

 
 
> Проблемы с адресацией памяти.
tdi@013h
сообщение Feb 8 2011, 11:37
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 8-02-11
Пользователь №: 62 795



Здравствуйте уважаемые форумчане. Свалилась на меня задача обновления комплекса ПО (Eclipse 3.5.1+Codeosurce 4.5.1+OpenOCD всё крутится под Calculate Linux).
Есть железка на stm32f107 и проект под неё написанный. На соседнем компьютере с аналогичным ПО (версии эклипса, кодсоурса по древнее будут) проект собирается, линкуется, заливается в контроллер и всё работает.
С обновлением на стадии линковки начинают лезть ошибки. Проект, все файлы в нём и скрипт линковки идентичны. Ошибки такие
Код
section .ARM.extab.text.__gxx_personality_v0 loaded at [0802e5d0,0802e5f3] overlaps section .init_array loaded at [0802e5d0,0802e5d7]
section .fini_array loaded at [0802e5d8,0802e5db] overlaps section .ARM.extab.text.__gxx_personality_v0 loaded at [0802e5d0,0802e5f3]
section .init loaded at [0802db0c,0802db17] overlaps section .data loaded at [0802db0c,0802e5cf]


Пробовал скормить стандартный сценарий generic.ld из состава Codesource, предварительно изменив количество памяти в тексте сценарии. Проект линкуется, создаёт объект, но на стадии заливки начинаются проблемы (section too long, если не изменяет память, чуть позже скину точный лог).

Кусочно объединить "родной" скрипт и generic.ld не удалось, ошибки.
Текст родного скрипта.

Linker Script

В силу слабого знакомства с предметом темы вообще слабо представлю логику происходящего(кроме того, что с адресацией памяти косяк).

Вопроса два:
Что поправить в "родном" скрипте?
Где бы найти картинку под мой stm32f107 аналогичную этой?


Сообщение отредактировал tdi@013h - Feb 8 2011, 11:41
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
tdi@013h
сообщение Feb 8 2011, 12:46
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 8-02-11
Пользователь №: 62 795



Со скриптом из предыдущего поста получается вот так. Тоже на стадии линковки.
Код
opt/codesource/arm-none-eabi/lib/thumb2/libc.a(lib_a-abort.o): In function `abort':
abort.c:(.text+0xa): undefined reference to `_exit'
/opt/codesource/arm-none-eabi/lib/thumb2/libc.a(lib_a-sbrkr.o): In function `_sbrk_r':
sbrkr.c:(.text+0x12): undefined reference to `_sbrk'
/opt/codesource/arm-none-eabi/lib/thumb2/libc.a(lib_a-signalr.o): In function `_kill_r':
signalr.c:(.text+0x14): undefined reference to `_kill'
/opt/codesource/arm-none-eabi/lib/thumb2/libc.a(lib_a-signalr.o): In function `_getpid_r':
signalr.c:(.text+0x2c): undefined reference to `_getpid'
/opt/codesource/arm-none-eabi/lib/thumb2/libc.a(lib_a-writer.o): In function `_write_r':
writer.c:(.text+0x16): undefined reference to `_write'
/opt/codesource/arm-none-eabi/lib/thumb2/libc.a(lib_a-closer.o): In function `_close_r':
closer.c:(.text+0x12): undefined reference to `_close'
/opt/codesource/arm-none-eabi/lib/thumb2/libc.a(lib_a-fstatr.o): In function `_fstat_r':
fstatr.c:(.text+0x14): undefined reference to `_fstat'
/opt/codesource/arm-none-eabi/lib/thumb2/libc.a(lib_a-isattyr.o): In function `_isatty_r':
isattyr.c:(.text+0x12): undefined reference to `_isatty'
/opt/codesource/arm-none-eabi/lib/thumb2/libc.a(lib_a-lseekr.o): In function `_lseek_r':
lseekr.c:(.text+0x16): undefined reference to `_lseek'
/opt/codesource/arm-none-eabi/lib/thumb2/libc.a(lib_a-readr.o): In function `_read_r'


Решилось добавлением строк
Код
_sbrk = .;                        
               _write = .;                        
               _close = .;                        
               _fstat = .;                        
               _isatty = .;        
               _lseek = .;                        
               _read = .;
               _exit = .;
               _kill = .;
               _getpid = .;

В секцию .text

Спасибо за линк на рабочий скрипт.

Сообщение отредактировал tdi@013h - Feb 8 2011, 12:21
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Feb 8 2011, 14:17
Сообщение #3


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(tdi@013h @ Feb 8 2011, 17:46) *
Решилось добавлением строк
Код
_sbrk = .;                        
               _write = .;                        
               _close = .;                        
               _fstat = .;                        
               _isatty = .;        
               _lseek = .;                        
               _read = .;
               _exit = .;
               _kill = .;
               _getpid = .;

В секцию .text

Ну это не совсем корректный метод. Раз _sbrk() подцепился, значит где-то есть вызов malloc(). И значит программа рухнет при этом вызове.
Вот тут я приаттачивал минимальный набор системных заглушек. Добавьте этот файл к своему проекту, тогда всё будет правильно.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- tdi@013h   Проблемы с адресацией памяти.   Feb 8 2011, 11:37
- - AHTOXA   Вот тут лежит рабочий скрипт для 107.   Feb 8 2011, 11:58
- - tdi@013h   Добавил syscalls, не взлетело. Жалуется на отсутст...   Feb 9 2011, 10:38
|- - AHTOXA   Цитата(tdi@013h @ Feb 9 2011, 15:38) Доба...   Feb 9 2011, 15:18
- - tdi@013h   При запуске тогоже самого через консоль та же байд...   Feb 9 2011, 12:49
- - tdi@013h   openocd запускается так. openocd.cfg в аттаче.   Feb 10 2011, 10:00
- - tdi@013h   Откатился по openocd до 0.3.1, но лыжи по прежнему...   Feb 11 2011, 12:02
- - tdi@013h   Пересобиранием openocd вылечилось. Теперь такая пр...   Feb 22 2011, 12:03
|- - AHTOXA   Цитата(tdi@013h @ Feb 22 2011, 17:03) Куд...   Feb 22 2011, 13:22
- - tdi@013h   К gdb путь явно прописал. /opt/codesource/bin/arm-...   Feb 24 2011, 10:01
- - tdi@013h   Поздравьте. Всю прошлую неделю насиловал "тру...   Feb 28 2011, 12:30
|- - AHTOXA   Бывает   Feb 28 2011, 12:35
- - tdi@013h   Новую тему поднимать не буду, продолжу здесь. С за...   Mar 1 2011, 12:36
|- - Сергей Борщ   QUOTE (tdi@013h @ Mar 1 2011, 14:36) Куда...   Mar 1 2011, 13:05
- - tdi@013h   Библиотеки армовские вместе с компилятором перетащ...   Mar 2 2011, 09:54
|- - Сергей Борщ   QUOTE (tdi@013h @ Mar 2 2011, 11:54) Есть...   Mar 2 2011, 10:06
- - tdi@013h   Методом arm-none-eabi-readelf project -all >...   Mar 3 2011, 10:18


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 20:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.01382 секунд с 7
ELECTRONIX ©2004-2016