This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DM365 Tutorial/

I have the DM365EVM and read the OMAP/daVinci for Dummies book and a problem. I'm used to program for 8051, DSP and Altera, but never for ARM and Linux, what makes me completely lost.

What I need at this moment is something like a tutorial on how to make a simple program (like blink a led), compile, download and execute it (after this point I think I can handle myself). The book didn't help me on this point, and I couldn't find any tutorial on the internet. Any help would be great for me and maybe for the future dummies.

Thanks in advance!

  • Luiz,

    The OMAP/DaVinci For Dummies book was meant to give a top level general overview so I can understand the need for more hands on toturials.  The Getting Started Guide (http://tiexpressdsp.com/index.php/DM365_Getting_Started_Guide) will give you more hands on experience and will take you through the process of touching most major software components during the DVSDK installation process ( http://tiexpressdsp.com/index.php/GSG:_DM365_DVEVM_Software_Setup ); part of this process also includes writing a simple hello.c program and running it on DM365.  After you finish going thru the Getting Started Guide, we would be happy to help answer anything that may still not be too clear.

  • Thanks Gonzales!

    I'll read these links and report my tour!

  •  

    Gonzales,

    I read the GSG and could perfectly run the printf program. "One small step for a man, one giant leap for our project". I couldn't make the NFS work, only using cross cable Ethernet and following yours well-written 64xx NFS tutorial. Now I must advance with your help with some questions:

    1. Must I use the CCS to build the code examples that come with the EVM? 
    2. Is there any way to run the EVM on the local flash, and download the compiled programs using any serial connection (ethusb, serial, etc)? 
    3. I need to understand the Linux environment and every part of it, like boot, drivers, process management, etc. Could you recommend any literature for a "8051 and DSP low-level firmware programmer" to understand the high-level Linux programming?

    Thanks in advance!

     

  • Luiz Gustavo Berro said:

    I couldn't make the NFS work, only using cross cable Ethernet and following yours well-written 64xx NFS tutorial. Now I must advance with your help with some questions:

    1. Must I use the CCS to build the code examples that come with the EVM? 
    2. Is there any way to run the EVM on the local flash, and download the compiled programs using any serial connection (ethusb, serial, etc)? 
    3. I need to understand the Linux environment and every part of it, like boot, drivers, process management, etc. Could you recommend any literature for a "8051 and DSP low-level firmware programmer" to understand the high-level Linux programming?  

    With regards to NFS, the instructions in GSG assume you have your EVM on a router running a dhcp server; if this is not the case, then we can explore alternatives such as using static IPs.  a log of your boot process along with your u-boot environment may help.

    1. The DVSDK software assume your development environment will be a Linux host, and the GSG has steps for building the demos (as part of dvsdk tree build) that come with dvsdk.  Therefore, I would suggest you do not need CCS.  Which examples in specific are you trying to build?

    2.  you can download software via eth (tftp for u-boot and uImage; and NFS for filesystem) and store it in flash for running EVM stand-alone.  We will likely come out with a utility which lets you flash software via serial port as well in the near future.

    3. Well, Linux is quite large so I will give you a quick overview:  At a very top level, you can think of the software stack as having three major pieces, boot-loader, Linux Kernel (uImage), and file-system.  When you boot the board, the RBL built into the silicon looks for the bootloader (where it looks for it depends on boot mode), u-boot is an open source boot loader very common in Linux systems although is not particular to Linux; however, it is the bootloader we provide for our ARM devices.  You can specify u-boot variables that tell u-boot where to find kernel and file system (e.g. flash, tftp, nfs...), when u-boot starts running, it loads the Linux Kernel and passes arguments to the Linux kernel so it knows how to load the file system.  When kernel finishes loading, it loads the file-system and you get your log-in prompt.   So now you have a full fledge OS on top of which you can develop/run application code; this Linux OS has standardized APIs for the most common peripherals (V4L2 for video, ALSA for audio, ...); if you go to the linux kernel source tree (e.g. lsp/ti-davinci) you will see a 'documentation' folder which has documentation on some of the standardized Linux APIs as well as some coding examples (lots of content in this documentation folder).  In addition, you can find lost of documentation online on standardized Linux APIs.  This is a quick intro, I cannot think of any good books that covers all the details from the bottom (u-boot) all the way to top application layers, but there are lots great books that cover pieces.  For a general overview, what I would recommend is perhaps some of the free material available at http://free-electrons.com/docs/

     

  •  

    1. I made NFS using static IP with an ethernet cross cable between my Fedora host and the EVM365 (like your application note), and everything went fine. I failed to run dhcp with my D-Link DI-524 router, the EVM loops forever waiting for IP and RPC (I will attach the log soon). I tried to build the leds demo, but I see that I must rebuild the kernel to compile it on the next step. Rebuilding the kernel sounded too advanced for me, that is why I stopped at this point.
    2. When I run NFS I understood that the entire filesystem is based on the host, right? How can I copy an executable from the host to the local flash using NFS? Should I use TFTP instead?
    3. As you can see above, my knowledge about Linux is something bellow beginner. I got from your answer that Linux first boots, that loads the kernel and finally the filesystem. So, the boot-loader dies when it ends loading the kernel, and from this point the kernel does everything (it's the kernel!), like loading the drivers and configuring ethernet (those lines popping on the terminal before the login prompt?). So, if I study the Linux kernel deeply will I have a solid knowledge to develop applications for DM365 embedded Linux? Do you think O'Reilly books about kernel are good for it? The link you posted looked very interesting and I will explore it deeply.

     

  • Luiz, it's very important that you follow each step in the guide.  This includes extracting the tools and kernel source, rebuilding the kernel, and compiling the examples.  Reading books about Linux can help you understand the general concepts.  But books can't speak to the individual differences between platforms.  I've had good luck using an NFS mounted file system and TFTPing the kernel from my SUSE linux development box.  Once I get my application developed or well under way I will start thinking about putting the file system in flash.  The provided file system (as downloaded and extracted onto the computer) is very large.  There are probably lots of things that need to be removed to get it down to size.