Вопросы по теме 'bare-metal'

Как мне узнать, откуда секция .data должна получать данные инициализации? (компоновщик gcc)
При создании проекта mcu без операционной системы на основе gcc вам необходимо позаботиться об инициализации разделов .data и .bss во время запуска. Раздел .bss довольно прост, так как я просто заполняю весь раздел до 0. Но переменные в разделе...
7582 просмотров
schedule 08.05.2022

Среда C Инициализация Bare Metal ARM GCC
Я пытаюсь заставить проект C++ работать на процессоре cortex-m0 (точнее, nRF51822 ). Я использую codesourcery lite g++ 2013.05.23. Я использую clib, поставляемый с исходным кодом (newlib), и процедуру инициализации CS3 c __cs3_start_c. Я...
951 просмотров
schedule 29.05.2023

добавление кода в существующую прошивку
Я работаю над Cortex-M3 . Я хочу добавить функцию (или ISR) в существующий образ прошивки без обновления всей программы. Могу ли я скомпилировать и построить функцию без main и записать ее во флэш-память? Если я знаю адрес, по которому написана...
390 просмотров
schedule 05.11.2022

Начал писать ARM RTOS и запутался в отображении памяти
Итак, я написал небольшую RTOS раньше для школы, однако мы просто использовали карту памяти, которую нам оставил загрузчик (redboot). У него (TS-7200) было 4 сегмента оперативной памяти по 8 МБ, но загрузчик «переназначил» их так, чтобы они были...
656 просмотров
schedule 08.08.2022

ошибка: заголовок мультизагрузки не найден
В этот день нашел то, что привлекло мое внимание. построить простую голую ОС я прочитал, как сделать мультизагрузку совместимой, я использую NASM и GCC, мне нужно сделать загрузчик с заголовком мультизагрузки и вызвать основную точку моей системы,...
2637 просмотров
schedule 14.07.2023

Бинарная компоновка ARM на голое железо
У меня есть плата ARM с ПЗУ на 0x80000000 и RAM на 0x20000000. Плата начинает выполнение сырого двоичного кода с 0x80000000. Мне удалось запустить на нем простую программу ассемблера ARM, но мне пришлось использовать C вместо ASM. Я знаю, что мне...
1733 просмотров
schedule 06.11.2022

обработчик fiq для arm64
Я пытаюсь написать обработчик FIQ для arm64 (AArch64) в сборке. Я уже написал обработчик IRQ, который пока хорошо работает. Мне просто интересно, должен ли мой обработчик FIQ отличаться от того, как выглядит мой IRQ. Мой обработчик FIQ делает...
911 просмотров
schedule 21.05.2022

malloc() не возвращает null при переполнении HEAP (голое железо)
Я отлаживаю проект с голым железом на Kinetis TWRK70M120, используя набор инструментов Cross ARM GCC. (Kinetis Design Studio) У меня один вопрос: Why malloc() doesn't return NULL pointer when it overruns the heap size? How is that possible?...
478 просмотров

Можно ли создать базовую программу загрузки/запуска сборки на чистом железе, используя только параметры командной строки GNU LD
Можно ли создать базовую программу загрузки/запуска сборки на чистом железе, используя только параметры командной строки GNU LD вместо обычного файла сценария -T для цели Cortex-M4? Я просмотрел документацию по GNU LD и провел поиск в различных...
638 просмотров
schedule 24.07.2023

Как определить версию платы Rasberry Pi с помощью Arm Assembly/C?
Я разрабатываю тестовое ядро ​​для устройств Raspberry Pi. При этом мне нужно настроить UART, чтобы мы могли записывать данные на устройство и извлекать данные, которые должны обрабатываться ядром. Я хочу, чтобы тестовое ядро ​​могло работать на...
568 просмотров
schedule 16.08.2022

Код примера собственного кода не работает при компиляции ARM без ПО
Я хочу оценить Eigen для голой системы ARM. Вот что я пытаюсь скомпилировать: #include <Eigen/Dense> using Eigen::MatrixXd; void test() { MatrixXd m(2,2); m(0,0) = 3; m(1,0) = 2.5; m(0,1) = -1; m(1,1) = m(1,0) + m(0,1); }...
769 просмотров
schedule 14.12.2022

Как загрузить файл в хранилище объектов Oracle Bare Metal Cloud с помощью C#
Как получить доступ к хранилищу объектов Oracle в Oracle Bare Metal Cloud с помощью c#. Я хочу запустить аналогичный код ниже на С# в программе .NET: static IAmazonS3 client; using (client = new AmazonS3Client(Amazon.RegionEndpoint.USEast1)) {...
212 просмотров

Как предотвратить включение деструкторов библиотеки C и atexit()?
Используя arm-none-eabi-gcc для Cortex-M4 (голое приложение), код для malloc также испускается, хотя я никогда не использую malloc в своем коде. Глядя на вывод сборки с arm-none-eabi-objdump -xS obj.elf , кажется, что malloc вызывается...
1914 просмотров
schedule 17.10.2022

В Eclipse нет доступных источников
Я использую GDB 7.3 в Eclipse. Он подключается к GDBServer. Когда я запускаю отладчик в Eclipse, я получаю: Нет источника для main() по адресу 0x101250 Я компилирую с отключенным оптимизатором и флагом отладки, установленным на максимум:...
730 просмотров
schedule 30.07.2023

Как получить исключение по жесткой ошибке с помощью простой или инструкции на руке
В настоящее время мы охотимся за фантомом, который находится в форме, когда мы компилируем какой-либо код (без его вызова) один конкретный вызов memset генерирует исключение жесткой ошибки. Адрес и длина, указанные для memset, действительны....
1012 просмотров
schedule 10.03.2022

Как я могу узнать, как мигать светодиодом (например, в STM32) с помощью чистого кода?
По сути, я пытаюсь помигать светодиодом на STM32F103C8T6. Помимо светодиода на печатной плате имеется этикетка с надписью «PC13». Я немного поискал и понял, что это, вероятно, означает, что светодиод находится на 13-м контакте порта C, поэтому все,...
32 просмотров
schedule 20.05.2023

Использование множественной точности в чистом металле c
Итак, у меня есть малиновый пи-ноль, и я следил за это действительно интересное руководство, которое послужит отправной точкой для программирования на голом железе c. Все работает хорошо. Теперь для того, что я хочу сделать, мне нужны...
130 просмотров

Эмуляция Qemu baremetal - как просмотреть вывод UART?
Вопрос: Как я могу получить вывод UART из программы «baremetal», запущенной с Qemu? Фон Вот вызов командной строки, который я использовал: qemu-system-arm -M xilinx-zynq-a9 -cpu cortex-a9 -nographic -kernel $BUILD_DIR/mm.elf -m 512M -s...
3673 просмотров
schedule 01.03.2022

Qemu - Перенаправляет ввод хоста в гостевой UART для ядра без операционной системы
Я пишу ядро ​​с нуля на Rust для 64-битных устройств ARM. Для тестирования я использую машину Qemu virt . В настоящее время я могу писать символы с гостевой консоли на хост-консоль через UART. Теперь я хотел бы сделать обратное, т.е. отправить...
465 просмотров
schedule 13.05.2022

Как маршрутизировать TCP-порты / сокеты внутри QEMU?
Я пытаюсь запустить (выпуск 10.1.1): Код написан для симулятора Windows, но я пытаюсь настроить таргетинг на Xilinx Zynq, эмулируемый QEMU (версия 4.2.0). Хост-компьютер - Ubuntu 16.04. Существует Порт сетевого интерфейса для части TCP в...
833 просмотров
schedule 14.03.2022