Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопрос про файлы .lst
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
af1283
Хотелось бы узнать формат этого файла - то есть что там написано помимо ассемблерных команд.

9 00000000 initAll PROC
10 00000000 B510 PUSH {r4,lr}
11 00000002 2101 MOVS r1,#1
12 00000004 0548 LSLS r0,r1,#21
13 00000006 F7FF FFFE BL RCC_AHBPeriphClockCmd
14 0000000A 2001 MOVS r0,#1
15 0000000C 4902 LDR r1,|L0.24|
16 0000000E 7108 STRB r0,[r1,#4]
17 00000010 BD10 POP {r4,pc}
18 00000012 ENDP

Есть некоторые предположения, что первый столбец просто номер строки, второй -смещение в памяти относительно начального адреса для размещения программы(как видно, некоторые команды 16-ти, а некоторые --32-х битные). А вот третий столбец - тоже какой-то адрес, но совершенно непонятный. Особенно интересна строчка

13 00000006 F7FF FFFE BL RCC_AHBPeriphClockCmd

Что такое F7FF FFFE ?
Lagman
Вы знаете как четвертый называется? Думаете это самый низкоуровневый язык? Вот в третьем столбце как раз и есть самый низкоуровневый язык, называется машинный код.
af1283
Цитата(Lagman @ Jan 2 2014, 19:25) *
Вы знаете как четвертый называется? Думаете это самый низкоуровневый язык? Вот в третьем столбце как раз и есть самый низкоуровневый язык, называется машинный код.


У меня была такая мысль, но как я понимаю, эта часть (третий столбец) должна идти в hex в том виде, в каком она представлена в lst-файле, а я там не нашел такого кода.

А вы думаете что hex это самый низкий уровень? Не уверен, утверждать бы не стал.
Lagman
Цитата(af1283 @ Jan 2 2014, 22:43) *
У меня была такая мысль, но как я понимаю, эта часть (третий столбец) должна идти в hex в том виде, в каком она представлена в lst-файле, а я там не нашел такого кода.

А вы думаете что hex это самый низкий уровень? Не уверен, утверждать бы не стал.

Вы все смешали в кучу.
Но если знаете структуру .hex файла, то должны обязательно найти эти коды в нем.
Машинный код не тоже самое что и hex.
Машинный код можно и не в шестнадцатеричной системе счисления записать, а в двоичной.
Предложите свой уровень для машинного кода своего процессора. sm.gif

http://www.gaw.ru/html.cgi/txt/doc/micros/..._arm/survey.htm
Да и вообще документация лежит в открытом виде, надо только немного понажимать кнопки в поисковиках.
af1283
Цитата(Lagman @ Jan 2 2014, 23:05) *
Но если знаете структуру .hex файла, то должны обязательно найти эти коды в нем.


Как я понимаю, первая строка всегда такая
:020000040800F2.

В следующих строках, начинаюшихся с :10000, где последние цифры - это номер строки, располагается вся прошивка. Дальше в каждой из этих строк помещаются коды команд и данные в словах по 4 байта. Последние 2 байта любой строки- это код проверки четности, вычисляемый как FF минус сумма всех байтов с учетом переполнения. Заканчиваются все файлы прошивки строкой :00000001FF

Так что структуру в общих чертах я представляю.


Цитата(Lagman @ Jan 2 2014, 23:05) *
Машинный код не тоже самое что и hex.
Предложите свой уровень для машинного кода своего процессора. sm.gif


Ну, вообще говоря, то что вам ARM позволила писать код для некой абстрактной машины, понимающей файлы прошивки, скажем, hex, не значит, что это самый низкий уровень. Это просто самый низкий пользовательский уровень. Скажите мне уже что-нибудь полезное, ни о чем же разговор, а мне нужна помощь!

Например, как адреса периферии найти, чтоб на асме что-нибудь путное написать?
Lagman
Цитата(af1283 @ Jan 2 2014, 23:28) *
Ну, вообще говоря, то что вам ARM позволила писать код для некой абстрактной машины ...
....
Например, как адреса периферии найти, чтоб на асме что-нибудь путное написать?

Если вы такой грамотный, то начинайте читать книги, а не писать на форуме.

В документации на ваш процессор (вы же пытаетесь из людей сделать ясновидцев и телепатов).

Цитата(af1283 @ Jan 2 2014, 23:28) *
Так что структуру в общих чертах я представляю.

теперь надо представить, что бывают процессоры (а бывают и с выбором) big-endian, little-endian и в зависимости от этого располагаются байты.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.