Windows: compiling custom FW gives errors


#1

Hi all,

following the instructions in https://sebiik.github.io/community.axoloti.com.backup/t/using-custom-firmware/1486?u=mikeanblips

I wanted to move my first baby steps into compiling a different firmware for the AXO board.
To this extent, I:

  1. copied the C:\Program Files (x86)\Axoloti\app\firmware directory to C:\Users\Mike\Documents\axoloti\custom_fw

  2. performed the steps in the above link, setting the "firmware directory" to the one just mentioned.

I get errors, however, and the process does not complete:

Start compiling firmware
"setup build dir"
"Compiling firmware..."
BDIR = C:\Users\Mike\DOCUME~1\axoloti/build
FIRMWARE = .
rm -f C:\Users\Mike\DOCUME~1\axoloti/build/xpatch.o C:\Users\Mike\DOCUME~1\axoloti/build/xpatch.elf C:\Users\Mike\DOCUME~1\axoloti/build/xpatch.bin C:\Users\Mike\DOCUME~1\axoloti/build/xpatch.d C:\Users\Mike\DOCUME~1\axoloti/build/xpatch.map C:\Users\Mike\DOCUME~1\axoloti/build/xpatch.lst C:\Users\Mike\DOCUME~1\axoloti/build/xpatch.h.gch
The system cannot find the path specified.
make: Nothing to be done for
all'.
Compiling firmware flasher...
The system cannot find the path specified.
make: Nothing to be done for
all'.
Compiling firmware mounter...
The system cannot find the path specified.
make: *** No rule to make target
`usb_msd.c '', needed by mounter_build/obj/usb_msd.o'. Stop.
shell task failed, exit value: 1
Link to firmware CRC CE53154E
Done compiling firmware

The only thing I can notice is the presence of a mixture of backslashes and slashes...Maybe this is the reason why it fails to find the paths?

Thank you,

Michele


#2

oops, our packaging of the firmware, is missing some new files.

you can get the missing files here:
https://github.com/axoloti/axoloti/tree/1.0.10/firmware

specifically, you will find that you are missing the mass_storage directory in the mounter
https://github.com/axoloti/axoloti/tree/1.0.10/firmware/mounter

will fix for the next release


#3

fixed in dev, for next release.


#4

Thank you @thetechnobear

I've gone to the linked repository and just downloaded it, then used the /firmware directory as a starting point.
This works! :tada:

Just to report on the "user experience". If I - after a successful compiling/flashing - do:

  1. open the main.c with my text editor and modify it
  2. ask the UI to compile my newly created "project"

I get the following:

BDIR = C:\Users\Mike\DOCUME~1\axoloti/build
FIRMWARE = .
rm -f C:\Users\Mike\DOCUME~1\axoloti/build/xpatch.o C:\Users\Mike\DOCUME~1\axoloti/build/xpatch.elf C:\Users\Mike\DOCUME~1\axoloti/build/xpatch.bin C:\Users\Mike\DOCUME~1\axoloti/build/xpatch.d C:\Users\Mike\DOCUME~1\axoloti/build/xpatch.map C:\Users\Mike\DOCUME~1\axoloti/build/xpatch.lst C:\Users\Mike\DOCUME~1\axoloti/build/xpatch.h.gch
The system cannot find the path specified.
make: Nothing to be done for `all'.
"Compiling firmware flasher..."
The system cannot find the path specified.
make: Nothing to be done for `all'.
"Compiling firmware mounter..."
The system cannot find the path specified.
make: Nothing to be done for `all'.
Link to firmware CRC 2893BD03
Done compiling firmware

I have to close/reopen the UI, then I still get a bunch of "file not found" warnings but the new main.c is compiled and it implements the changes I've coded.

Thanks a lot for your support guys!

Mike


#5

Hmm guys, some issue here...

I've been trying to connect to the AXO board but I keep getting this:

USB device found
org.usb4java.LibUsbException: USB error 5: Unable to claim interface: Entity not found
org.usb4java.LibUsbException: USB error 5: Unable to claim interface: Entity not found
at axoloti.USBBulkConnection.connect(USBBulkConnection.java:247)
at axoloti.MainFrame$2.run(MainFrame.java:269)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Do I need to "rescue"??
I'm not sure what caused this, as I was just playing with some blinking leds...


#6

Nevermind...new skill learnt: rescue the board from DFU mode :grin:


#7

Yeah, "rescue flash" or use stlink/openocd to flash.
For firmware development I recommend setting up Eclipse with gnu-arm cross-compiler and openocd debugging, that allows to step/watch/break through firmware.
I'm moving this topic to the developer category.


#8

Yep!

That's what I am preparing, but have no cable yet from ST-Link to AXO, so I was just playing around with the integrated compiler/flasher.

Thanks again for your support @johannes, it is highly appreciated and somewhere down the line I'll may be able to give back :innocent:


#9

OK, yes, you need to restart the Axoloti UI after you have specified the firmware directory.
(though I thought thats just because I dont rebuild the menus, so you dont get the compile option)

other errors are not expected, and I don't get any errors on 1.0.10 on OS X.
(could be a windows issue with build firmware scripts?)