<< return to Pixycam.com

Compiler / IDE?

First, congratulations on a successful launch!

I know you’re all recovering from a sprint to the finish line but I was hoping you may be able to elaborate on the state of Pixy’s development environment. I know there was some talk a while back about shifting over to arm-gcc, has any more been done on this? Or is there any timeframe for doing this? If not, or the delay is long, can you provide any more information to help others get up and running with the current setup? Are you still using Keil MDK-ARM?

Thanks!
jay

Hi Jay— thanks man! It’s been busy, but good busy :slight_smile:

Regarding gcc, we want to do this for sure. We were one of the first LPC4300 customers, and at the time Keil was the only tool that supported JTAG debugging.

The conversion will take some time (I fear) because of the startup code, assembly and linker script stuff. Determining where to prioritize this effort will be difficult. I feel like we’re pretty stacked. (I’m surprised that you’re the first person to ask!)

You’re right though, we’re using Keil MDK-ARM. We should add notes on the wiki on how to get it up and running, but it’s really simple. You just point the IDE to the “video_m4_m0.uvmpw” workspace file in ~device/video. It will open a workspace with 4 different projects: video, m0, libpixy_m0, libpixy_m4. Compile the 4 projects in this order: libpixy_m4, libpixy_m0, m0, then finally the video project. The video project will create a video.hex output file that you can then upload into Pixy using firmware upload mode.

Keil is basically free for educational use if you have university connections. The CMU guys got it this way. I had to get it through the usual channels.

Hi,

I just received my Pixy and would also be interested in an IDE and some information about the firmware code. I installed the Keil MDK-ARM and am looking through “video_m4_m0.uvmpw”, but without some information about the structure of the code, it is hard to orient myself. It would be great to have an overview schematic outlining the organization of the firmware code, and ideally a few descriptive comments in the code, i.e. what each file does. Are you planning to provide documentation like this?

Thanks,
Matt

Hi Matt,

We’d like to do this, but as Rich mentioned above, we’re a bit busy with bugs and shipping Pixys, so I can’t give a timeframe as to when we’ll get around to it. The “video”:https://github.com/charmedlabs/pixy/tree/master/device/video project is definitely the place to start. I’d suggest avoiding the m0 stuff for now and focusing on the m4 side since that is where most of the interesting code is located. M0 is the core acquiring data from the image sensor, which the m4 accesses through shared memory.

You’ll probably notice that the code is broken up in to “programs”, which are just simple abstractions that mimic programs like on Windows or Linux. See the “video program”:https://github.com/charmedlabs/pixy/blob/master/device/video/progvideo.cpp for an example. Looking at this, you should start to get an idea as to how code is structured on Pixy.

Hope this helps.

Scott

Thanks for the quick reply! Those are very useful starting points.

Hi guys,

Maybe NXP would help in getting the project converted to their LPCXpresso IDE and GNU toolchain? I would think that Pixy Cam would be a great way for them to promote their chip and IDE to new audiences (like me!).

–Ed

I second that! I just need to make a few tweaks to get Pixy to work in my application.

-Thomas

Actually NXP has been awesome. They have helped us fix several issues we’ve run into along the way. But the conversion to gcc is a significant task… Doesn’t hurt to ask though!

I just sent an email to NXP, but let me also send a general request out to our backers/users—

If you know of someone that could help with this, please send me a note (rich a t charmedlabs d o t com) This person should have decent knowledge of toolchains, particularly gcc (e.g. crt0 and linker scripts).

This person wouldn’t be on their own, (I’d help!) and we’d figure out some kind of compensation, but I’m overcommitted, and I totally agree that we want this soon!

thanks!

Great! Thanks Rich. Please keep us updated on any progress.
–Ed

Hi Rich,

Did you use ‘MDK-CortexM’ (http://www.keil.com/arm/selector.asp)? Or did you have to get even more advanced tools?

Thanks!
Thomas

That’s interesting!

I hadn’t noticed that there was a new product (MDK-CortexM). I have the MDK-standard, but it looks like the MDK-CortexM should work.

Yeah! Unfortunately, I think it is only moderately less expensive, but I am still considering it.

,Thomas