Only support Linux(recommend) and macOS
And you can use online build tool here: https://www.maixhub.com/compile.html
- Clone by https link
git clone https://github.com/sipeed/MaixPy.git
- Then get submodules
git submodule update --recursive --init
It will regiter and clone all submodules, if you don't want to register all submodules, cause some modules is unnecessary, just execute
git submodule update --init
# or
git submodule update --init path_to_submodule
# or
git submodule update --init --recursive path_to_submodule
Ubuntu for example:
sudo apt update
sudo apt install python3 python3-pip build-essential cmake
sudo pip3 install -r requirements.txt
If macOS:
- Install cmake by brew or download dmg file from cmake official website
- Ensure command
cmake --version
can be executed in terminal, in macOS maybe you need to add cmake bin dir toPATH
in~/.bashrc
or~/.zshrc
like:
export PATH=$PATH:/Applications/CMake.app/Contents/bin/
recommend
python3
instead of python2
Check CMake
version by
cmake --version
The cmake
version should be at least v3.9
, if not, please install latest cmake
manually from cmake website
Download the latest toolchain from here (macOS and linux), or kendryte-toolchain-ubuntu-amd64-8.2.0-20190409.tar.xz(CDN) (for linux)
And extract to /opt/kendryte-toolchain/
For example:
wget http://dl.cdn.sipeed.com/kendryte-toolchain-ubuntu-amd64-8.2.0-20190409.tar.xz
sudo tar -Jxvf kendryte-toolchain-ubuntu-amd64-8.2.0-20190409.tar.xz -C /opt
ls /opt/kendryte-toolchain/bin
- Switch path to
hello_world
project directory
cd MaixPy
cd projects/hello_world
or maixpy project
cd MaixPy
cd projects/maixpy_k210
- Configure toolchain path
The default toolchain path is /opt/kendryte-toolchain/bin
,
and default toolchain pfrefix is riscv64-unknown-elf-
.
If you have copied toolchain to /opt
, just use default, and it is highly recommend!!
Or you can customsize your toolchain path by
python3 project.py --toolchain /opt/kendryte-toolchain/bin --toolchain-prefix riscv64-unknown-elf- config
Clean config to default by command
python3 project.py clean_conf
- Configure project
Usually, just use the default configuration.
If you want to customsize project modules, execute command:
python3 project.py menuconfig
This command will display a configure panel with GUI, then change settings and save configuration.
python3 project.py build
And clean project by:
python3 project.py clean
Clean all build files by:
python3 project.py distclean
The make system is generated from cmake
,
you must run
python3 project.py rebuild
to rebuild make system after you add/delete source files or edit kconfig files
For example, you have one Maix Go
board:
python3 project.py -B goE -p /dev/ttyUSB1 -b 1500000 flash
For Maixduino
board:
python3 project.py -B maixduino -p /dev/ttyUSB0 -b 1500000 -S flash
-B
means board, -p
means board serial device port, -b
means baudrate, -S
or --Slow
means download at low speed but more stable mode.
the configuration saved in .flash_conf.json
except args: --sram
(-s
)、--terminal
(-t
)、--Slow
(-S
)
You don't need to confiure again the next time you burn firmware, just use:
python3 project.py flash
or
python3 project.py -S flash
More parameters help by :
python3 project.py --help
- Code conventions: TODO
- Build system: refer to c_cpp_project_framework