Вопросы по теме '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 просмотров

Как рассчитывается смещение в этом коде сборки (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