OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 18:59

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 166 ]  На страницу Пред.  1 ... 5, 6, 7, 8, 9
Автор Сообщение
 Заголовок сообщения: Re: Компилятор Oberon → ARMv6-M, ARMv7E-M
СообщениеДобавлено: Четверг, 13 Апрель, 2017 15:28 

Зарегистрирован: Пятница, 13 Март, 2015 16:40
Сообщения: 597
Александр, продолжаю разбираться (комментарий вставлен в LOG копи-пастой)
Код:
(* ============================================================
MODULE   HelloWord;

VAR
      A, B   :INTEGER;

BEGIN
      A := 5;
      B := 11;
      B := A + B;

END   HelloWord.
============================================================= *)

O7ARMv7MTool 19.9.2014
decode HelloWord.hex
 00400000H:
   0    00003FF0   SUBS r7, #240
   1    00002000   MOVS r0, #0
   2    0000021B   LSLS r3, r3, #8
   3    00000040   LSLS r0, r0, #1
   4    00000001   MOVS r1, r0

 253    00000000   MOVS r0, r0
 254    00000000   MOVS r0, r0
 255    00000000   MOVS r0, r0
 256    0000BF00   NOP
 257    0000B500   PUSH {LR}
 258    00002005   MOVS r0, #5
 259    0000F8D6   ...
 260    00003000   LDR.W r3, [r6]
 261    00006018   STR r0, [r3]
 262    0000200B   MOVS r0, #11
 263    00006058   STR r0, [r3, #1] ; 4
 264    00006818   LDR r0, [r3]
 265    00006859   LDR r1, [r3, #1] ; 4
 266    00001840   ADDS r0, r0, r1
 267    00006058   STR r0, [r3, #1] ; 4
 268    0000BD00   POP {PC}
 269    0000F643   ...
 270    000076FC   MOVW r6, #16380 ; 0x3FFC
 271    0000F2C2   ...
 272    00000600   MOVT r6, #8192 ; 0x2000
 273    00001F30   SUBS r0, r6, #4
 274    00002100   MOVS r1, #0
 275    00006001   STR r1, [r0]
 276    0000F643   ...
 277    000070F0   MOVW r0, #16368 ; 0x3FF0
 278    0000F2C2   ...
 279    00000000   MOVT r0, #8192 ; 0x2000
 280    00006030   STR r0, [r6]
 281    0000F7FF   ...
 282    0000FFE6   BL -52 ; -26
 283    0000E7FE   B -2 ; -1
start linear address:  00400001H

1) если известен стартовый адрес, то может быть (хотя я в этом 100% уверен) вместо номеров строк выводить адрес?
2) строки 0, 1 и 2, 3 поначалу обескуражили: исходное значение SP 0000200000003FF0H и точка входа по сбросу 000000400000021BH - не многовато? В самый раз (: - 16-разрядные числа. Ведущие нули всё же ни к чему.
3) строки 282, 283: смещение в комментарии. Лучше номер строки явно, а ещё лучше адрес (привет из п.1).
4) (: строки 277 и 279: комментарий. Какая часть O7 написана на Ц?

И не сочтите за труд: что значат type descriptors, data, strings и проч?
Код:
O7ARMv7MTool 19.9.2014
decode HelloWord.a7m
HelloWord DEDCBD1B   1    72
imports:
type descriptors

data     8
strings

code
   0    0000BF00   NOP
   1    0000B500   PUSH {LR}
   2    00002005   MOVS r0, #5
   3    83000003   
   4    00FFFFFD   
   5    00006018   STR r0, [r3]
   6    0000200B   MOVS r0, #11
   7    00006058   STR r0, [r3, #1] ; 4
   8    00006818   LDR r0, [r3]
   9    00006859   LDR r1, [r3, #1] ; 4
  10    00001840   ADDS r0, r0, r1
  11    00006058   STR r0, [r3, #1] ; 4
  12    0000BD00   POP {PC}
commands:
entries
     4
pointer refs

fixP =        0
fixD =        3
fixT =        0
entry =        4


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Компилятор Oberon → ARMv6-M, ARMv7E-M
СообщениеДобавлено: Четверг, 13 Апрель, 2017 20:00 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 473
Откуда: KZ
Artyemov писал(а):
1) если известен стартовый адрес, то может быть (хотя я в этом 100% уверен) вместо номеров строк выводить адрес?
Это не номера строк, а номера команд Trumb16
Artyemov писал(а):
2) строки 0, 1 и 2, 3 поначалу обескуражили: исходное значение SP 0000200000003FF0H и точка входа по сбросу 000000400000021BH - не многовато? В самый раз (: - 16-разрядные числа. Ведущие нули всё же ни к чему.
32-разрядное значение состоит из двух подряд идущих 16-разрядных.
В данном случае начальное значение равно 20003FF0H, вектор сброса 0040021AH+1 (Thumb).
Artyemov писал(а):
3) строки 282, 283: смещение в комментарии. Лучше номер строки явно, а ещё лучше адрес (привет из п.1).
До ";" значение в команде Thumb16, после ";" -- номер команды, понятный для человека.
Artyemov писал(а):
4) (: строки 277 и 279: комментарий. Какая часть O7 написана на Ц?
Надо было сделать, чтобы писалось 2000H вместо 0x2000...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Компилятор Oberon → ARMv6-M, ARMv7E-M
СообщениеДобавлено: Четверг, 13 Апрель, 2017 20:04 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 473
Откуда: KZ
Artyemov писал(а):
И не сочтите за труд: что значат type descriptors, data, strings и проч?
Об этом написано здесь, в 12-м разделе.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Компилятор Oberon → ARMv6-M, ARMv7E-M
СообщениеДобавлено: Пятница, 14 Апрель, 2017 16:21 

Зарегистрирован: Пятница, 13 Март, 2015 16:40
Сообщения: 597
Таблица векторов прерываний только в ОЗУ и механизмы работы с прерываниями из ARMv7MTraps?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Компилятор Oberon → ARMv6-M, ARMv7E-M
СообщениеДобавлено: Суббота, 15 Апрель, 2017 01:46 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Artyemov писал(а):
Таблица векторов прерываний только в ОЗУ и механизмы работы с прерываниями из ARMv7MTraps?

Про то, как работать с прерываниями, смотрите заметку:
https://wiki.oberon.org/ob/o7/debug


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Компилятор Oberon → ARMv6-M, ARMv7E-M
СообщениеДобавлено: Суббота, 15 Апрель, 2017 08:03 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 473
Откуда: KZ
Artyemov писал(а):
Таблица векторов прерываний только в ОЗУ и механизмы работы с прерываниями из ARMv7MTraps?

Только в ОЗУ, но механизм работы может быть любым.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 166 ]  На страницу Пред.  1 ... 5, 6, 7, 8, 9

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB