Setting up not quite successful

I followed every single step, exactly as outlined on the Setting Up Your DE page for my pod. None of them gave me any errors.

After I flash the Daisy via USB to run Blink, the Power LED stays on and the User LED starts blinking.

I changed this code and I also commented it out

System::Delay(500);

to

System::Delay(10000);

but the blink rate of the User LED didn’t change. I suspect there is some sort of issue going on.

This is what I get after running task build_and_program_dfu

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2020 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util / Tickets

Warning: Invalid DFU suffix signature
A valid DFU suffix will be required in a future dfu-util release!!!
Opening DFU capable USB device…
ID 0483:df11
Run-time device DFU version 011a
Claiming USB DFU Interface…
Setting Alternate Setting #0
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 1024
DfuSe interface name: "Internal Flash "
Downloading element to address = 0x08000000, size = 45760
Erase [=========================] 100% 45760 bytes
Erase done.
Download [=========================] 100% 45760 bytes
Download done.
File downloaded successfully
Error during download get_status
make: *** […/…/libDaisy/core/Makefile:330: program-dfu] Error 74
The terminal process “C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -Command make clean; make; make program-dfu” terminated with exit code: 1.

I don’t know if this means anything, but launch.json in /.vscode has those lines

“executable”: “${workspaceRoot}/build/Blink.elf
“svdFile”: “${workspaceRoot}/.vscode/STM32H750x.svd””

However, there is no .elf or .svd file in the /build folder.

Hey.
Beg your pardon for asking, but did you rebuild the firmware after your edits?
You have to run make clean and then make to compile your changes into a new .bin file.

If you are using VSCode, you can do this by pressing Ctrl+Shift+P anf typing task build and choose the according option.

I did run “task build_and_program_dfu” and the output is in my first post. According to the setup instructions, that will build the example and flash the Daisy.

However, I did notice that in the build folder, the .bin file didn’t change the modified date to the current date. It’s still the date when the folder was first created. SimpleLed.hex also didn’t change the date. All the other files in the build folder changed their date.

I can use the web programmer to flash different samples successfully, so the communication with the Daisy is fine.

This is the error I get when running task build. It looks like it’s not finding… something.

I looked in /libDaisy/core/Makefile at line 292 but can’t figure out what it needs. I guess I’ll look again

rm -fR build
process_begin: CreateProcess(NULL, rm -fR build, …) failed.
> make (e=2): The system cannot find the file specified.
> make: […/…/libDaisy/core/Makefile:292: clean] Error 2 (ignored)
arm-none-eabi-g++ build/startup_stm32h750xx.o build/SimpleLed.o -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard --specs=nano.specs --specs=nosys.specs -T…/…/libDaisy/core/STM32H750IB_flash.lds -L…/…/libDaisy/build -L …/…/DaisySP/build -ldaisy -lc -lm -lnosys -ldaisysp -Wl,-Map=build/SimpleLed.map,–cref -Wl,–gc-sections -Wl,–print-memory-usage -o build/SimpleLed.elf
c:/users/bobo/documents/daisytoolchain-0.3.2/windows/bin/…/lib/gcc/arm-none-eabi/10.2.1/…/…/…/…/arm-none-eabi/bin/ld.exe: cannot find -ldaisy
collect2.exe: error: ld returned 1 exit status
make: *** […/…/libDaisy/core/Makefile:277: build/SimpleLed.elf] Error 1
The terminal process “C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -Command make clean; make” terminated with exit code: 1.

The error at line 292 is ignored - it is trying to delete the contents of a directory called “build” but the directory does not exist or is empty - this is probably part of the “build clean” step, so it is allowed to fail in case the build does not exist. The error that actually terminates the build is below - it cannot find libdaisy when it is trying to link the program. I would check that this library is installed properly and on a path known to the build system. Sorry I can’t be more specific - I am a Linux guy and you are pretty obviously on Windows.
Regards,
John

Problem solved!

John, I was getting tired of it all, especially on a Sunday, but your post gave me a virtual kick in the butt.

I noticed in the line before the -ldaisy error that it tries to output SimpleLed.elf in /build, but no such file existed. I dug deeper into the make of libdaisy and I found out that the /build directory of libdaisy was empty. I built libdaisy and daisySP and everything started working. Duh, no kidding…

The thing is that I struggled so much to make it all work with Visual Studio 2022 and I tried so many different things, modified libdaisy, deleted it and pulled it from github, modified, deleted, replaced, etc… that I had forgotten after the last pull to build it. BTW, I gave up on Visual Studio and now I run VSCode without any issues.

1 Like

Glad you got it going! As I say, I am not a Windows person - I used VS professionally a few times over a decade ago (and did not care for it) but not recently, so I’m really not qualified to comment. I’ve just spent a lot of time decoding compiler and build system droppings in general…
Regards,
John

I’ve been using VS since its beginnings, but it’s been projects created in VS and thus I never had to spend any time or thought on what the compiler does. I would just run Build/Rebuild from VS and that would be it. This is the first time I step outside the MS/VS environment in a significant way.

How difficult is it to set up everything for daisy on Linux? I really want to get back to Linux. Not entirely, since I have some audio software that might not run on it.

Years ago I spent some time programming the TCP/IP stack in Debian, but that was with no GUI, just the bare minimum like kernel and network connectivity. What distribution are you using?

I’m using Ubuntu Studio. I am not a fan of IDEs - I prefer the old school, multiple text editors in terminal windows approach to development. But I’ve been coding C++ on various platforms since about 1993 - just after compilers the language began to become widely available. In fact, the first C++ “compilers” I used output C code rather than binary - you had to compile that output with a separate C compiler to get object files.
I have used IDEs in the past - they were often a requirement of employment - but I never settled on one and I find it annoying to have to invest the effort to get up to the level of efficiency I have with command line tools. I have lots of friends who have tried to convert me over the years, but it never takes…
There are definitely good IDEs available for Linux (there are probably ways to run VS or something very like it), but I am really not the person to make any recommendations.
Regards,
John

I see Ubuntu Studio comes with a DAW. Interesting… I see people online saying they got it to work with M-Audio Firewire 1814, which is my interface as well. It’s old, but I see no reason to get a newer one if it works.

When I was programming on Debian I think I was using vi. What I use most in Visual Studio when looking at a new application is right clicking on a function and selecting to go to its definition, which jumps the code to that place, or selecting to see all the references, all the places where the function is called. I bet other IDEs can do the same. I got very used to those things.