Building modules hex file in windows 7

Hi all,

i have been trying to learn building the various monome modules(ansible, teletype etc) via git shell on win7 64 bit and have kinda gotten lost in “avr32-gcc and company are available on our path”

i have gotten to cloning the repository, having avr32 installed as part of the installation of atmel studio 7.

Am wondering if anyone managed to build the hex file in windows, able to give some pointers on how to go about it.

Thanks

i build in windows 10 (and before that in windows xp), don’t recall the details but i think i just installed avr32 and gcc and that was that. i’ll check if i have any notes when i’m back at home.

are you getting any errors?

regarding the installing of avr32 and gcc, i have initially gotten the file from atmel site, but the installer was a unzipped folder of the avr-gnu-toolchain and i have no idea which is the correct directory to put in.

After that then i tried the atmel studio 7 installer which has all the files installed into my c drive program files, within the atmel folder.

I am lost on this part from the monome linavr32 github site,

"Let’s build it, we need to make sure that avr32-gcc and company are available on our path. Assuming they are installed in ~/avr32-tools:

export PATH="$HOME/avr32-tools/bin:$PATH"
cd module
make
"

is the above a critical part of the building process?

it basically means you should have the avr32 bin folder in your PATH environment variable. you can see what’s it in it if you just run path in a command line, it should display the current value. you should see something like this:

PATH=C:\Program Files (x86)\Atmel\AVR Tools\AVR Toolchain\bin;.....

this ensures it can find the avr32 tools. not sure if it’s really needed or if you could just reference the full path when running make but in any case it makes it easier to use.

what happens if you open the folder where main.c is located and run make?

really appreciate the help!

within the environment variable(advance system settings), i can see that the PATH variable is at C:\Program Files (x86)\Atmel\AVR Tools\AVR Toolchain\bin.

when i try make in the main.c folder, i encountered this,

hmm not sure about this one… it builds okay for me. one thing to try though, you don’t really need to run it from git bash, just use the regular command line (cmd) and maybe run it as admin just in case.

Thanks scanner. I went back trying on the regular cmd and still having the same error.

will try further after more reading and searching around.

i’ll check if i documented the toolchain setup later too and will post here if i find anything that might be related. and hopefully somebody more familiar with avr32 can comment as well.

maybe also try a different firmware and see if you get the same error?

maybe you’re missing the avr/avr32 headers? which are a separate download from the toolchain (licensing reasons i’m sure)
http://www.atmel.com/tools/ATMELAVRTOOLCHAINFORWINDOWS.aspx

1 Like

Thanks z and sc,

@zebra, i have downloaded the header file and include it in environment path but most likely its not the correct way to do it. The compiling of ansible still having the same error.

@scanner_darkly, interestingly, after seeing your suggestion on trying the other firmwares, i had success with building earthsea, whilewhale and meadowphysics hex file.

Ansible and teletype are the 2 that didnt work out. For teletype, the error was that there is no make target and missing makefile in src folder.

I tried re cloning the teletype repository and somehow the process was successful but within the src folders, makefile was missing.

Will try again with some other non monome module firmware building and see what i can learn from there.

and include it in environment path

of course i am not sure that this is the culprit, but your output is consistent with errors from missing headers that i have seen.

the paths where GCC searches for headers (with -I flags, usually defined in makefiles) are not the same as the paths where the windows environment searches for executables

it’s just something to consider

[re-edit] sorry, the explicit include paths added in the makefiles aren’t actually relevant for the toolchain headers. sam has the correct location (for linux) below (and header installation is also covered in the aleph README.)

Ah yeah, that make sense,

Pardon on my noobness. I have just started on trying to do this sorta thing couple days back with no programming background.
Prolly gonna take a while to understand the basic. In the mean time, gonna be more reading and trying out

For teletype only you need to be in the module directory. If you spot any incorrect docs please let me know and I’ll get them corrected.

For ansible, is the libavr32 directory there and populated? I’ve just noticed that the .gitmodules file is using ssh rather than http which can cause problems, especially on Windows.

@sam,

Ahhh, that module folder! I was confused by it via teletype github and the rest. Mixed up on cd module vs cd src during initial build.

The libavr32 folder within ansible iirc were populated.

Iam at the other side of the world and going to leave for work soon. Will try again when i get home.

1 Like

No worries, I’ve just woken up :slight_smile:


@scanner_darkly and @pathein, once you’ve got this all figured out would you be able to add some Windows instructions to the readme on the [libavr32][] repo?
[libavr32]: https://github.com/monome/libavr32

And would it be worth updating the dev docs on the Monome site to point there too?

2 Likes

Yeah, that was the plan i was thinking of doing.

Hope to sort out ansible and teletype build and i can do a simple guide one it

1 Like

and after some doodling, cloning of the ansible and teletype repository via ssh have been successful with the submodules files all populated.

when going through the make process, similar errors encountered as the picture posted earlier.

Next thing to do will be on the header files. I have downloaded the header files via atmel site and wondering where should this folder of header files be used?

This isn’t for Windows, but the Linux the headers go in $AVR32TOOLS/avr32/include, see this .travis,yml file that is used to set up the build environment for testing.

Going by the earlier Windows path C:\Program Files (x86)\Atmel\AVR Tools\AVR Toolchain\bin, the header files probably need to go into C:\Program Files (x86)\Atmel\AVR Tools\AVR Toolchain\avr32\include. Does that work?

cool! Will go try that out now. Report back in a while :grinning:

tough luck. I have tried with unzipping the folder and leave it as is, replacing individual files etc. So far its not working out yet and having the same errors. Somehow it felt so close but still far. Will prolly try out after catching up on some rest first.