1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/Nuclei-Software-nuclei-sdk

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Набор средств разработки программного обеспечения Nuclei

Сборка документации Сборка SDK

[!ЗАМЕЧАНИЕ] Если вы хотите собрать и запустить на процессорах серии Nuclei 100, пожалуйста, переключитесь на ветку develop_n100 или master_n100.

С версии 0.5.0 требуются Nuclei Studio >= 2023.10 и Nuclei RISC-V Toolchain/Qemu/OpenOCD >= 2023.10 для сборки и выполнения.

Набор средств разработки программного обеспечения Nuclei (Nuclei SDK) предназначен для разработки и тестирования программного обеспечения для системы на чипе Nuclei Evaluation SoC.

Структура Nuclei SDK

Этот набор средств разработки основан на фреймворке NMSIS, пользователи могут использовать все API, предоставляемые NMSIS, а также API, предоставленные Nuclei SDK, которые主要用于访问板载外设,例如GPIO、UART、SPI和I2C等。

Этот набор средств разработки может поддерживать различные компиляторы, такие как Nuclei riscv gcc/clang, IAR Compiler и Terapines ZCC.

Мы также интегрировали множество операционных систем реального времени в Nuclei SDK, такие как FreeRTOS, uCOSII, RT-Thread и ThreadX, вы можете легко найти их в папке OS.


Этот набор средств разработки программного обеспечения Nuclei (Nuclei SDK) предназначен для разработки и тестирования программного обеспечения для системы на чипе Nuclei Evaluation SoC.

Этот набор средств разработки основан на фреймворке NMSIS, пользователи могут использовать все API, предоставляемые NMSIS, а также API, предоставленные Nuclei SDK, которые主要用于访问板载外设,例如GPIO、UART、SPI和I2C等。

Этот набор средств разработки может поддерживать различные компиляторы, такие как Nuclei riscv gcc/clang, IAR Compiler и Terapines ZCC.

Мы также интегрировали множество операционных систем реального времени в Nuclei SDK, такие как FreeRTOS, uCOSII, RT-Thread и ThreadX, вы можете легко найти их в папке OS.## Быстрый старт

Хотите попробовать Nuclei SDK для процессоров серий Nuclei 200/300/600/900/1000, нажмите Быстрый старт с Nuclei SDK.

Хотите попробовать Nuclei N100 SDK для процессоров серии Nuclei 100, нажмите Быстрый старт с Nuclei N100 SDK.

Требования

  • Ubuntu Linux >=20.04 LTS или Windows >=7

  • Nuclei Studio >= 2024.06

    • Nuclei Studio поддерживает импорт NPK-пакета Nuclei SDK для создания проекта IDE через волшебника проекта, сборки и отладки.
    • Nuclei Studio также содержит ту же версию Nuclei Toolchain/QEMU/OpenOCD, поэтому достаточно просто скачать IDE.

Структура директорий

Вот структура директорий для этого Nuclei SDK.

$NUCLEI_SDK_ROOT
├── application
│   ├── baremetal
│   ├── freertos
│   ├── ucosii
│   ├── threadx
│   └── rtthread
├── Build
│   ├── gmsl
│   ├── toolchain
│   ├── Makefile.base
│   ├── Makefile.conf
│   ├── Makefile.core
│   ├── Makefile.components
│   ├── Makefile.files
│   ├── Makefile.global
│   ├── Makefile.misc
│   ├── Makefile.rtos
│   ├── Makefile.rules
│   └── Makefile.soc
├── doc
│   ├── build
│   ├── source
│   ├── Makefile
│   └── requirements.txt
├── NMSIS
│   ├── Core
│   ├── DSP
│   ├── NN
│   └── Library
├── OS
│   ├── FreeRTOS
│   ├── UCOSII
│   ├── ThreadX
│   └── RTThread
├── SoC
│   ├── gd32vf103
│   └── evalsoc
├── test
│   ├── core
│   ├── ctest.h
│   ├── LICENSE
│   └── README.md
├── LICENSE
├── Makefile
├── NMSIS_VERSION
├── package.json
├── SConscript
├── README.md
├── setup.bat
└── setup.sh
  • приложение

    Эта директория содержит все приложения для данного Nuclei SDK.

    Код приложений можно разделить на четыре основные части:

    • baremetal — приложения без использования операционной системы, расположенные в директории application/baremetal/.
    • freertos — приложения с использованием FreeRTOS, расположенные в директории application/freertos/.
    • ucosii — приложения с использованием UCOSII, расположенные в директории application/ucosii/.
    • rtthread — приложения с использованием RT-Thread, расположенные в директории application/rtthread/.
    • threadx — приложения с использованием ThreadX, расположенные в директории application/threadx/.
  • SoC

    Эта директория содержит все поддерживаемые SoC для данного Nuclei SDK. Названия директорий для SoC и его плат должны всегда быть в нижнем регистре. Здесь мы в основном поддерживаем процессорные ядра Nuclei, работающие на оценочных платах FPGA Nuclei, пакет поддержки расположен в каталоге SoC/evalsoc/.

В каждом каталоге include SoC должно присутствовать файл nuclei_sdk_soc.h, который должен включать заголовочный файл SoC, например, SoC/evalsoc/Common/Include/nuclei_sdk_soc.h.

В каждом каталоге include платы SoC должно присутствовать файл nuclei_sdk_hal.h, который должен включать заголовочный файл платы, например, SoC/evalsoc/Board/nuclei_fpga_eval/Include/nuclei_sdk_hal.h.

  • Конфигурация сборки

    Этот каталог содержит ключевые части системы сборки на основе файла Makefile для Nuclei SDK.* NMSIS

    В этом каталоге находятся заголовочные файлы NMSIS, широко используемые в данном Nuclei SDK. Вы можете проверить файл NMSIS_VERSION, чтобы узнать текущую версию NMSIS, используемую в Nuclei-SDK.

    Мы также будем синхронизировать изменения из проекта NMSIS, когда он выпускает новую версию.

  • Операционная система

    В этом каталоге представлены пакеты RTOS, которые мы поддерживаем.

  • Лицензия

    Лицензионный файл Nuclei SDK.

  • NMSIS_VERSION

    Файл версии NMSIS. Он показывает текущую версию NMSIS, используемую в Nuclei SDK.

  • package.json

    Файл конфигурации платформы PlatformIO для Nuclei SDK, используется в платформе Nuclei для PlatformIO.

  • SConscript

    Скрипт сборки SCons для пакета RT-Thread, используется в разработке пакета RT-Thread.

  • Makefile

    Внешний файл Makefile для сборки, запуска и отладки приложений без необходимости перехода в соответствующий каталог приложения, например, application/baremetal/helloworld/.

  • setup.sh

    Скрипт установки окружения Nuclei SDK для Linux. Вам потребуется создать свой собственный файл setup_config.sh.

    # Это может быть путь к папке с компиляторами Nuclei Studio
    NUCLEI_TOOL_ROOT=/путь/к/вашей_корневой_папке

    Для Linux в директории $NUCLEI_TOOL_ROOT должны быть установлены компиляторы Nuclei RISC-V и OpenOCD следующим образом: ~~~ ${NUCLEI_TOOL_ROOT} ├── gcc │ ├── bin │ ├── include │ ├── lib │ ├── libexec │ ├── riscv64-unknown-elf │ └── share └── openocd ├── bin ├── contrib ├── distro-info ├── OpenULINK ├── scripts └── share

    
    Bat-скрипт для настройки окружения Nuclei SDK для **Windows**. Вам нужно создать свой собственный `setup_config.bat`.
    
    ~~~bat
    set NUCLEI_TOOL_ROOT=\путь\к\вашей\_корневой\_папке\_инструмента

    В корне %NUCLEI_TOOL_ROOT% для Windows вам потребуется наличие Nuclei RISC-V компилятора, необходимых средств сборки для Windows и OpenOCD, как показано ниже.

    %NUCLEI_TOOL_ROOT%
    ├── build-tools
    │   ├── bin
    │   ├── gnu-mcu-eclipse
    │   └── licenses
    ├── gcc
    │   ├── bin
    │   ├── include
    │   ├── lib
    │   ├── libexec
    │   ├── riscv64-unknown-elf
    │   └── share
    └── openocd
        ├── bin
        ├── contrib
        ├── distro-info
        ├── OpenULINK
        ├── scripts
        └── share

Как использовать> [!NOTE]

Для обеспечения совместимости при использовании Nuclei EvalSoC (FPGA), пожалуйста, свяжитесь с нашим инженером по применению (Application Engineer, AE) относительно конкретной конфигурации процессора, чтобы подтвердить наличие нужных вам возможностей в процессоре EvalSoC. Вы можете использовать приложение cpuinfo, чтобы определить доступные возможности процессора на вашей системе и сравнить эту информацию со спецификациями ISA Nuclei.

  1. Создайте и отредактируйте свой собственный конфигурационный файл установки
    • Для Linux создайте setup_config.sh в $NUCLEI_SDK_ROOT.
    • Для Windows создайте setup_config.bat в %NUCLEI_SDK_ROOT%.
  2. Подключите среду выполнения скрипта непосредственно в NUCLEI_SDK_ROOT
    • Для Linux: source setup.sh
    • Для Windows: setup.bat
  3. Соберите и запустите приложение.
    • Примечание: По умолчанию SoC и платформа установлены как evalsoc и nuclei_fpga_eval, если вы не передали никакие переменные SOC и BOARD в команде Make, будет использоваться значение по умолчанию для SoC и платформы.
    • Предположим, что вы запустите это приложение -> application/baremetal/helloworld/.
    • cd application/baremetal/helloworld/
    • Вы можете запустить make help, чтобы показать сообщение помощи.
    • Мы предоставили различные конфигурации ядра Nuclei (CORE=<ваш_ядро>), которые мы поддерживаем, см. Build/Makefile.core.
      • Например, CORE=n300.
    • Мы поддерживаем несколько режимов загрузки (DOWNLOAD=<режим>) для различных приложений. - flashxip: Программа будет загружена в флэш-память и выполнена непосредственно из флэш-памяти.
      • flash: Программа будет загружена в флэш-память; при выполнении программа будет скопирована в ilm/ram и выполнена из ilm/ram.
      • ilm: Программа будет загружена в ilm/ram и выполнена непосредственно из ilm/ram; программа будет удалена при отключении питания.
    • Например, если вы хотите собрать свое приложение для CORE=n300 DOWNLOAD=ilm, вы можете легко запустить эту команду:
      make CORE=n300 DOWNLOAD=ilm all
    • Если вы хотите загрузить ваше приложение для CORE=n300 DOWNLOAD=ilm, вы можете легко запустить эту команду:
      make CORE=n300 DOWNLOAD=ilm upload
    • (Опция 1)Если вы хотите отладить свое приложение для CORE=n300 DOWNLOAD=ilm:
      • Вначале откройте новое окно терминала в той же папке с приложением и запустите: make CORE=n300 DOWNLOAD=ilm run_openocd.
      • Затем запустите эту команду make CORE=n300 DOWNLOAD=ilm run_gdb в существующем окне терминала, после чего вы сможете отлаживать приложение с помощью gdb; если вы хотите загрузить свою программу, вам нужно будет ввести load.
      • Уведомление: Начиная с версии 0.2.4, вы также можете передать дополнительный GDB_PORT=<порт>, чтобы изменить порт gdb на новый вместо значения по умолчанию 3333, например, make CORE=n300 DOWNLOAD=ilm GDB_PORT=3344 run_openocd и make CORE=n300 DOWNLOAD=ilm GDB_PORT=3344 run_gdb.
    • (Опция 2)Если вы хотите отладить свое приложение для CORE=n300 DOWNLOAD=ilm:
      make CORE=n300 DOWNLOAD=ilm debug
      ~~~* Если вы хотите использовать консольную утилиту UART для просмотра сообщений UART, вы можете выбрать `screen` или `minicom` в Linux, `teraterm` в Windows. По умолчанию мы используем скорость передачи данных UART `115200`.
      

## Основной справочник* Начиная с версии 0.5.0, Nuclei SDK поддерживает только Nuclei RISC-V Toolchain >= 2023.10, а префикс инструментария сменился с riscv-nuclei-elf- на riscv64-unknown-elf-.

  • Если вы хотите узнать больше о документации Nuclei SDK, пожалуйста, нажмите документация Nuclei SDK.

  • Если вам нужно создать новое приложение или изменить CORE или DOWNLOAD опцию, убедитесь, что вы очистили проект командой make clean.

  • Если вы хотите указать дополнительные флаги компилятора, следуйте этому руководству в вашем файле Makefile.

    • Передайте общие флаги компилятора всем компиляторам C/ASM/CPP, используя COMMON_FLAGS в файле Makefile, например COMMON_FLAGS := -O3 -funroll-loops -fpeel-loops.
    • Передайте флаги компилятора C только для компилятора C, используя CFLAGS в файле Makefile, например CFLAGS := -O3 -funroll-loops -fpeel-loops.
    • Для передачи флагов только для компилятора ASM используйте ASMFLAGS, для передачи флагов только для компилятора CPP используйте CXXFLAGS.
  • Если вы хотите передать дополнительные флаги линковщику, используйте LDFLAGS, а если у вас есть дополнительные директории библиотек, используйте LIBDIRS для указания этих директорий.* Предварительно предоставленные приложения и их файлы Makefile являются лучшими примерами начала работы с Nuclei SDK. * Передайте дополнительный параметр V=1 в команду сборки make, это покажет подробную информацию о процессе компиляции; если этот параметр отсутствует, будет показана только базовая информация. Пример вывода с дополнительным параметром V=1

    $ make V=1 all
    Текущая конфигурация: TOOLCHAIN=nuclei_gnu RISCV_ARCH=rv32imafdc RISCV_ABI=ilp32d RISCV_TUNE=nuclei-300-series RISCV_CMODEL=medlow SOC=evalsoc BOARD=nuclei_fpga_eval CORE=n300fd ARCH_EXT= DOWNLOAD=ilm STDCLIB=newlib_nano SMP=
    Ассемблирование: . . /. . /. . /SoC/evalsoc/Common/Source/GCC/intexc_evalsoc.S
    riscv64-unknown-elf-gcc -x assembler-with-cpp -O2 -DBOOT_HARTID=0 -march=rv32imafdc -mabi=ilp32d -mcmodel=medlow -mtune=nuclei-300-series -g -fno-common -ffunction-sections -fdata-sections -DDOWNLOAD_MODE=DOWNLOAD_MODE_ILM -DDOWNLOAD_MODE_STRING="ILM" -DCPU_SERIES=300 -I. -I. . /. . /. . /NMSIS/Core/Include -I. . /. . /. . /SoC/evalsoc/Board/nuclei_fpga_eval/Include -I. . /. . /. . /SoC/evalsoc/Common/Include -Iinc -MMD -MT . . /. . /. . /SoC/evalsoc/Common/Source/GCC/intexc_evalsoc.S.o -MF . . /. . /. . /SoC/evalsoc/Common/Source/GCC/intexc_evalsoc.S.o.d -c -o . . /. . /. . /SoC/evalsoc/Common/Source/GCC/intexc_evalsoc.S.o . . /. . /. . /SoC/evalsoc/Common/Source/GCC/intexc_evalsoc.S
    Ассемблирование: . . /. . /. . /SoC/evalsoc/Common/Source/GCC/intexc_evalsoc_s.S
    riscv64-unknown-elf-gcc -x assembler-with-cpp -O2 -DBOOT_HARTID=0 -march=rv32imafdc -mabi=ilp32d -mcmodel=medlow -mtune=nuclei-300-series -g -fno-common -ffunction-sections -fdata-sections -DDOWNLOAD_MODE=DOWNLOAD_MODE_ILM -DDOWNLOAD_MODE_STRING="ILM" -DCPU_SERIES=300 -I. -I. . /. . /. . /NMSIS/Core/Include -I. . /. . /. . /SoC/evalsoc/Board/nuclei_fpga_eval/Include -I. . /. . /. . /SoC/evalsoc/Common/Include -Iinc -MMD -MT . . /. . /. . /SoC/evalsoc/Common/Source/GCC/intexc_evalsoc_s.S.o -MF . . /. . /. . /SoC/evalsoc/Common/Source/GCC/intexc_evalsoc_s.S.o.d -c -o . . /. . /. . /SoC/evalsoc/Common/Source/GCC/intexc_evalsoc_s.S.o . . /. . /.. /SoC/evalsoc/Common/Source/GCC/intexc_evalsoc_s. s
    Ассемблирование:  . /SoC/evalsoc/Common/Source/GCC/startup_evalsoc. s
    ~~~## [Участие](https://doc.nucleisys.com/nuclei_sdk/contribute.html)## [Журнал изменений](https://doc.nucleisys.com/nuclei_sdk/changelog.html)
    
    

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Nuclei RISC-V Processor Software Development Kit. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/Nuclei-Software-nuclei-sdk.git
git@api.gitlife.ru:oschina-mirror/Nuclei-Software-nuclei-sdk.git
oschina-mirror
Nuclei-Software-nuclei-sdk
Nuclei-Software-nuclei-sdk
master