This is an old revision of the document!
NO-OS Project Build Guide
NOTE: This build guide is valid for the projects found in the
no-OS/projects folder. If your project resides elsewhere under the no-
OS repository tree, it is a legacy project. A build guide for legacy projects can be found
Build no-OS with GNU make.
Clone NO-OS with the --recursive
flag:
git clone --recursive https://github.com/analogdevicesinc/no-OS
If however you've already cloned NO-OS without the --recursive
flag, you may initialize all the submodules in an existing NO-OS clone with:
git submodule update --recursive --init
Build Prerequisites
Prior to building a no-OS project, it is required to set up some environment variables so that the build process may find the necessary tools (compiler, linker, SDK etc.).
Use the following commands to prepare your environment for building no-OS projects:
Assuming the SDK is installed at this path:
/path/to/intel
└── intelFPGA
└── 18.1
Run:
$ source no-OS/tools/scripts/platform/intel/environment.sh /path/to/intel/intelFPGA 18.1
Assuming the Vitis is installed at this path:
/path/to/xilinx
├── DocNav
├── Downloads
├── SDK
│ └── 2019.1
└── Vitis
├── 2020.1
└── 2020.2
Run:
$ source /path/to/xilinx/Vitis/2020.1/settings64.sh
For more information, consult the support/answers/47821.html.
ADuCM3029 (Click to expand)
ADuCM3029 (Click to expand)
Please install all the necessary packs locally and then manually import them in CrossCore
Common Issues with environment setup:
Windows (Click to expand)
Windows (Click to expand)
Assuming the SDK is installed at this path:
C:\
└── intelFPGA
└── 18.1
Run:
> .\no-OS\tools\scripts\platform\altera\environment.bat C:\intelFpga 18.1
Assuming the SDK is installed at this path:
C:\Xilinx
├── DocNav
├── Downloads
├── SDK
│ └── 2019.1
└── Vitis
├── 2020.1
└── 2020.2
Run:
> C:\Xilinx\SDK\2020.1\settings64.bat
For more information, consult the Xilinx support support/answers/47821.html.
Note that Xilinx SDK versions 2018.3 or earlier don't properly set up the Windows PATH so that you may use make command provided with the SDK from the shell.
If this is the case, please manually add the following to your Windows PATH or install make for Windows of your choice:
C:\Xilinx\SDK\2018.3\gnuwin\bin
ADuCM3029 (Click to expand)
ADuCM3029 (Click to expand)
Please install all the necessary packs locally and then manually import them in CrossCore
Common Issues with environment setup:
If using PowerShell instead of cmd, open another shell instance after running the above scripts.
Building a project
Go in the project directory that should be built.
$ cd no-OS/projects/project_name/
$ tree
.
├── builds.json
├── Makefile
├── src
└── src.mk
Copy the .sof and .sopcinfo to the project folder.
$ ls
Makefile profiles src src.mk system_bd.sopcinfo adrv9009_a10gx.sof
$ make
# Alternatively you may select a .sopcinfo file explicitly by:
$ make HARDWARE=path/to/system_bd.sopcinfo
Copy the .hdf in the project folder.
$ ls
Makefile profiles src src.mk system_top.hdf
$ make
# Alternatively you may select an .hdf file explicitly by:
$ make HARDWARE=path/to/file.hdf
Make sure you have the .ioc file in the project directory, then type:
$ make
ADuCM3029 (Click to expand)
ADuCM3029 (Click to expand)
The ADuCM3029 projects also contain a pinmux_config.c
file which contains pin configuration instructions.
# build an ADuCM3029-only project
$ make
# if the platform autodetection picks the wrong platform, explicitly specify the PLATFORM
$ make PLATFORM=aducm3029
Windows (Click to expand)
Windows (Click to expand)
CMD needs to be run with
administrative privileges to create a project.
If this is not possible, check the standalone section.
> cd .\no-OS\projects\project_name\
It should contain make-related files and source files:
.\no-OS\projects\project_name\
├── builds.json
├── Makefile
├── src
└── src.mk
Copy the .sof and .sopcinfo to the project folder and run:
.\no-OS\projects\adrv9009\
├── Makefile
├── profiles
├── src
├── src.mk
├── system_bd.sopcinfo
└── adrv9009_a10gx.sof
> make
Copy the .hdf to the project folder and run:
.\no-OS\projects\adrv9009\
├── Makefile
├── profiles
├── src
├── src.mk
└── system_top.hdf
> make
ADuCM3029 (Click to expand)
ADuCM3029 (Click to expand)
The ADuCM3029 projects also contain a pinmux_config.c
file which contains pin configuration instructions.
# build an ADuCM3029-only project
> make
# if the platform autodetection picks the wrong platform, explicitly specify the PLATFORM
> make PLATFORM=aducm3029
The build process creates a build directory in the project folder:
build
├── app
├── bsp
├── obj
├── release.elf
└── tmp
Debugging/Running
Once the .elf
or .hex
file has been generated, make sure the board is powered on, JTAG cable connected and use the following commands to upload the program to the board or debug.
Uploading the binary to target is generically achieved with:
$ make run
However, debugging interface might be different across platforms and the specifics are documented below.
Use the following command to launch XSDK to be able to debug graphically by clicking the debug button.
$ make develop
A debug configuration is created automatically, debugging should work out of the box.
ADuCM3029 (Click to expand)
ADuCM3029 (Click to expand)
Use the following command to launch CCES to be able to debug graphically by clicking the debug button.
$ make develop
However, a debug configuration must be created first by following the debug session configuration section of this guide.
If you prefer using plain gdb
in TUI mode, you may debug any stm32 target from a terminal using the following command:
$ make debug
Alternatively, you may open the project in the SDK and debug as usual by launching the Eclipse debugger:
$ make develop