BerndGottschlag / goboard

12 stars 2 forks source link

How to compile firmware? #1

Open mrninhvn opened 3 years ago

mrninhvn commented 3 years ago

I have limited experience with nrf52-sdk, i still don't understand how to compile the firmware, can you give more instructions? Thank you!

mgottschlag commented 3 years ago

Sorry, I forgot to update the README.md when I exchanged the old NRF SDK with the NRF Connect SDK. See commit 54d23b0 for the new instructions.

To install the NRF Connect SDK, follow https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/gs_installing.html - fetching the master branch of nrfconnect/sdk-nrf should work - if not, I am currently on nrfconnect/sdk-nrf@5a8085cd.

mrninhvn commented 3 years ago

I got that error when building: -- Configuring incomplete, errors occurred! FATAL ERROR: command exited with status 1: 'C:\Program Files\CMake\bin\cmake.EXE' '-DWEST_PYTHON=c:\python39\python.exe' '-BD:\Keyboard\goboard\firmware\main\build' '-SD:\Keyboard\goboard\firmware\main' -GNinja

And i want to test unifying, how can i switch to unifying mode, thank you.

mrninhvn commented 3 years ago

@mgottschlag Hi, i'm return ncs v1.5.1 then config file ok, but build got error [92/241] Building CXX object CMakeFiles/app.dir/src/bluetooth.cpp.obj FAILED: CMakeFiles/app.dir/src/bluetooth.cpp.obj

In file included from ../src/bluetooth.hpp:4, from ../src/bluetooth.cpp:1: ../src/mode_switch.hpp:55:26: error: field 'callback' has incomplete type 'k_work_delayable' 55 | struct k_work_delayable callback; | ^~~~~~~~ ../src/mode_switch.hpp:55:9: note: forward declaration of 'struct k_work_delayable' 55 | struct k_work_delayable callback; | ^~~~~~~~~~~~~~~~

mgottschlag commented 3 years ago

Oh, I completely forgot this issue.

  1. Unifying code is only working in the old pre-nrf-connect-sdk firmware, i.e. BerndGottschlag/goboard@59bb7e6475d9e5f007e6ed9bba5a2c76e7c1f737. This version requires the regular nrf-sdk and does not use Zephyr. In this case, the old README.md contains the correct instructions to compile the firmware.
  2. The error you are seeing is because you do not use the correct version of NCS. You need one with a sufficiently new Zephyr, because the code needs the new work queue API.
mrninhvn commented 3 years ago

@mgottschlag Finally compiled the firmware, I'm working with this tree https://github.com/BerndGottschlag/goboard/tree/59bb7e6475d9e5f007e6ed9bba5a2c76e7c1f737 I don't understand how the main.c program works, can you explain it to me? Thank you.

mrninhvn commented 3 years ago

@mgottschlag So unifying code doesn't work with Zephyr, right?

mrninhvn commented 3 years ago

Oh, I completely forgot this issue.

  1. Unifying code is only working in the old pre-nrf-connect-sdk firmware, i.e. 59bb7e6. This version requires the regular nrf-sdk and does not use Zephyr. In this case, the old README.md contains the correct instructions to compile the firmware.
  2. The error you are seeing is because you do not use the correct version of NCS. You need one with a sufficiently new Zephyr, because the code needs the new work queue API.

Hi, i complie 59bb7e6 and flash, but nothing work, even usb, can you help me? I using nrf5sdk 17.0.2, thank you.