embox

Форк
0

README.txt

Подготовка к использованию

Для использования Rust в Embox необходимо:

  1. Установить свежую версию Rust: https://www.rust-lang.org/ru/tools/install 1.1. Установить Rust-nightly: rustup install nightly 1.2. Установить target i686-unknown-linux-gnu: rustup target install i686-unknown-linux-gnu 1.3. Установить nightly sources: rustup component add rust-src --toolchain nightly-x86_64-unknown-linux-gnu 1.4. Установить bindgen: cargo install bindgen
  2. Установить clang средствами OS. Например для Debian: sudo apt install clang

Запуск примера Rust-приложения console_print

  1. Зайти в корневую директорию embox
  2. Выполнить: make confload-x86/qemu
  3. Добавить в конец файла conf/mods.conf строку: include third_party.cmd.console_print
  4. Выполнить: make
  5. В случае успешной сборки выполнить: sudo ./scripts/qemu/auto_qemu
  6. После успешного запуска embox в строке tish выполнить: rcp

Дополнительная информация

cbind.sh.example - пример шелл-скрипта для вызова bindgen через консоль build.rs.example - пример использования bindgen из Rust targets - директория с целями для компиляции rust-проектов Про global_allocator. см.: https://doc.rust-lang.org/nightly/std/alloc/#the-global_allocator-attribute // ВАЖНО! т.к. emlibc-проект исключительно для подготовки биндингов - обязательно используем хост-цель .clang_arg("--target=x86_64-pc-linux-gnu")

Отладка.

// Тут можно прочитать по gdb: http://rus-linux.net/nlib.php?name=/MyLDP/algol/gdb/otladka-s-gdb.html 0. Устанавливаем gdb

  1. Запускаем embox через: sudo ./scripts/qemu/auto_qemu -s -S
  2. Запускаем: gdb build/base/bin/embox или ugdb (если установлен)
  3. Ставим точки останова, например: b НАЗВАНИЕ_ОСНОВНОЙ_ФУНЦИИ_МОДУЛЯ
    • НАЗВАНИЕ_ОСНОВНОЙ_ФУНЦИИ_МОДУЛЯ можно найти после сборки в директории: build/base/obj/module/ПУТЬ_К_МОДУЛЮ
    • Например для build/base/obj/module/third_party/cmd/console_print функция будет иметь название main_third_party__cmd__console_print
    • Посмотреть можно в файле: console_print.o.build.o.cmd.o
  4. Присоединяемся из отладчика к запущенному в п.1 embox командой (tar)get ext:1234
  5. Продолжаем выполнение в отладке командой: (c)ontinue

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.