ARM based linux idea please

Discussion in 'Embedded Systems and Microcontrollers' started by riad_00, Feb 10, 2011.

  1. riad_00

    Thread Starter Member

    Feb 9, 2008
    19
    0
    Hi everyone,

    I want to start learing embedded linux with C/C++ compiler. ARM based would be preffered. Just wondering if any one can suggest a developement board; not too expensive and it should have UART, Ethernet, USB, somesort of screen (probably lcd), ADC, DAC etc.

    Thanks in advance,
     
  2. aegistalons

    Member

    Feb 12, 2011
    32
    2
    I personally have a TS-7500 that I like for my development. It does not have an LCD unfortunately. I know the BeagleBoard has support for displays if that is critical for your application. Obviously there is a difference in cost. If you want the LCD simply for debugging and doing code, then I would take it out of your requirement list and look for a headless unit that you can telnet or ssh into. I have my TS-7500 setup so that I plug in the USB for power and an ethernet cable and then I can ssh into it from my computer. Let us know if that is helpful at all.
     
  3. riad_00

    Thread Starter Member

    Feb 9, 2008
    19
    0
    Thanks aegistalons. The BeagleBoard looks real possibility as I can buy it from Farnell with 117 pounds. TS-7500 has to be shipped from the US. As I am a complete beginner with Linux, just wondering if you could give me some web links if you know where I can start before I get the board.

    Thanks a lot again.
     
  4. aegistalons

    Member

    Feb 12, 2011
    32
    2
    So here is the question, what do you want to accomplish with an embedded Linux device? Do you want to develop a tablet like device or something similar?

    If you want to learn Linux, I would say play with it. So I would recommend that you install either Ubuntu, PuppyLinux, or maybe Fedora. I use Ubuntu on a regular basis and is pretty user friendly and newbie friendly also. They have a Windows Installer, called WUBI, that allows you to install Ubuntu from your Windows OS as a separate OS. You will have to dual boot.

    If you don't like the idea of dual boot, you can either run Ubuntu Live either from a CD or USB (go USB it is faster). This will create a Linux environment on your USB drive and allow you to play with Linux without install it directly to your hard drive.

    Additionally, you can run a VM of Linux. I personally go that route because I have a lot of software that I run in Windows (Solidworks, Adobe, games) and when I need Linux, I don't want to restart and boot into it. I use VMWare Workstation (which costs money). Check out: https://help.ubuntu.com/community/VirtualMachines

    I would recommend download and install VirtualBox, and then install Ubuntu VM. That way you can stay in Windows (or OSX) while still playing around with Ubuntu.

    As for learning more about Linux, I would recommend hitting up the Ubuntu Forums (http://ubuntuforums.org/) as that has a lot of helpful info. Get your feet wet with basic Linux and get used to it, especially ssh and command line. Afterwards, you can get more in depth about specific nitty gritty about embedded Linux.

    Hope that helps.
     
  5. be80be

    Senior Member

    Jul 5, 2008
    431
    57
  6. riad_00

    Thread Starter Member

    Feb 9, 2008
    19
    0
    I want to create embedded application. For example, I can create an audio application that encodes and decodes from mic input in G722/mp3 etc etc format with network/USB/serial connectivity for controlling purpose. Or I can create a stand alone device for video application.

    Thanks for the advices. I just have made a ISO image of Ubuntu Desktop Edition. Would it be helpful? I can't wait to install it.
     
  7. aegistalons

    Member

    Feb 12, 2011
    32
    2
    The desktop version of ubuntu is good as it allows you to ease into the command line. Just keep in mind how you want to install it for you own sake. Do you want to dual boot into Linux or do you want to have a virtual machine of linux running in windows for ease of jumping between the two. These questions dictate how you are going to install Linux and how you access it on your computer. Like I said, I use a VM of Linux to work on because it is easier to jump back and forth between windows and Linux without having to restart the computer each time.
     
  8. riad_00

    Thread Starter Member

    Feb 9, 2008
    19
    0
    I managed to install VirtualBox and then Ubuntu in it. I didn't have chance to to play with it yet. It looks like any other operating system. Can't wait to get started - even thouh I don't have much idea from where!
     
  9. blueroomelectronics

    AAC Fanatic!

    Jul 22, 2007
    1,758
    98
    Try to program a proof of concept for the application you described in post #6.
     
    riad_00 likes this.
  10. aegistalons

    Member

    Feb 12, 2011
    32
    2
    I'm not quite sure what your programming experience is. If you know what you are doing, write something and compile it using gcc. But if you don't know what exactly what you are doing, I would recommend that you open up a terminal (typically found somewhere in the menu bar or press CTRL + ALT + T). I would then recommend you get acquainted with command line. Here is a good source for a lot of common commands: http://www.pixelbeat.org/cmdline.html . Start with basics, like 'cd' (change directory) command and 'ls' (list files and directories).

    Then move on to say updating your system. "sudo apt-get update" and then after that finishes "sudo apt-get upgrade". "sudo" is Substitute User DO, which in this case, you are substituting root for you. If you don't do that, you run in the permission issues. "apt-get" is a program that manages repositories and programs. You are telling it update the list and then to upgrade any software that is newer.

    I also agree with blueroomelectronics. If you want to get into programming, I would recommend that you start prototyping your stuff. See how much you can on there before you need to buy an embedded system. I personally like to either work in gedit and compile using the terminal and gcc, or using an IDE like Eclipse with the C/C++ plugin.

    If you find these posts helpful, hit up the thanks button. Let us know how it goes.
     
    riad_00 likes this.
  11. riad_00

    Thread Starter Member

    Feb 9, 2008
    19
    0
    I didn't realise that thanks button exists. Definetly these posts have been helpful.

    I have installed build-essential and compiled my first hellow.cpp using Terminal. For programming experience - I know C, C++ and C#(which is no good here). I am an electronics engineer by trade (not very experienced yet), but I don't have to do programming at work. I find programming and embedded system quite interesting. I have done a 6 months C/C++ course last year and tought myself C#. These are my programming experience - not experienced by any means.

    I am getting used to with Ubuntu at the moment - it's quit different than Windows. I think it will be better for me if I can start with a small project - like a socket programming or serial communication (I have done that in C#).

    I will be asking lots of questions at the same time as well.

    Thanks for all the helps.
     
  12. aegistalons

    Member

    Feb 12, 2011
    32
    2
    As an interesting side note about Linux for beginners, I would recommend taking a look at Lifehacker's Night School series. They are currently talking about Linux. The first issue of it came out just recently and there will most likely be a series of them.

    This one (http://lifehacker.com/#!5772574/getting-started-with-linux-why-install-linux) deals with why you should install Linux. The one coming up after it is going to talk about which distro to pick. The future ones will most likely talk about cool stuff you can do in Linux. Just another thing to add to get you more hands on with the whole Linux experience.
     
    riad_00 likes this.
Loading...