Skip to content

Building

mean00 edited this page Jan 3, 2024 · 11 revisions

Make sure you have cloned the submodules

You 'll need make, cmake and a toolchain for your target (arm or riscv) I'd suggest using arm-gcc-2020q4 for arm, from here xpack

1- Edit platform config

Give the path to the toolchain

2- Build options

Make sure to add -DUSE_NO_DEFAULT=1 to disable the default and specify your own option

  • USE_SMALLFOOTPRINT : built to fit in 64k. that will remove bootloader, USB and fancy graphics
  • USE_FNIRSI_BUTTON : Use the pin layout of the FNIRSI style clone, they differ slightly
  • USE_GD32F3 : Build for GD32F303
  • USE_ROTARY_FULL_STEP : If the rotary encoder takes 2 steps to move, rebuild with that enabled
  • USE_USB : Enable USB support (it's not used much for now, except for DFU runtime)

The default is USE_USB, which is fine for original DSO150.

For the FINRSI clone, use:

cmake -DUSE_NO_DEFAULT=1 -DUSE_FNIRSI_BUTTON=True -DUSE_SMALLFOOTPRINT=True ..

3- Fine tune mcuSelect.cmake

Don't enable picolibc if you dont have it installed

You can set LN_MCU_SPEED to overclock/underclock the MCU For example :

    SET(LN_MCU_SPEED 96000000  CACHE INTERNAL "")

/!\ With a STM32F103 chip, if you are not using a 72Mhz clock, you'll loose USB /!\

4- build

    mkdir build && cd build && cmake -DUSE_NO_DEFAULT=1 .. && make

The result will be :

  • an elf file with the name along lnDSO_M3_mod_hstep_72M.elf
  • a bin file such as lnDSO_M3_mod_hstep_72M_USB.elf.checksumed.bin (mainly for DFU)

Clone this wiki locally