z768 0 6 июля, 2016 Опубликовано 6 июля, 2016 · Жалоба Прога режет эльф по секциям. Находит программную секцию. Выдергивает прошивку из программной секции. Это не проблема. В эльфе есть секция .data Как я понял там адресация к виртуальной памяти. Сам вопрос... Реально ли пересчитать адреса при подмене разделов в программной секции ? Не имея исходников... Чип амбарелла. Сорри перед сообществом, если чего по-детски написал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 121 6 июля, 2016 Опубликовано 6 июля, 2016 · Жалоба Реально ли пересчитать адреса при подмене разделов в программной секции ? Не имея исходников... Думаю да, запустить линкер, указав ему ваш файл в качестве входного и новый адрес секции .data в командной строке через -Tdata=адрес -Tbss=org -Tdata=org -Ttext=org Same as --section-start, with .bss, .data or .text as the sectionname. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
z768 0 6 июля, 2016 Опубликовано 6 июля, 2016 · Жалоба Прогу написал я сам, линкер смогу и упрятать в ресурсы проги. Это не проблема. Я линкер не смог запустить. Понимаю ... командная строка... Матерится в ответ С этим разбираться буду отдельно. Если я правильно понял из доки, ему еще и скрипт нужен... Может кто чего-то подобное совершал, поделитесь плиз. В Си не силен но разберусь, пусть на это уйдет и масса времени. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 121 6 июля, 2016 Опубликовано 6 июля, 2016 · Жалоба Если я правильно понял из доки, ему еще и скрипт нужен...Если хотите - можете указать и скрипт. У меня получилось вот так: arm-none-eabi-ld -Tdata=0x120000 input.elf -o output.elf Вместо arm-none-eabi-ld подставьте имя своего линкера, с остальным, думаю, разберетесь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
z768 0 7 июля, 2016 Опубликовано 7 июля, 2016 (изменено) · Жалоба Спасибо. Если чего не получится задам вопросы. Надеюсь никакие бля-бля-теки не нужно подключать. :rolleyes: У меня в системе даже среда арм не установлена. А эльф вскрыть не составило большого труда, почти как работа с текстовым файлом. При этом без всяких сторонних утилит. Правда моя программа заточена только для амбы. Изменено 7 июля, 2016 пользователем z768 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 121 7 июля, 2016 Опубликовано 7 июля, 2016 · Жалоба Если чего не получится задам вопросы.Это всегда пожалуйста (см. мою подпись) ;) У меня в системе даже среда арм не установлена.Честно говоря, гугля по запросу "umbrella mcu" выдал кучу ерунды и ни одной ссылки на процессор или контроллер. Так что я даже и не знаю - а ARM ли он. Может вам нужен gcc и не для ARM вовсе.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 37 7 июля, 2016 Опубликовано 7 июля, 2016 · Жалоба Это всегда пожалуйста (см. мою подпись) ;) Честно говоря, гугля по запросу "umbrella mcu" выдал кучу ерунды и ни одной ссылки на процессор или контроллер. Так что я даже и не знаю - а ARM ли он. Может вам нужен gcc и не для ARM вовсе.... Это узкоспециализированная SOC для видеосистем на основе Cortex A9. Доки по этому чипу нет. CPU – ARM Cortex-A9 processor with 32KB/32KB I/D and 128 KB L2 Cache, NEON and FPU, Crypto Engine – AES/3/DES/SHA-1/MD5 DSP / VPU – Ambarella Image and Video DSPs Sensor and Video I/O RGB Bayer sensor port: 8-lane SLVS/MIPI/HiSPI BT.601/656/1120 video in and BT.656/1120 out PAL/NTSC composite SD video out Read more: http://www.cnx-software.com/tag/ambarella/#ixzz4Dl6qnZjl Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
z768 0 9 июля, 2016 Опубликовано 9 июля, 2016 · Жалоба Это арм архитектура. Часть материала для чипа а2 у меня есть. Повторяю, вскрыть эльф, зная его строение не составило проблем. При этом не применял никаких сторонних утилит. Выдернуть из секции .техт все програмные разделы, которые входят в прошивку... тоже нет проблем. В эльфе даже нет пересчета контрольных сумм, только смещения и длины. В секцию .техт вложены разделы прошивки, там в каждом разделе есть пересчет crc32. Моя прога все это разложит и при редактировании все правильно пересчитает. Но это так сказать отступление от вопроса, что бы вы были в теме. Меня больше всего интересует сборка эльфа, при подмене разделов в секции .техт. Сорри, пока не занимался и задаю вопросы, пока просто времени не хватает. Почему так всегда происходит, садишься за свою работу, у посторонних тоже проблемы, вот и получается сапожник без сапог... ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
z768 0 11 июля, 2016 Опубликовано 11 июля, 2016 · Жалоба Сергей, спасибо за помощь. LD запустил. Уже радует. Но меня интересует немного иной вопрос. Возможно я сам неправильно его задал, либо вы неправильно поняли. Мне не нужно преобразование из эльфа в эльф. При разборке эльфа у меня получается условно говоря, ну 9 секций. Типа sec0.bin, sec1.bin, ... sec8.bin Одну из них я модифицирую, т.е. программную, которая как .техт.... ... мне нужно собрать эльф с новой секцией. Это и есть основной вопрос. Матчасть пока изучаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
z768 0 12 июля, 2016 Опубликовано 12 июля, 2016 · Жалоба В общем поразбирался с утилитками из комплекта АРМ. Моя прога выполняет полностью функции arm-elf-objcopy.ехе. Т.е. arm-elf-objcopy.exe -O binary -j .text 1.elf Sec.bin Ну возможно с не большими извращениями в названиях файлов. Как эти бинарники слинковать, я так и не понял. Попытался запустить arm-elf-objdump, натравить на секцию - выдает неизвестный формат. По эльфу - все окей. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 121 12 июля, 2016 Опубликовано 12 июля, 2016 · Жалоба Как эти бинарники слинковать, я так и не понял.Ой, как-то можно было, даже тут на форуме примеры проскакивали. Вот, например. Как-то можно было сразу двоичный файл линковщику давать, но не могу найти те сообщения. Вот еще. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
z768 0 12 июля, 2016 Опубликовано 12 июля, 2016 · Жалоба Сергей, в принципе могу и программу отправить. В личку конечно, ну что б не думал что я чего-то нереальное спрашиваю. Я и сам инет активно читаю... но пока ответов не нахожу. Возможно программа и другие эльфы разложит, но она заточена под определенный чип. Т.е. амбарелла. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 121 13 июля, 2016 Опубликовано 13 июля, 2016 · Жалоба Спасибо, конечно, но зачем? Мне хватает тех программ, которые идут в комплекте с гцц. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
z768 0 16 июля, 2016 Опубликовано 16 июля, 2016 · Жалоба Сергей, извини, почему на связь не выходил. У нас природа чудес натворила. Как только исправлю последствия, обязательно отпишу. Фото выкладывать не буду, потому как есть оффтоп, сорри. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
z768 0 20 июля, 2016 Опубликовано 20 июля, 2016 · Жалоба Сергей, спасибо за помощь. Кстати больше всего полезной инфы нашел на этом форуме. В общем, просто так прилинковать голый бинарник у меня не получилось с помощью arm-elf-ld. Но при помощи утилитки objcopy я конвертировал бинарник в объектный файл и процесс пошел. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться