Вопросы по теме 'bare-metal'
LLVM (цель arm-none-eabi) создает раздел ARM.exidx для кода на основе C (?)
При компиляции простого HelloWorld.c с использованием Clang / LLVM (цель arm-none-eabi) создается раздел перемещения '.rel.ARM.exidx', но при использовании arm-gcc этого не происходит. Эти записи таблицы очистки, созданные LLVM, правильно помечены...
1704 просмотров
schedule
13.04.2022
Как написать программу hello world на чистом железе для PowerPC
Мне нужно написать программу на чистой системе PowerPC. Как новичок в программировании на «голом железе» без ОС/загрузчика, я решил написать для начала программу hello world. Я погуглил пост об этом и нашел кое-что об ARM, например Beagleboard bare...
1535 просмотров
schedule
26.08.2022
Резервное пространство памяти в области памяти m_text FLASH на встроенной цели
У меня есть микроконтроллер с большим количеством флэш-памяти, разделенной на секторы флэш-памяти по 1 тыс. Я хочу прошить простые числа в определенную область памяти во время перепрошивки, тогда при первой загрузке будет сгенерирован крипто ключ,...
3259 просмотров
schedule
07.08.2023
Как кодировать функции прерывания ARM на C
Я использую набор инструментов arm-none-eabi-gcc версии 4.8.2 на LinuxMint 17.2 64b .
Я, на уровне любителя, пытаюсь поиграть с платой TM4C123G и ее обычными функциями (кодирование различных миганий, вещей uart ...), но всегда стараюсь...
2000 просмотров
schedule
01.05.2022
Как создать минимальный загрузочный сектор BIOS hello world с помощью GCC, который работает с USB-накопителя на реальном оборудовании?
Мне удалось создать минимальный загрузочный сектор, который работает с QEMU 2.0.0 Ubuntu 14.04:
.code16
.global _start
_start:
cli
mov $msg, %si
mov $0x0e, %ah
loop:
lodsb
or %al, %al
jz halt
int $0x10
jmp loop...
3097 просмотров
schedule
05.03.2023
Адрес конечной точки USB BULK IN 0x81 или 0x01?
Я использую USB в качестве хоста для чтения содержимого файловой системы FAT32. Дескриптор конечной точки возвращает мне 0x81 как адрес конечной точки IN и 0x02 для адреса OUT EP.
Я реализую это с помощью OHCI. Дескриптор конечной точки в OHCI...
1770 просмотров
schedule
06.02.2023
64-битные регистры в защищенном режиме x86
Мне было интересно, могу ли я использовать 64-битные регистры на 64-битном процессоре, оставаясь в 32-битном защищенном режиме. Я не могу проверить это сам, так как мои виртуальные машины не поддерживают 64-битный режим. Я также не мог найти это...
199 просмотров
schedule
23.09.2023
Boost::context на ARM Cortex-M?
Согласно документации boost::context поддерживает системы ARM с ОС GNU/Linux. Просто интересно - можно ли его использовать на голом железе (без ОС) и микроконтроллеры Cortex-M, или это дополнительный порт, который надо писать?
749 просмотров
schedule
02.11.2022
FatFS f_write не работает
Я на ZedBoard и пытаюсь писать на SD-карту. Я работаю над встроенной системой, и у меня нет никакой ОС, я работаю на «голом металле».
Я могу нормально читать с SD-карты, с ними проблем нет.
Но когда я пытаюсь читать, у меня какое-то странное...
10592 просмотров
schedule
17.11.2022
Используя счетный семафор, как создать рекурсивный мьютекс
Я работаю в среде с голым металлом, поэтому любые ответы о том, что просто используйте то, что у вас есть, не применяются, поскольку у меня ничего нет. Я пишу системный драйвер, но мне нужны рекурсивные мьютексы, но я не могу понять, как их...
405 просмотров
schedule
05.12.2023
Неопределенное исключение инструкции в коде ARM
Я занимаюсь программированием с нуля (разрабатываю ядро) на ARM-Cortex A53, SoC BCM2837 (другими словами, Raspberry PI 3). На самом деле я пишу часть программного обеспечения, отвечающего за обработку mini UART (своего рода привет, мир, как...
908 просмотров
schedule
08.04.2022
Как программы работают под управлением операционной системы
Я пытаюсь понять внутренности операционной системы, но у меня возникла небольшая проблема. Мне интересно, как операционные системы выделяют виртуальную память, утверждают, что программы не пишут в пределах и за пределами границ (это потребует...
188 просмотров
schedule
11.07.2023
Статическая замена вызовов malloc
Я разрабатываю baremetal-приложение. Я хочу использовать исходный код U-Boot для своего приложения. Я хочу заменить следующие вызовы malloc, найденные в U-Boot, вместо статического выделения памяти:
struct foo *ptr = malloc(sizeof(struct foo));...
178 просмотров
schedule
22.09.2022
Функции плагина Qemu - как получить доступ к гостевой памяти и регистрам
Фон
Qemu версия 4.2.0 , выпущенная в декабре '19, функциональность для чего-то, что называется подключаемыми модулями TCG . У них есть несколько примеров в каталоге tests / plugins , а API более или менее определен в qemu -plugin.h .
Этот...
780 просмотров
schedule
16.01.2023
Как подключить системные вызовы C++ к freertos
Я хочу написать многопоточную программу для микроконтроллера с бесплатным RTOS. но я не хочу использовать нестандартные функции free-rtos, вместо этого я хочу использовать собственную библиотеку C++ для выполнения параллельных и асинхронных задач....
375 просмотров
schedule
31.03.2023
Что такое nosys, nano, rdimon при использовании ARM GCC?
Я учусь писать код ARM, используя набор инструментов GCC. Я столкнулся с несколькими вариантами GCC, для которых я не могу найти документацию. Может кто-нибудь, пожалуйста, помогите объяснить, что они делают?
-specs=nosys.specs...
3882 просмотров
schedule
20.03.2023