Мы разработали приложение, которое имеет так много файлов C ++. На Linux мы смогли это выполнить.
У нас есть U-Boot для кастомной платы на основе MPC8548E.
Теперь мы решили обойтись без ОС. Итак, я попробовал два метода для выполнения приложений C ++ на U-Boot.
1.) Скомпилировал приложение C ++ с помощью g ++ (кросс-компилятор C ++) и попытался связать его с U-Boot, который скомпилирован с использованием gcc (The C-Compiler). Но я не могу этого сделать:
Я вижу сообщение об ошибке:
/ ToolChain / host / usr / powerpc-buildroot-linux-uclibcspe / bin / ld: не удалось объединить целевые данные файла …
2.) Попытался скомпилировать мое приложение вместе с U-Boot таким же образом, как и в отдельных примерах. Я создал отдельный каталог в U-Boot и попытался скомпилировать его. Приложения C ++ не создаются, но я могу создавать приложения C-Applications.
Мое главное намерение — запускать приложения на C ++ непосредственно в U-Boot.
Пожалуйста, помогите мне, как это сделать?
Извините, я полагаю, что для загрузки C ++ в U-Boot было бы больше работы, чем для вас, например. идти с ОС.
короткий ответ, от технического лидера U-Boot:
> Does u-boot support C++ example programs and if so, how can I build one?
U-Boot does not support C++.
Вот некоторые технические предпосылки для этого: U-Boot работает на голом металле. Автономное приложение U-Boot будет ссылаться на экспортированные функции U-Boot, которые необходимы приложению. Например, ваше приложение C ++ будет использовать ‘new’, ваша библиотека C ++ должна выполнять вызовы malloc, что в этом случае будет означать переход к интерфейсу экспортируемых функций u-boot (см. Doc / README.standalone).
Что касается общей темы C ++ о голом металле, я не сделал этого, но нашел Миро Самек учебник, который может пролить свет. Я думаю, что это будет сложно. Портирование linux начинает хорошо выглядеть в сравнении.
Других решений пока нет …