Search ARMWorks Answers

Sunday, September 16, 2012

Note: Wingston, mentioned in earlier postings, has become so successful that he has pulled his blog.

Developing for Linux on FriendlyARM boards.

A typical development setup has a Mini/Micro/Tiny of your choice with power supply and cables from the SDK accessory kit. Your Mini is connected to a Linux PC by the serial cable (often to a USB to serial converter) and an Ethernet cable. If you have an Ethernet hub, use a regular Cat5 cable from Mini to hub. If not, use the crossover cable from the kit and connect to your PC. The hub is more convenient so that you can use the Internet at the same time without jumping through hoops. The USB cable is used in a few special situations.
A great way to do fast development with the least hassle, is with NFS. NFS, or Network File System, allows part of your PC hard drive to be mounded by the Mini over Ethernet. When you change a script or configuration file or compile something on a shared directory, it is seen by the Mini as being on its own hard drive. There is no burning of NAND or transferring SD cards.
Your PC will need your favorite Linux - FriendlyARM uses Fedora in some of the user manuals, a lot of people use Ubuntu, and some prefer the more Spartan Debian. Debian has the advantage that anything in the repository is available for both x86 and ARM. The pending release of a Debian customized for Mini210 makes this appealing. You will need the "tools", the GNU compilers and linker, GDB for debugging, and and perhaps an IDE like Eclipse. Old school Linux users might scorn the IDE, but most of us relative noobs can make good use of it. Single stepping through lines of code or by machine instructions is simple with a proper setup of Eclipse. If you are new to this and wonder what all thjose special directories are for in Linux, here is a very handy reference.
Your first step if you don't have Linux, is choosing the "Distro" or distribution you want to use. Will you put it on a PC or laptop of it's own? Or set up dual boot with Windows? Or maybe use VirtualBox or VMWare to install a virtual machine? Check the forum at www.friendlyarm.net to see what people are doing and what systems are working best. A favorite around here is a bare bones quad core AMD at 3GHz+ with 4 or 8 GBytes of RAM. We watch for really good sale prices on bare bones and 20" displays at places like Tiger Direct or NewEgg. If you luck out, you can get dual monitors (with stand) and a great box for less than $500. You hardly need this if you have time to wait for long compiles. After all the Mini210S itself is more powerfull than a great PC of 10 years ago.
Can you develop for the Mini210/S directly on the Mini210/S? Yes you can. The Mini210S can run Debian Squeeze, the current Debian for desktops, and that means anything else in the Debian repository. A new release with drivers for I/O on the Mini/Tiny210 systems will be ready soon. There is plenty of RAM on the Mini210S and we like to run Debian from a uSD card so we have up to 32 GBytes of flash. 36 if you count the 4 GBytes on board. If you choose this method, spend the extra for a Class 10 SD. They write much faster. A very simple and powerful way to develop directly on your card is with Python. Once Debian is loaded, add USB mouse and keyboard, connected to the Internet, and just
 
You can even use the HDMI on one of the 210's with a large display or use a 7" 5" or 4.3" LCD. See if IDLE or Eric will load for a Python IDE.