Описание тега bare-metal
В чистой среде программное обеспечение запускается непосредственно на оборудовании (ЦП, микропроцессор и т. Д.) Без промежуточного уровня операционной системы.
1
ответ
Счетчики PMU в ARM11
Я программирую распри pi model b ARM1176 bare metal (в сборке и c). Мне нужно рассчитать тактовые циклы, используемые для выполнения кода сборки. Я использую следующий код для счетчика PMU: mov r0,#1 MCR p15, 0, r0, c15, c12, 0 ; Write Performance M…
07 июл '16 в 16:17
1
ответ
Объясните, как работает следующая программа?
Вот программа на языке C: (я удалил некоторую часть кода, которая просто инициализирует переменные VGA_COLOUR) static inline uint8_t vga_entry_color(enum vga_color fg, enum vga_color bg) { return fg | bg << 4; } static inline uint16_t vga_entr…
04 дек '17 в 12:21
2
ответа
Альтернатива Newlib?
Я инженер по встроенному программному обеспечению, работаю с процессорами типа IA-32. Мы ищем цепочку инструментов компилятора - предпочтительно бесплатно. Мы использовали Mentor Graphics CodeBench Lite, но он больше не доступен. Мы рассмотрели друг…
05 июн '13 в 14:59
1
ответ
Ошибка: не найден мультизагрузочный заголовок
Этот день нашел то, что привлекло мое внимание. это построить простую голую ОС я прочитал, как сделать мультизагрузочную совместимость, я использую NASM и GCC, мне нужно сделать загрузчик с заголовком multiboot и вызвать основной пункт моей системы,…
27 авг '14 в 01:25
1
ответ
Понимание манипулирования стеком сборки
Я пишу тестовую программу SDRAM на голой металлической ARM. Я написал это на C, но теперь я хочу изменить сгенерированную сборку, чтобы программа не использовала sdram, что подразумевает, среди прочего, отсутствие стека. Я недавно начал изучать сбор…
10 апр '13 в 22:29
2
ответа
Что делает цепочки из голого металла особенными?
Зачем мне простой набор инструментов, когда я хочу скомпилировать бинарный файл без базовой ОС? Какие ограничения есть у компиляторов, кроме отсутствующих функций / возможностей, потому что нет OS/stdlibrary. Можно ли использовать какой-нибудь clang…
14 фев '15 в 10:10
0
ответов
Связывание в.rodata и.debug_frame с использованием arm-none-eabi-gcc
Я пытаюсь связать свои файлы.o, чтобы сгенерировать ELF для запуска на голом железе ARM M0+. я использую arm-none-eabi-gcc, Если у меня только что написан мой C-файл (-ы), он прекрасно работает, и я могу запустить его без проблем. (Для этого я предо…
20 июл '17 в 21:47
1
ответ
Кросс-компиляция из OS X в ARM с ELLCC
Я пытаюсь кросс-компилировать проект C++(14) из OS X в ARM для запуска на чипе Cortex-M4. Похоже, что проект ELLCC можно использовать для этого, вот что я сделал: Настройте простой тестовый файл (main.cpp) следующее: #include <cstddef> int mai…
30 окт '15 в 19:15
5
ответов
Что плохого в использовании обработчиков прерываний в качестве слушателей событий
Моя система достаточно проста, чтобы работать без ОС, я просто использую обработчики прерываний, как если бы я использовал прослушиватель событий в настольной программе. Во всем, что я читаю онлайн, люди стараются тратить как можно меньше времени на…
16 сен '14 в 13:12
1
ответ
Маллок из Newlib "игнорирует" целую кучу свободной памяти
Поэтому я использую голый металл malloc в сочетании с самописным _sbrk. Я запускаю все на панели запуска Stellaris. Эта доска содержит кору M4. Он также содержит 32 КБ ОЗУ, начиная с memaddr 0x20000000 и до 0x20007FFF. В самом начале программы ситуа…
03 янв '15 в 15:06
0
ответов
cortex M3 голое металлическое исполнение
Я работаю над проектом STm32 в Keil IDE. Он содержит стартовый файл с именем startup_stm32f10x_xl.s, содержащий следующий код ; Reset handler Reset_Handler PROC EXPORT Reset_Handler [WEAK] IMPORT __main IMPORT SystemInit LDR R0, =SystemInit BLX R0 L…
24 июл '18 в 07:25
1
ответ
ARM голый металлический многоядерный выбор сердечника
Для многоядерной платформы ARM, например (кластер Cortex-A53 из 4 процессоров): Как мы можем назначить конкретное ядро для запуска какой-либо функции в качестве базы для написания простого голого планировщика? Как разные основные ОСРВ реализуют та…
15 авг '18 в 16:18
0
ответов
Многоядерный доступ к одной памяти
У меня есть следующий код, работающий на 2 голых металлических ядер A15 (изменяется только значение) #define MSMC_ADDR 0xc000080 int main(void) { *(unsigned int*) MSMC_ADDR = 0xACCCBBBB; printf("%d\n",*(unsigned int*)MSMC_ADDR); return 0; } моя проб…
06 сен '16 в 07:11
1
ответ
Как получить стек вызовов из исключения прерывания SoftWare
Я пытаюсь отладить программу, работающую на платформе ARM с голым железом, используя gdb, В какой-то момент SWI (Программное прерывание) генерируется исключение. Однако обратная трассировка не показывает, что породило исключение, как вы можете видет…
01 мар '13 в 13:40
1
ответ
Сборка сравнить один бит регистра
Мне нужно сравнить один бит регистра, например, скажем AH равно 0b010010> 1<0, и мне нужно проверить, что 2-й бит (чтобы убедиться, что мы говорим об одном и том же бите, я поставил этот бит между стрелками) равен 1 или 0. Если это поможет моему код…
02 мар '16 в 19:33
0
ответов
API-интерфейс Ubuntu MAAS не работает для развертывания узлов
API снизу ссылка: СООБЩЕНИЕ /api/2.0/machines/{system_id}/?op=deploy Ссылка: https://docs.maas.io/2.1/en/api Я пытаюсь развернуть узел, который находится в состоянии готовности от почтальона. Для развертывания я даю ниже 3 параметра. user_data, dist…
12 апр '18 в 07:03
0
ответов
Функция не работает, если не вызывается в том же файле
Поэтому я следую учебному пособию, но делаю это на C, потому что сборка слишком громоздка. Это первый "настоящий проект", который я сделал на C, так что это будет глупой ошибкой или некоторым нюансом работы C. Во всяком случае, у меня есть этот код:…
25 авг '13 в 11:19
2
ответа
Зарезервировать пространство памяти в области памяти m_text FLASH на встроенной цели
У меня есть микроконтроллер с большим количеством вспышки, разделенной на сектора по 1 Кб. Я хочу прошить простые числа в определенную область памяти во время перепрошивки, затем во время первой загрузки будет сгенерирован криптографический ключ, за…
08 июн '15 в 14:22
1
ответ
Как я могу увеличить скорость моего устройства USB CDC?
Я модернизирую процессор во встроенной системе для работы. Это все на С, без ОС. Часть этого обновления включает в себя перенос интерфейса связи между процессором и ПК с IEEE-488 на USB. Я наконец-то написал прошивку USB и уже тестировал ее. Все шло…
21 май '17 в 17:46
1
ответ
AttributeError: тип объекта "ManagerWithFind" не имеет атрибута "клиент"
Я новичок в Python и OpenStack, поэтому, пожалуйста, не теряйте крутизну:) Здесь я пытаюсь создать экземпляр объекта класса BareMetalNodeManager (из np_orchestration.py). np_orchestration.py from baremetal import BareMetalNodeManager from novaclient…
17 июл '14 в 22:52