![]() |
Модераторы: PILOT, ManiaK, Mazzi |
![]() ![]() ![]() |
|
daemonaz |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 160 Регистрация: 4.5.2008 Репутация: нет Всего: нет |
Вопрос к знатокам eCOS, имеются готовые откомпилированные с помошью ecosconfig библиотеки для jtag и ram, процессор At91sam9263, я новичок и работал чаше всего с ram, мне удобно заливать бинарники через Redboot.
Но некоторые функции, недостающиеся в ram, но находятся в jtag, и генерирует только формата elf, вопрос можно ли каким то способом преобразовать его в bin, чтобы была возможность прошить в терминалке верез redboot без программатора? |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
Можно. Утилита objcopy из тулчейна. Но сначала убедитесь, что из вашего elf в принципе можно сделать один bin файл (посмотрите секции в elf файле с помощью objdump)
|
|||
|
||||
daemonaz |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 160 Регистрация: 4.5.2008 Репутация: нет Всего: нет |
Спасибо.
Библиотеки скомпилированы не мною, а программистами, которые уже уволились, оставив мне в наследии пару лайбов: один так называемый ram я так понял заточен для написания приложения, бинарник его можно прошивать через redboot с помошью команды load, а второй jtag специфический для работы с jtag, бинарник тоже генерирует, но какой-то неправильный, в результате только мы получаем только elf. Я хотел бы уточнить возможно ли преобразовать этот elf в правильный бинарник? Что нужно посмотреть? заголовки? Вот что у меня получилось ![]() Это сообщение отредактировал(а) daemonaz - 26.4.2012, 10:51 |
|||
|
||||
500mhz |
|
|||
![]() шайтан ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1017 Регистрация: 5.5.2008 Где: Киев / Italy Репутация: нет Всего: 14 |
Выкиньте debug info и скажите компилятору скомпилировать все в 1 секцию под нужный адрес
-------------------- |
|||
|
||||
daemonaz |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 160 Регистрация: 4.5.2008 Репутация: нет Всего: нет |
500mhz, как это сделать поподробней если несложно?
Наверное имеете ввиду objcopy --strip-debug или --remove-section .debug_info? |
|||
|
||||
daemonaz |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 160 Регистрация: 4.5.2008 Репутация: нет Всего: нет |
сравнивил заголовки двух elf одного и того же приложения, но скомпилированных под jtag и под ram, разница между ними лишь в размерах секции, затем в makefile вижу такую строку
arm-eabi-objcopy --strip-debug --strip-unneeded $@ -O binary ${BIN}/$@.bin это просто удаляет ненужные секции для бинарника, первый бинарник под ram правильный, а второй под jtag какой-то неправильный, то есть при заливке и запуске прошивки через Redboot появляется абракадабра и проц виснет до сброса питания. jtag ![]() ram ![]() Это сообщение отредактировал(а) daemonaz - 26.4.2012, 12:19 |
|||
|
||||
500mhz |
|
|||
![]() шайтан ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1017 Регистрация: 5.5.2008 Где: Киев / Italy Репутация: нет Всего: 14 |
у тебя адрес загрузки ram и jtag какие?
-------------------- |
|||
|
||||
daemonaz |
|
||||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 160 Регистрация: 4.5.2008 Репутация: нет Всего: нет |
500mhz, вот я выложил ldi-файлы
для RAM
для JTAG
исходя из сравнении двух файлов линковки Ldi разница в адресе rom-vectors 0x20032000 vs 0x20000000 это как раз адреса RAM
|
||||||
|
|||||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
Ваши конфигурации собраны под разные адреса загрузки. (Возможно, не только адреса там разные - надо смотреть конфигурации сборки)
Возможно jtag'овские бинари надо шить вместо redboot'а (а может и нет) |
|||
|
||||
daemonaz |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 160 Регистрация: 4.5.2008 Репутация: нет Всего: нет |
xvr, в том то и вся проблема ни порта, ни конфигурации ничего не осталось, есть вот две библиотечные папки: одна ram а другая - jtag, в них содержатся lib и include, да заливается с программатора прямо на redboot, сначала натыкается на зарезервированное место под redboot, затем как то видит свободное место, туда и пишет. Может быть обмануть каким-то способом, мне нужен всего лишь один модуль из-за чего страдаю, это несчатсный spi, которого в ram-конфигурации нет, есть только в jtag.
|
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
Не только 'rom-vectors', но и всего, что за ними идет. Т.е. конфигурация jtag расчитана на прямую загрузку в начало RAM области МК, и явно не через redboot (т.к. он сам там сидит), а через отладочные средства, работающие через JTAG интерфейс с ARM'ом напрямую Добавлено через 2 минуты и 38 секунд Можно. Заливайте через JTAG на адрес 0x20000000 и запускайте оттуда (например через OpenOCD) Это сообщение отредактировал(а) xvr - 26.4.2012, 13:34 |
|||
|
||||
daemonaz |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 160 Регистрация: 4.5.2008 Репутация: нет Всего: нет |
Мне нужен бинарник, чтобы другие люди могли прошивать через Redboot для теста, не прибегая к программаторам и всяким приблюдам типа OpenOCD. По крайней мере понять как залить прошивку и сохранить его в NOR-flash с использованием программатора, поскольку заливается в оперативку, там же запускается.
Это сообщение отредактировал(а) daemonaz - 27.4.2012, 08:07 |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
Только пересобрать нужные бинарники под конфигурацию RAM. Бинарники, собраные под JTAG конфигурацию в принципе не могут быть залиты через RedBoot (в каком бы виде вы их не подавали - в виде elf или bin файлов). И причина не в формате файла, а в том, что они (бинарники) хотят быть запущенными там, где работает сам RedBoot Если пересобрать по каким либо причинам невозможно, то остается вариант с промежуточным загрузчиком, который сам будет грузиться в конфигурации RAM и копировать необходимый образ из себя на 0x2000000 и запускать его там. Но этот вариант очень напоминает вырезание гланд автогеном через жо... ![]() |
|||
|
||||
daemonaz |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 160 Регистрация: 4.5.2008 Репутация: нет Всего: нет |
Пересобрать к сожалению нет такой возможности.
а что если изменить содержимое файла xxx_jtag.ldi и xxx_jtag.h в папке include, а также xxx_jtag.ld в папке lib, там где указан адрес 0x2000000 на тот адрес, который в конфигурации RAM, и скомпилировать заново? Только что попробывал сделать вышеописанное. Вуаля! Все работает! Bin оказался правильным.. Спасибо за помошь! ![]() Это сообщение отредактировал(а) daemonaz - 28.4.2012, 09:34 |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
Ну собственно это и есть один из вариантов 'пересбора' |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)" | |
|
На данный раздел помимо Правил форума распространяются текже следующие правила:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |