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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> ARM startup code
x893
сообщение Nov 4 2017, 17:59
Сообщение #16


Профессионал
*****

Группа: Свой
Сообщений: 1 333
Регистрация: 27-10-08
Из: Планета Земля
Пользователь №: 41 226



Мда-а-а пипец
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 4 2017, 17:59
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(doom13 @ Nov 4 2017, 20:55) *
; тут в r0 значение 0x1860
; после выполнения #0000010c в r0 = 0x1870, r3, r4, r5, r6 = 0xffffffff

Такое ощещение, что у вас "хвост" от прошивки потерялся. Что в бинарном файле по адресу 0x1860?
Go to the top of the page
 
+Quote Post
doom13
сообщение Nov 4 2017, 18:18
Сообщение #18


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(x893 @ Nov 4 2017, 20:59) *
Мда-а-а пипец

Можно развернутоsm.gif

Цитата(aaarrr @ Nov 4 2017, 20:59) *
Такое ощещение, что у вас "хвост" от прошивки потерялся. Что в бинарном файле по адресу 0x1860?

Если правильно сгенерил бинарник (из хелпа на ARM DS-5):
Код
fromelf --bin --output=outfile.bin infile.axf

то вроде всё нормально???
Эскизы прикрепленных изображений
Прикрепленное изображение
 

Прикрепленные файлы
Прикрепленный файл  outfile.bin.txt ( 6.12 килобайт ) Кол-во скачиваний: 6
 
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 4 2017, 18:56
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(doom13 @ Nov 4 2017, 21:18) *
то вроде всё нормально???

Проверьте содержимое флеш.
Go to the top of the page
 
+Quote Post
doom13
сообщение Nov 4 2017, 19:55
Сообщение #20


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Да, спасибо, ступил. Ушел с работы, потом подумал, что надо было по адресам флэшки глянутьsm.gif
Go to the top of the page
 
+Quote Post
doom13
сообщение Nov 8 2017, 06:30
Сообщение #21


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(aaarrr @ Nov 4 2017, 20:59) *
Такое ощещение, что у вас "хвост" от прошивки потерялся. Что в бинарном файле по адресу 0x1860?

Получается, что потерялся:
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
doom13
сообщение Nov 8 2017, 08:02
Сообщение #22


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



В опциях проекта установлена галка: C/C++ Build->Settings->Binary Parsers->Elf Parser, пытаюсь посмотреть, что собой представляет файл *.axf,
получаю, что прошивка заканчивается по адресам 0x00000668, команда fromelf даёт бинарник на 12 байт больше (это и есть значения для инициализации глобальных переменных).
Чего-то не хватает в *.sct-файле либо криво установлен ARM DS-5?
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 8 2017, 09:02
Сообщение #23


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(doom13 @ Nov 8 2017, 11:02) *
Чего-то не хватает в *.sct-файле либо криво установлен ARM DS-5?

С .sct все нормально. Не знаю, что не так Elf Parser'ом, всегда fromelf использовал.
Go to the top of the page
 
+Quote Post
doom13
сообщение Nov 8 2017, 09:19
Сообщение #24


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(aaarrr @ Nov 8 2017, 12:02) *
С .sct все нормально. Не знаю, что не так Elf Parser'ом, всегда fromelf использовал.

Какую IDE Вы используете?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 8 2017, 09:41
Сообщение #25


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(doom13 @ Nov 8 2017, 12:19) *
Какую IDE Вы используете?

Geany sm.gif
Сейчас я не использую ARM'овские компиляторы. Раньше просто в Post Build'е ставил вызов bat-файла с fromelf и прочим.
Go to the top of the page
 
+Quote Post
doom13
сообщение Nov 15 2017, 15:53
Сообщение #26


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Приветствую.
Не хочет ARM DS-5 нормально стартовать отладку программы. Пример работы программы на рисунке 1.
scatter-file:
Код
; *************************************************************
; ** Scatter-Loading Description File generated by RTE CMSIS Plug-in **
; *************************************************************
LR_IROM1 0x00000000 0x00040000  {  ; load region size_region
  ER_IROM1 0x00000000 0x00040000  {; load address = execution address
   *.o (RESET, +First)
   *(InRoot$$Sections)
   .ANY (+RO)
  }
  RW_IRAM1 0x10000000 0x00008000  {; RW data
   .ANY (+RW +ZI)
  }
  RW_IRAM2 0x2007C000 0x00008000  {
   .ANY (+RW +ZI)
  }
}

Какая-то внутренняя штука ARM DS-5 может распарсить и показать, что представляет собой файл прошивки *.axf (см. рисунки 2, 3, 4), получаем файл прошивки 1680 байт, после запуска дебага во flash памяти не хватает 20 байт для инициализации переменных.
Консоль GDB плюёт следующие сообщения:
CODE

365,640 (gdb)
365,641 &"symbol-file \"C:\\\\DS-5 Workspace\\\\startup\\\\Debug\\\\startup.axf\"\n"
365,642 ~"Reading symbols from C:\\DS-5 Workspace\\startup\\Debug\\startup.axf..."
365,642 &"warning: Loadable section \"RW_IRAM2\" outside of ELF segments\n"
365,643 ~"done.\n"
365,646 24^done
365,646 (gdb)
365,646 &"load \"C:\\\\DS-5 Workspace\\\\startup\\\\Debug\\\\startup.axf\"\n"
365,647 ~"Loading section RW_IRAM2, size 0x14 lma 0x2007c000\n"
365,647 25+download,{section="RW_IRAM2",section-size="20",total-size="13880"}
365,647 25+download,{section="RW_IRAM2",section-sent="20",section-size="20",total-sent="20",total-si\
ze="13880"}
365,889 ~"Loading section ER_IROM1, size 0x67c lma 0x0\n"
365,891 25+download,{section="ER_IROM1",section-size="1660",total-size="13880"}
366,392 ~"Start address 0xcc, load size 1680\n"
366,392 ~"Transfer rate: 2 KB/sec, 840 bytes/write.\n"
366,393 25^done
366,393 (gdb)

Кто что может сказать по этому поводу?
Спасибо.

PS:
Один и тот же проект компилился последним Keil-ом и ARM DS-5, код на выходе получается одинаковый, только адреса переменных глобальных поменялись между собой. Если залить кейлом файл от DS-5, то всё будет ОК, во flash ляжет вся прошивка, если наоборот, то результат работы DS-5 не меняется.
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение

 
Go to the top of the page
 
+Quote Post
Grizzzly
сообщение Nov 16 2017, 13:26
Сообщение #27


Знающий
****

Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748



А вы не пробовали использовать вместо GDB отладчика собственный ARM DS-5? Или там что-то сугубо свое навороченное для продвинутых jtag'ов?
Сейчас у вас есть axf файлы, полученные ARM DS5 и Keil. Я не понял, чем вы их загружаете. Какой именно утилитой. OpenOCD или штатными средствами ARM DS и Keil?

P.S. А что с release версиями? Не смотрели? Правильный ли код получается?

UPD. Совсем дурацкий вопрос. У вас в обеих средах тулчейны одинаковы (компилятор 5-й версии, а не 6-й clang)?
Go to the top of the page
 
+Quote Post
doom13
сообщение Nov 16 2017, 15:13
Сообщение #28


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Grizzzly @ Nov 16 2017, 16:26) *
А вы не пробовали использовать вместо GDB отладчика собственный ARM DS-5? Или там что-то сугубо свое навороченное для продвинутых jtag'ов?

Как я понял - для продвинутых.
Цитата(Grizzzly @ Nov 16 2017, 16:26) *
Сейчас у вас есть axf файлы, полученные ARM DS5 и Keil. Я не понял, чем вы их загружаете. Какой именно утилитой. OpenOCD или штатными средствами ARM DS и Keil?

Для Keil всё штатно, для ARM DS-5 - OpenOCD (настройки на рисунке).
Цитата(Grizzzly @ Nov 16 2017, 16:26) *
P.S. А что с release версиями? Не смотрели? Правильный ли код получается?

Код одинаковый, только адреса глобальных переменных между собой поменялись.
Цитата(Grizzzly @ Nov 16 2017, 16:26) *
P.S. А что с release версиями? Не смотрели? Правильный ли код получается?
UPD. Совсем дурацкий вопрос. У вас в обеих средах тулчейны одинаковы (компилятор 5-й версии, а не 6-й clang)?

Цитата(Grizzzly @ Nov 16 2017, 16:26) *
UPD. Совсем дурацкий вопрос. У вас в обеих средах тулчейны одинаковы (компилятор 5-й версии, а не 6-й clang)?

Да, одинаковы.

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Grizzzly
сообщение Nov 16 2017, 16:04
Сообщение #29


Знающий
****

Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748



Я думаю, надо смотреть в сторону OpenOCD. Вы прежде им пользовались для данного контроллера? Надо внимательно посмотреть на его настройки.
Go to the top of the page
 
+Quote Post
doom13
сообщение Nov 16 2017, 16:11
Сообщение #30


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Использовал средства GNU ARM Eclipse, там на выходе .elf-file ( все работало), тут - .axf, думаю проблема в нем.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 16:10
Рейтинг@Mail.ru


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