Уменьшенный набор инструкций для процессоров ARM (основанный на 16-битной кодировке вместо 32-битной в стандартном режиме ARM), изначально предназначенный для встроенных систем с небольшим объемом ОЗУ. Также под вопросом более поздние смешанные 16- и 32-битные режимы команд Thumb2. Рассмотрим теги "слайдер" и "эскизы" для других значений слова "большой палец".
1 ответ

iPhone Thumb & VFP

Как соотносятся коды "compile for Thumb" и VFP? на iPhone 2G/3G я знаю, что набор инструкций Thumb не включает вычисления с плавающей запятой (на 3GS, по-видимому, Thumb2 имеет…). Так что же произойдет, если кто-то скомпилирует для большого пальца, …
13 янв '10 в 15:40
1 ответ

Декодирование инструкции BLX на ARM/Thumb (IOS)

Я прочитал большую часть документации ARM, но все еще не могу расшифровать инструкцию BLX. Вот два примера: __text:0000347C 02 F0 B2 ED BLX _objc_msgSend __text:0000469C 01 F0 A2 EC BLX _objc_msgSend Оба они должны идти в одно и то же место, виртуал…
18 янв '12 в 18:04
1 ответ

Могут ли микросхемы Thumb-2 ARM-Core от разных производителей иметь одинаковый размер?

Сравнение двух микрофонов Thumb-2 от двух разных производителей. Кто-то Cortex M3, кто-то A5. Они гарантированно скомпилируют определенный фрагмент кода с одинаковым размером кода?
02 авг '13 в 17:04
1 ответ

Компилятор IAR 7.40 генерирует неверную сборку

У меня есть встроенный код ассемблера для arm cortex-R5 #include <stdio.h> #define mtcpsr(v) __asm volatile(\ "msr cpsr,%0\n"\ : : "r" (v)\ ) int mfcpsr (void) { int rval; asm("mrs %0, cpsr" : "=r"(rval)); return rval; } void main(void) { /* *…
22 фев '17 в 12:08
1 ответ

Как использовать инструкции thumb-2 с GCC

Я написал следующую упрощенную функцию memcpy32, чтобы понять, как писать ассемблерный код для cortex-m4. .section .text .align 2 .global as_memcpy32 .type as_memcpy32, %function as_memcpy32: push {r4, lr} movs r3, #0 start_loop: cmp r3, r2 bge end_…
08 сен '16 в 11:53
1 ответ

ARM (большой палец) мод прошивки... как превратить несколько строк ASM в код, чтобы сделать мод

Прошивка разобрана с IDA (ядро ARM920).. большая часть - это режим большого пальца.... некоторые - режим ARM Хотите создать несколько модов в ASM. Что является самым простым способом превратить несколько строк ASM (ну, несколько десятков) в машинный…
14 фев '12 в 04:31
1 ответ

Таблица вектора руки, указывающая один байт после

У меня есть небольшое приложение, которое хорошо компилируется и работает на моем ARM Cortex M4. Но когда я разбираю двоичный файл, который я сбрасываю, вот как выглядят первые байты: 00000000 <.data>: 0: 20020000 andcs r0, r2, r0 4: 080003b5 …
28 ноя '16 в 10:19
2 ответа

Является ли атомарным доступ к (загрузить / сохранить) 32-разрядному целому числу при использовании набора инструкций ARM Thumb?

Используя ARM Cortex с набором инструкций для большого пальца и компилятором реального просмотра Keil, безопасно ли получить доступ к 32-битному целому числу? Поскольку набор большого пальца состоит из 16 битов, означает ли это, что для извлечения 3…
17 июн '11 в 15:53
0 ответов

objdump дизассемблирует исполняемый файл, скомпилированный с -marm как инструкции для большого пальца

Я скомпилировал некоторый код с помощью gcc -marm, а затем, когда я пытаюсь разобрать его с помощью objdump, половина инструкций составляет 16 бит, так что я предполагаю, что это инструкции большого пальца. Зачем? Я видел этот вопрос: objdump и ARM …
01 июл '13 в 12:00
3 ответа

Предупреждение: imagesx() ожидает, что параметр 1 будет ресурсом, ноль задан в Drupal

Я устанавливаю новый друпал. Когда я создаю контент для статьи, картинка не имеет большого пальца. И недавний журнал показывает
18 апр '18 в 05:42
1 ответ

Атомное тестирование и установка для микроконтроллера LPC1788

Я работаю с микроконтроллером NXP LPC1788 и разрабатываю многопоточное приложение на C. В части моего приложения я определяю пользовательскую структуру данных связанного списка. Ранее у меня были проблемы с моей программой из-за одновременного досту…
02 сен '14 в 14:47
0 ответов

Как рассчитывается смещение в этом коде сборки (C++)

#include <stdio.h> int f1 { printf ("world\n"); } int f2 { printf ("hello world\n"); } int main() { f1(); f2(); } Этот код C++ скомпилирован в режиме Thumb и выглядит следующим образом .text:00000000 main .text:00000000 10 B5 PUSH {R4, LR} .te…
30 дек '18 в 21:53
3 ответа

Как прочитать флаг условия в сборке ARMv7 Thumb-2?

Я использую процессор ARMv7 с инструкциями Thumb-2. Я выполнил ADD, SUB или CMP, Теперь я хочу переместить флаг условия LE в r2, После этого, r2 должен содержать либо 0 или же 1, Я просматривал руководство по Thumb-2, но не нашел условной инструкции…
02 янв '19 в 14:01
1 ответ

Запись данных по абсолютному адресу

В настоящее время я немного поиграюсь с ассемблером на микроконтроллере Cortex-M3. Я не уверен, важно ли это, но вот, пожалуйста. Мне нужно записать значение в определенный адрес в памяти. Вот что я попробовал: LDR R4, =__cs3_interrupt_vector_cortex…
15 ноя '13 в 16:08
1 ответ

Настройка USART для отправки символа в сборке большого пальца ARM

Я пытаюсь отправить символ, используя мой stm32. Я использую программу Real Term для последовательного захвата и настроил скорость передачи 9600 бод. Я попытался написать инициализацию для USART и GPIOA. Пока, когда я перезагружаю свое устройство, о…
26 окт '18 в 00:02
1 ответ

Как скомпилировать и связать код ржавчины в Android-приложение, упакованное APK

Я пытаюсь добавить код Rust к образцу Android NDK (native-активность); Всякий раз, когда я связываю код Rust (скомпилированный как.a) с.so, он не запускается. Отсюда я получил информацию, чтобы получить компилятор ржавчины с поддержкой Android и "ав…
05 мар '14 в 14:29
1 ответ

Что такое набор инструкций для большого пальца ARM?

В разделе "Набор команд Thumb" в разделе 1-34 "ARM11TechnicalRefManual" сказано, что: "Набор команд Thumb представляет собой подмножество наиболее часто используемых 32-разрядных инструкций ARM. Эти инструкции имеют длину 16 бит и имеют соответствую…
17 май '12 в 14:53
1 ответ

Использование суффикса.W в ассемблере ARM

Я читаю Руководство по набору инструкций и задаюсь вопросом о .W суффикс. В руководстве сказано: В некоторых случаях может потребоваться указать суффикс.W, например, если операнд является меткой инструкции или литеральных данных, как в случае инстру…
25 окт '15 в 13:48
3 ответа

Почему несколько кодировок для одной инструкции в ARMv7

В настоящее время я пытаюсь реализовать дизассемблер для ARM cortex A9, который реализует набор инструкций ARMv7. Для этого я использую руководство "DDI0406C_b_arm_architecture_reference_manual.pdf", которое можно скачать здесь (после регистрации на…
19 апр '13 в 15:16
1 ответ

Как отличить инструкцию большого пальца от инструкции руки в файле эльфа?

Как видно из заголовка, я хочу разобрать файл elf, но у меня возникла проблема, заключающаяся в том, что я не мог знать, какая инструкция является инструкцией руки, а какая - командой большого пальца. Поскольку инструкция arm является 32-битной, а и…
22 июл '15 в 06:19