Вопросы по теме 'thumb'
Является ли атомарным доступ (загрузка / сохранение) 32-битного целого числа при использовании набора инструкций ARM Thumb?
Безопасен ли доступ к 32-битному целому числу при использовании ARM Cortex с набором инструкций для большого пальца и компилятором Keil Realview? Поскольку набор регистров большого пальца составляет 16 бит, означает ли это, что для выборки 32-битного...
1332 просмотров
schedule
11.08.2022
Как разделить инструкции ARM и данные во время дизассемблирования
Я пишу/(используя binutils) кусок кода для ручной разборки инструкций thumb2 (16bit и 32bit). Я столкнулся с проблемой различения подлинных инструкций ARM и частей DATA.
Самая большая проблема заключается в том, что инструкции не выровнены по...
368 просмотров
schedule
30.05.2022
режим большого пальца руки 4-байтовые инструкции
Инструкции режима большого пальца занимают 2 байта, а инструкции режима ARM — 4 байта. скриншот представляет собой разбор инструкций режима большого пальца. почему я вижу 4-байтовые инструкции, смешанные с 2-байтовыми инструкциями?? может...
1837 просмотров
schedule
03.12.2023
Комплект инструкций и сборка ARM/Thumb-2
Во-первых, я новичок в сборке ARM. На самом деле у меня есть несколько фрагментов кода, написанных для набора инструкций ARM, но моя цель — архитектура Cortex-M4, использующая набор инструкций Thumb-2. Должен ли я переписывать весь код, изменять...
1654 просмотров
schedule
28.01.2023
Код сборки ARM и нумерация SVC
В ассемблерных кодах ARM я вижу что-то подобное... (особенно в шеллкодах)
svc 0x0090003f
svc 0x001ff3bf
swi 0x0900ff0b
Я знаю, что «svc (или swi)» — это «вызов супервизора», например «int 0x80» или «SYSENTER» от Intel. но как я могу...
10970 просмотров
schedule
19.11.2023
ARM Thumb-2, GCC, изменения кода и инструкция `stmdaeq`
Я использую MCU STM32F4 (Cortex-M4) и компилирую с помощью arm-none-eabi-g++ (я использую C++).
У меня есть требование сократить время, необходимое для загрузки моего двоичного файла во флэш-память MCU. Я понял, что могу сделать это, только...
1338 просмотров
schedule
10.09.2023
Atomic test-and-set для микроконтроллера LPC1788
Я работаю с микроконтроллером NXP LPC1788 и разрабатываю многопоточное приложение на C. В части своего приложения я определяю пользовательскую структуру данных связанного списка. Раньше у меня были проблемы с моей программой из-за одновременного...
578 просмотров
schedule
29.07.2023
почему адрес инструкции ARM не совпадает с моей средой ARM?
Моя среда ARM
root@linaro-developer:~# uname -a Linux linaro-developer 3.2.0 #7 SMP Thu Feb 28 16:20:18 PST 2013 armv7l armv7l armv7l GNU/Linux
И моя сборка
.section .text
.global _start
_start:
.code 32
#Thumb-Mode on...
1326 просмотров
schedule
31.01.2024
Нужен образец инструкции thumb 2
Меня смущает набор инструкций Thumb 2.
Я понимаю, что инструкция ARM имеет размер 32 бита, размер большого пальца 16 бит, а размер большого пальца 2 32/16 бит.
Я могу найти примеры инструкций ARM по этой ссылке и инструкции для большого...
564 просмотров
schedule
26.06.2022
EXC_BAD_INSTRUCTION при внедрении кода (armv7 asm)
Я понятия не имею, почему следующий код вызывает ошибку BAD_INSTRUCTION , кто-нибудь?
mov r4, r0
movw r0, #0xc70 ; injected code start here
movt r0, #0x8bb3
movw r3, #0x576
ldr r1, [r7]
movs r5, #0x1a
add r5, pc ; next...
120 просмотров
schedule
04.12.2022
Получите выравнивание в предварительной обработке сборки ARM
Я нахожусь в ситуации, когда мне нужно сохранить указатель на следующую инструкцию в ассемблерном коде Thumb-2. Инструкции Thumb-2 могут быть 16- и 32-битными и, таким образом, выравниваются по полуслову. Когда я использую PC в качестве исходного...
394 просмотров
schedule
16.11.2022
Как рассчитывается смещение в этом коде сборки (C ++)
#include <stdio.h>
int f1
{
printf ("world\n");
}
int f2
{
printf ("hello world\n");
}
int main()
{
f1();
f2();
}
Этот код C ++ скомпилирован в режиме Thumb и выглядит следующим образом
.text:00000000...
59 просмотров
schedule
07.03.2022
Почему инструкции ADR с прямой ссылкой собираются с четными смещениями в коде Thumb?
Для bx функции Thumb необходимо установить младший бит адреса. GNU as документация заявляет , как это работает, когда адрес генерируется из псевдо-инструкция adr :
adr ‹register› ‹label›
Эта инструкция загрузит адрес метки в...
462 просмотров
schedule
09.07.2022
Кросс-компиляция glibc для цели ARM не удается связать, если используется THUMB
Я пытаюсь создать cross-gcc для семьи arm.
Весь многоступенчатый процесс, который я использую для сборки 9.3gcc cross-gcc, работает нормально и создает рабочую систему для: i386, x86_64, aarch64 и ARM - но не работает в ARM для случая THUMB....
201 просмотров
schedule
08.04.2022