|
Бутлодырь на мх6 или любом кортекс А9, загрузка и передача управления проге |
|
|
|
Aug 2 2015, 15:17
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Приветствую. Собственно, решился таки на написание собственного бутлоадера для проектов на мх6 До этого обновление программы делала сама программа, переписывая себя саму, но это не айс, как говорится, при неудачной прошивке получается кирпич и без cifmager-а и плясок с бубном работоспособность не вернуть... Собственно вопрос, бутлодырь я гружу в статическую память, благо он не больше 128кило весом Затем поднимаю ФС, которая загружает в память бинарник прошивки с адреса 0х10000000, и как-бы его и запускать надо, да только не запускается, гад Может кто подскажет, какие нюансы там, у стмок просто прибавлял к адресу загрузки 4 и все норм... ЗЫ. "Запускальщик" позаимствовал из проекта на стм.
Сообщение отредактировал mantech - Aug 2 2015, 15:18
|
|
|
|
|
 |
Ответов
|
Aug 4 2015, 15:48
|
Участник

Группа: Участник
Сообщений: 51
Регистрация: 20-11-13
Пользователь №: 79 278

|
Вам собственный бутлоадер нужно перезапускать? я то понял что он у вас отработал и с запуском приложения проблема?
|
|
|
|
|
Aug 4 2015, 18:57
|
Знающий
   
Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050

|
Цитата(mantech @ Aug 4 2015, 19:29)  Нет, конечно  Я написал, что для теста...Ну хоть с чего-то надо начинать. Проверить, где искать точку входа, пусть пока в том, что уже запущено, а потом можно уже и к основной проге переходить, логично? вот вам архив: http://files.webfile.ru/ba7bcc6254723e13c3bc79d6647197f7внутри сделанный из юбутовского примера бинарник скомпиленный для стендалона голый мейн, войти и сразу выйти.. работа на холе: Код => tftpboot 10000000 hello_world.bin Using FEC device TFTP from server 192.168.0.2; our IP address is 192.168.0.136 Filename 'hello_world.bin'. Load address: 0x10000000 Loading: # 134.8 KiB/s done Bytes transferred = 276 (114 hex) => go 10000000 ## Starting application at 0x10000000 ... ## Application terminated, rc = 0x0 ## если добавить выхлоп printf("что угодно"); то вылет: CODE => tftpboot 12000000 hello_world.bin Using FEC device TFTP from server 192.168.0.2; our IP address is 192.168.0.136 Filename 'hello_world.bin'. Load address: 0x12000000 Loading: # 297.9 KiB/s done Bytes transferred = 305 (131 hex) => go 12000000 ## Starting application at 0x12000000 ... data abort
MAYBE you should read doc/README.arm-unaligned-accesses
pc : [<12000048>] lr : [<1200000c>] sp : 2f57be10 ip : 0000000f fp : 00000000 r10: 2ffbab2c r9 : 2f57bf38 r8 : 00000002 r7 : 2f706ae8 r6 : 12000000 r5 : 00000002 r4 : 2f706aec r3 : 12000000 r2 : 2f706aec r1 : 2f706aec r0 : 12000124 Flags: nZCv IRQs off FIQs off Mode SVC_32 Resetting CPU ... resetting ...
U-Boot 2013.10 (Jan 18 2015 - 22:05:09)
CPU: Freescale i.MX6SOLO rev1.1 at 792 MHz Reset cause: WDOG
при рассмотрение видно, что добавление функции printf увеличивает бинарник на ~100 байт, хотя по моим предположениям должно добавить не менее 10кБ. как версия, printf может использовать вызовы функций из юбута, но для сборки под фрискейл что-то не учли - мне разбираться лень.. берете мой *.bin и скармливаете своему "бутлодырю", а там поглядим.. зы примеры лежат в исходниках любого юбута examples/standalone
|
|
|
|
|
Aug 4 2015, 19:49
|
Знающий
   
Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960

|
Цитата(mantech @ Aug 4 2015, 22:07)  Т.к. он при запуске ничего вообще не делает, как я пойму, что он запустился, а не просто повис? Через jtag. Если совсем ничего не работает придется подключать тяжелую артиллерию.
|
|
|
|
|
Aug 5 2015, 07:27
|
Знающий
   
Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960

|
Цитата(mantech @ Aug 5 2015, 09:21)  А вы шутник, однако! Хоть на одной из плат на мх6 у стартера, вы жтаг видели? Я не использую платы стартеркит именно по причине их системной убогости. В первичных макетах всех изделий jtag закладываю в обязательном порядке именно на случай "когда ничего не работает". В последующих ревизиях его выкидываю. без jtag вам нужно * в бутолоадере осуществлять перехват всех исключений с выдачей диагностики * тестовый бинарник создавать в режиме позиционно-независимого кода.
|
|
|
|
Сообщений в этой теме
mantech Бутлодырь на мх6 или любом кортекс А9 Aug 2 2015, 15:17 krux исходники grub же есть, чего вы мучаетесь?
непонят... Aug 2 2015, 15:20 mantech Цитата(krux @ Aug 2 2015, 18:20) исходник... Aug 2 2015, 15:25 krux хз. я вас не понимаю.
у меня в работе система, где... Aug 2 2015, 16:35 mantech Цитата(krux @ Aug 2 2015, 19:35) у меня в... Aug 2 2015, 17:55  _3m Цитата(mantech @ Aug 2 2015, 20:55) Во пе... Aug 3 2015, 05:19 Jury093 Цитата(mantech @ Aug 2 2015, 18:17) Собст... Aug 2 2015, 21:34 mantech Цитата(Jury093 @ Aug 3 2015, 00:34) пройд... Aug 3 2015, 13:42  Jury093 Цитата(mantech @ Aug 3 2015, 16:42) Уже п... Aug 3 2015, 17:16  _3m Цитата(mantech @ Aug 3 2015, 16:42) Бутло... Aug 3 2015, 18:04 Golikov A. кеши которые у вас включены, вы их инвалидейтите п... Aug 3 2015, 16:41 mantech Цитата(Golikov A. @ Aug 3 2015, 19:41) ке... Aug 3 2015, 19:03  Jury093 Цитата(mantech @ Aug 3 2015, 22:03) А есл... Aug 3 2015, 20:02   mantech Цитата(Jury093 @ Aug 3 2015, 23:02) висне... Aug 4 2015, 06:25 AndrejM Цитата(mantech @ Aug 3 2015, 17:42) У мен... Aug 4 2015, 07:55 mantech Цитата(AndrejM @ Aug 4 2015, 10:55) а к ч... Aug 4 2015, 11:05 AndrejM извиняюсь , наврал я вам . это я так хотел сделать... Aug 4 2015, 11:20 mantech Цитата(AndrejM @ Aug 4 2015, 14:20) там r... Aug 4 2015, 14:09    Jury093 Цитата(mantech @ Aug 4 2015, 22:07) Т.к. ... Aug 4 2015, 19:11     mantech Цитата(Jury093 @ Aug 4 2015, 22:11) пусть... Aug 12 2015, 12:05      _3m Цитата(mantech @ Aug 12 2015, 15:05) К со... Aug 13 2015, 05:50       mantech Цитата(_3m @ Aug 13 2015, 08:50) Если и т... Aug 13 2015, 07:26       mantech Цитата(_3m @ Aug 5 2015, 10:27) В первичн... Aug 5 2015, 14:32 AndrejM mantech , а как вы сейчас (ну до того как "бу... Aug 5 2015, 05:17
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|