Difference between "make" and "Run Build Task"?

Hi everyone,

I’m such a noob here so don’t be too harsh if I say something stupid please hehe.
I’m still trying to set up VS Code properly to compile and debug using the examples from the DaisyExamples repo and there’s something I don’t get here:

  • If I use GitBash inside, let’s say de Blink example folder, and type make it builds all the necessary files:


    and the “build” folder is created inside de Blink folder:
    image
    Cool.

  • If I’m in VSC with my Blink project open and type “make” in the terminal or click on Terminal > Run Build Task (which form the “tasks.json” I’ve figured out is the same thing) the files are supposed to be created:


    but the build folder doesn’t show up:
    image

  • If I then try to run the “program” task (which I suppose should create the files and put them in a “build” folder) I get this error:


    But still I can run the “program-dfu” task and the program flashes to the Daisy Seed with no problem and you can see the LED blinking:

I don’t get iiiiit!!! Is this of any importance? Should I be worried about trying to compile and flash my own programs or everything is going to just work anyway?

I still have to get into creating my own project and coding on my own, any particular workflow or configuration for VSC recommended to make sure everything runs smoothly?

Thanks everyone and keep building this amazing comunity!

Openocd is used for programming and debugging with hardware programer (ST-Link). It’s not found on your machine, apparently. But you don’t use that programmer, so it doesn’t matter.

DFU mode is used to flash your application binary and it only uses USB connection.

That last error happens on some versions of dfu-util, it’s a false alarm that you can ignore.

Thanks for answering @antisvin!

Good to know the las error is just a false alarm, it was anoying me a bit haha Is there any way I can debug with the DFU mode as I would with an ST-Link or do I have to use an ST-Link no matter what?

There is a Logger class in libdaisy that would allow you to print-style debugging, but there isn’t currently a method for actual debugging (a la breakpoints, stack traces, etc.) via USB.

The DaisySeed class has wrappers for the common logger functions: StartLog Print and PrintLine

OK thank you very much for clarifying this!

I’ll try experimenting a bit with the Logger class then before going into ST-Link and see if that works for me.

Hope I can help you out some day too!

The Logger class is very easy to use!

In your main() place

hardware.StartLog(false);

(before starting your audio).

You can then output text and variable values with

hardware.PrintLine("mytext = %d", myvar);

or

hardware.PrintLine("mytext");

I even use it to export MIDI in XML form! (see OscPocketD - Portable music tool (sequencing drums and synths) - #13 by StaffanMelin).

I use GNU Linux (Debian) so I can mointor the serial port with

cu -l /dev/ttyACM0

and

screen /dev/ttyACM0

or for logging

screen -L -Logfile mylogfile.xml /dev/ttyACM0

2 Likes

Great!

Going to try and tell you how it goes.

Thanks so much for the help :raised_hands: :raised_hands:

2 Likes