<< return to Pixycam.com

Any news on GCC port of the toolchain

Hi KJ — I don’t know offhand why you are getting linker issues…

This software is difficult to support in its current state. Please wait until we have a release.

Hey Guys, I was able to partially fix the linker errors above. The __aebi_memcpy4 eror is relatively easy, you just take the attached mem.cpp file and throw it in the video project src folder. It essentially just wraps memcpy because the aeabi version is not bundled in the libraries or tools.

As for the core_m0app_START issue, I created a new linker file for the video project which defines it, but I seem to have a memory placement issue, so when I figure out the whole memory map stuff, I can get that working as well. The LPCXpresso IDE for some reason has an issue with its autogeneration of the linker file (video_Release.ld), where it doesnt take into account the fact that this is a multicore project.

Long story short, after these changes, the project compiles, but it wont run on the pixy because of the memory placement issue.

Hi,

Any new progress on getting the gcc toolchain working? I’m about at the same point where I can get a hex file out of LPCXpresso, but it won’t run on the pixy.

Hey,

I have been trying to kind of reverse engineer the issue from the keil project. It doesn’t use linker files to map memory, it uses scatter files, which are kind of weird. I have had my hands full a little bit with the holidays, but I will let you guys know if I am able to get it running.

Hi all,
Are we going to have this on January 2015? :wink:

We’re still working on releasing firmware and PixyMon version 2.0. It’s pretty huge… we expect to have all the documentation in place next week for an official release.

So after next week we can start to work on what we’re calling the “Firmware SDK” (GCC version). But that doesn’t leave much time in Jan to finish… but we’ll keep y’all updated and do some early beta-ish releases. during the process.

Sorry… I realize we’ve moved this out several times.

Hi Rich,
ok, we’ll be (anxiously :wink: waiting…
I’m also a programmer so I can read between your lines and know that even for February it will be hot… maybe March? :smiley:
Well, if some of you guys can publish some information (wiki page?) about setting all up for software development, maybe I can find some time in February to help… I’m used to linux and gcc, C and C++ programming, but not familiar with SOC programming LPCXpresso IDE etc so if someone can publish some kind of first steps to put all tools together to compile the source code it would be great! Some answers to these questions might help:

  • whats the best linux distro to use?
  • can you do it with Windows 7 (yeah I know but I’m stuck with it, some of my customers are using windows…)
  • first steps with LPCXpresso IDE
  • how to compile / whats the dependencies between the gcc code and LPCXpresso project

Bump…

Really looking forward to a gcc port, so, got any updates in regards to your progress? eta?
Thanks!

Hello Pedro, Sondre,
It appears this project has been pushed out again. We have been working on fixing and improving the 2.0 release. The first release since the initial 2.0 release went out today, so this will give us more time to focus on the firmware SDK. We don’t have a date. When we start dedicating more man-hours to this effort, we’ll have a better idea where we stand, but right now we simply don’t know enough to provide an ETA.

I like your suggestion Pedro. We can post some information about how to get things set up so people can contribute. The GCC port isn’t in a state right now to where this would be productive, but in the coming weeks, this is likely. (We apologize for the lack of hard timeframes.)

Edward

Hi Edward,
thanks for the information! I’ll be waiting :slight_smile:
greetings
Pedro

Hi guys,
We’ll be working on this in the coming weeks and we expect it to take some time. I think there are a few of you that are waiting patiently and would jump at the opportunity to try some things out, offer suggestions, etc, if only we’d get something to a usable state!

So I’m thinking we should get a committee put together for the Firmware SDK. If you “sign up” to be on the committee, we’ll email you the latest status, provide links to the latest developments, ask you to give things a try, etc. And you can then tell us what you think, problems encountered, etc. If you want to help with the development, that’s awesome — not required, but awesome.

If you’re interested, let me know in this thread, or send me a note (rich at charmedlabs dot com)

thanks!

Hi Edward and Rich. Thank you for the update! You mentioned a committee Rich, I would very much like to participate with this, so sign me up!:slight_smile: My email is situz.sj at gmail com .
Thanks!

Yes! Count me in please. I’m an independent contractor so I never know how much free time I have but I’ll try to contribute as much as possible.

I dunno if it’s a good idea to post this here, perhaps a separate topic on this is better. But anyway.

After the 2 latest commits to github, I first got an error with the linker not finding video_SPIFI.ld (which should’ve been generated), which I fixed like this:

  • Open project properties for video
  • select C/C++ Build in the left hand tab
  • Select settings
  • In the “tool settings” tab, select “managed linker script”
  • check the “manage linker script” and choose library "newlib (nohost)

This was how the project was configured before the latest commits, and the first linker error was gone, but. now I’ve got this error:

C:[location removed]\src\device\gcc\video\src\libfalcon_m4_spifi_drv.a(spifi_rom_api.o): In function spifi_program': ..\spifi_rom_api.c:(.text+0xea0): undefined reference to__aeabi_memcpy4’
C:[location removed]\src\device\gcc\video\src\libfalcon_m4_spifi_drv.a(spifi_rom_api.o): In function spifi_erase': ..\spifi_rom_api.c:(.text+0x10f4): undefined reference to__aeabi_memcpy4’

Which seems kind of odd to me, because browsing the latest commits, I can’t say I find any removal of any definitions for this. But honestly I have no idea how this works.

So, my question is, did I do wrong in using “manage linker script”? Or something else?

I did manage to compile and debug the gcc firmware before the latest commits, so what changed in regards to this?

PS: Not blaming the commits per-say, just trying to figure out whats going on, and see if I can’t eventually contribute something :slight_smile:

Thanks

Nevermind! lol

After messing around with project settings I finally managed to compile, the video_SPIFI.ld file has to be generated by the managed linker script first. So here’s the steps for compiling:

1: Open project properties for video
2: select C/C++ Build in the left hand tab
3: Select settings
4: In the “tool settings” tab, select “managed linker script”
5: check the “manage linker script” and choose library "newlib (nohost)
6: Build project (There shouldn’t be any build errors. Also, make sure to build pixy_m4, pixy_m0, m0 first, in that order)
7: Repeat steps 1-4, uncheck “manage linker script”.
8: The input box “linker script” should now be enabled, change it’s value to “SPIFI_link_template.ld” (script path should be …/linkscripts)

Presumably, the reason this was needed for me now, was that the latest 2 commits implemented a custom linker script, that in turn made use of the linker script that’s generated by lpcexpresso managed linker script feature. If for some reason the generated linker script (video_SPIFI.ld) can’t be included in the git repo, these steps should be included as a guide to generate the linker script.

so yeah, hopefully that’s the correct way to do this, and that someone finds this helpful as well.

Nice work Sondre!

LPCxpresso is a little cagey with the linker scripts and the run configurations (I’ve found). When we release, we’ll have a zip file that you import (that’s the preferred method for Eclipse, etc.) But right now only raw video over USB is working…

Hi guys,
If anyone else is interested in being on the Firmware SDK committee, we have some stuff for you to play with.

If you’re interested, let me know in this thread, or send me a note (rich at charmedlabs dot com)

thanks!

Count me in. I would love to help (if I can). I am not a code guru, but I have a lot of experience with the Pixy code.

Best,
Thomas

Hi, I have an error when accepting your new google group pixy_firmware_sdk invitation so I applied for a new invitation…

Hi there,

How is the committee going?

http://cmucam.org/projects/cmucam5/wiki/Building_Pixy_Firmware
Is this still the latest information about a GCC build?

Best,
Michael