Devo Build with armgcc

More
10 Mar 2013 18:02 #7618 by elwood153
Devo Build with armgcc was created by elwood153
Hello,

I used a snapshot from the repository to build my own binary for the Devo 8s. I already have an ARM toolchain (GCC 4.7.2) installed from other projects so I tried to use this one.

As my toolchain is installed with a different prefix (arm-eabi instead of arm-none-eabi), the following small change helped me to compile the project:
--- target/common_devo/Makefile.inc.old 2013-03-10 16:44:33.129570402 +0100
+++ target/common_devo/Makefile.inc     2013-03-10 16:34:53.001600283 +0100
@@ -1,6 +1,7 @@
 ifndef BUILD_TARGET
 
-CROSS    = arm-none-eabi-
+PREFIX   ?= arm-none-eabi
+CROSS    = $(PREFIX)-
 EXTRA_MAKEFILES := $(EXTRA_MAKEFILES) target/common_devo/Makefile.inc
 
 LINKFILE = target/$(TARGET)/$(TARGET).ld

With this change I was able to build the firmware with the following command:
make TARGET=devo8 PREFIX=arm-eabi

The build was fine. Updating the firmware with dfu-util was not working as the bootloader seems to ignore the image progammed with this tool. When I used the Walkera DfuSe tool it did no longer hang in the bootloader screen. It looks like the bootloader starts my firmware but the firmware hangs with a black screen. Using a nightly build works well.

Is there some gcc/binutil patch needed in order to build the deviation software?!

Elmar

Please Log in or Create an account to join the conversation.

More
10 Mar 2013 19:18 - 10 Mar 2013 19:18 #7619 by PhracturedBlue
Replied by PhracturedBlue on topic Devo Build with armgcc
I spent a lot of time trying to make the arm build work properly with the devo tx. I don't think there are any special patches to gcc since we can build using both yagarto and the summon toolchain, but the environment is still somewhat picky about what it takes. The only way I've ever debugged it is by looking at the disassembly to see what is going on, and that is a time consuming process.

So if you figure it out, please let us know, but if you want it to 'just work', using Summon or YAGARTO is certainly the easiest way.

Do not use the dfu-utils to program the Tx. The dfu is 'encrypted' by the Walkera DFuSe tool (using the STM32 unique-id). I will eventually create a custom programmer that implements the necessary changes to dfu-utils, but it is still a ways off.
Last edit: 10 Mar 2013 19:18 by PhracturedBlue.

Please Log in or Create an account to join the conversation.

More
10 Mar 2013 20:52 #7625 by sbstnp
Replied by sbstnp on topic Devo Build with armgcc
Don't spend time on arm-eabi it doesn't work. Last year I wasted about 2 weeks on it. Most I could get it to go was the USB screen. Unfortunately my time was very limited so I eventually abandoned the search.

If you used summon (on Linux) it's a straight forward process, I think the most you need to do is to set the prefix it installs to (default is in $HOME, I like it system wide).

Good luck.

Devo 10 + 4in1
Spektrum Dx9
FrSky Taranis + TBS Crossfire

Please Log in or Create an account to join the conversation.

More
13 Mar 2013 17:13 - 13 Mar 2013 17:15 #7695 by elwood153
Replied by elwood153 on topic Devo Build with armgcc
Today I made some more tests. A working toolchain is the ARM version.

My first test was to take my 4.7.2 build, remove the devo8.elf file, let the linker link the pre-build objects again and - now I have a working firmware. If I did not miss anything the problem must be the gcc linker frontend, the binutil linker or binutil objcopy. The other steps seem to be independent from the toolchain.
Last edit: 13 Mar 2013 17:15 by elwood153.

Please Log in or Create an account to join the conversation.

Time to create page: 0.029 seconds
Powered by Kunena Forum