PDA

View Full Version : Programming for non-x86 (& x64)



desnudopenguino
06-26-2012, 04:59 PM
Anybody have any experience with arduino, arm, or fpga work? With the raspberry pi and other xsff platforms floating around now for extremely nice prices, I'm interested in playing with them and seeing what I can do. The interest is due to the fact that I'm a bitcoin miner (interest in the fpga), and an HCI student (looking at developing ubiquitous interfaces). I'd love to see if anyone has done any development, and maybe get my hands dirty. If anyone else is interested, let's do something xtreme!

rcofell
06-27-2012, 02:48 PM
Well, if you're talking mainly FPGA then you'd be writing Verilog (or VHDL) for the most part, which is a bit tough if you don't have much of a logic design background. It's certainly possible to learn in reasonable time with some dedication, there's just a number of good-practice concepts and pitfalls to be encountered if you don't have prior experience.

The big issue is it's quite a bit harder to make reasonably optimized design if you come from only a typical sequential programming background, as logic gates fundamentally operate at a bit-parallel level... Writing HDL code that runs in a simulator is vastly easier than writing code that you know will synthesize (compile into hardware) correctly.

Beyond the straight logic design portion of FPGAs, interfacing can be done without too much pain by using the provided embedded-processor soft-cores provided by the manufacturers (Micro-blaze for Xilinx, NIOS II for Altera). At that point it's just writing C code to interact with whatever design you've got going, plus serial or Ethernet communication with a host computer.

I would say starting with something like an Arduino or Rasberry Pi is a better start if you don't have a low-level HW background. I know Arduino is supposed to have its own IDE and programming language, which I've never used, but probably good for complete beginners to embedded systems. Any embedded platform typically can be written in C without the typical OS system calls, just use whatever IDE environment used for the embedded-proc. In the Rasberry Pi's case, since it's straight up running a Linux kernel and GNU userland, you can just write most any programming language (so long as you don't need a lot of RAM). Either way you're just writing a bunch of code to interact with typical I/O interfaces or GPIO pins to get stuff done.

desnudopenguino
06-27-2012, 09:00 PM
I have a slight understanding of logic gates from a discrete mathematics background, so i'll have to look into that a bit more. I've played around with PICs before, but fpga's sound like a whole other level. I'll have to get on a list for a pi board, or maybe pick up an arduino off the interwebs. Thanks for the input and advice!