Newbie Question: Where to do the programming? ESDC board? Or Desktop?

Newbie Question: Where to do the programming? ESDC board? Or Desktop?

Dear all,

 I'm a newbie to Bay Trial System. I'm been using ubuntu, and I have just successfully install ubuntu 14.04 on the ESDC board, just as a hello world to this ESDC board. And Ubuntu 14.04 seems working quite well, though the minimum system requirement for Ubuntu 14.04 is a 700MHZ CPU.

 And now I'm trying to get to know yocto, it seems to me that Yocto project is for building embedded OS which is a customized embedded Linux OS, And this embedded linux built by Yocto project may not include many redundant services for a regular desktop, so more computing power are available for our embedded application.

  But I don't know where should i do the development? It first comes to me that I will be developing (i.e, writing codes) on a desktop running Ubuntu 14.04, and then build the entire embedded linux OS by the Yocto, and then get the resulted image to the ESDC board so as to have my application running on the ESDC board. This seems quite not possible, as the build process of an image would take very long time

  On second thought, i think i will be developing (i.e, writing codes)  on the ESDC board having the Embedded Linux produced by Yocto installed.

  Could anyone please tell me WHERE SHOULD I DO THE CODING ? AND Whether using Yocto is a must ? Will i need to build the whole linux image every time i have modify the code of my application?

~Thanks you for your replies.

10 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.
Pluto's picture

Normally we don't write code on embedded devices for serious development, in spite of the hardware is far more capable than an old desktop built decade ago.  That's the whole spirit of embedded programming --- developing on desktop and crosscompile it to the target.

Yocto has a lot of feature to integrate other software and your codes to the finnal OS image.  There are good documents on their website:

http://www.yoctoproject.org/docs/1.4.2/ref-manual/ref-manual.html

http://www.yoctoproject.org/docs/1.4.2/dev-manual/dev-manual.html

However, I don't think yocto is obligated, you can use whatever distribution you like.  Maybe intel would be more happy if you use yocto.

Quote:

Pluto wrote:

Normally we don't write code on embedded devices for serious development, in spite of the hardware is far more capable than an old desktop built decade ago.  That's the whole spirit of embedded programming --- developing on desktop and crosscompile it to the target.

Yocto has a lot of feature to integrate other software and your codes to the finnal OS image.  There are good documents on their website:

http://www.yoctoproject.org/docs/1.4.2/ref-manual/ref-manual.html

http://www.yoctoproject.org/docs/1.4.2/dev-manual/dev-manual.html

However, I don't think yocto is obligated, you can use whatever distribution you like.  Maybe intel would be more happy if you use yocto.

Yes, after i have installed the yocto i have a more clear picture of how the development of this ESDC should go.

And I'm trying to add opencv into my yocto linux version, i have google some tutorial and i think i can tackle with the problems i have encountered ( and i did solve some problems), seems that the openembedded mailing list is a very good place to find some relative solutions.

However, I'm still new to cross-platform development, does the intel system studio provide a cross compiler, or just a gcc can do the similar things? Do you have some material, websites, that can give me a tutorial though cross-platform development?

Thanks Pluto for your replies~!

Quote:

Pluto wrote:

Normally we don't write code on embedded devices for serious development, in spite of the hardware is far more capable than an old desktop built decade ago.  That's the whole spirit of embedded programming --- developing on desktop and crosscompile it to the target.

Yocto has a lot of feature to integrate other software and your codes to the finnal OS image.  There are good documents on their website:

http://www.yoctoproject.org/docs/1.4.2/ref-manual/ref-manual.html

http://www.yoctoproject.org/docs/1.4.2/dev-manual/dev-manual.html

However, I don't think yocto is obligated, you can use whatever distribution you like.  Maybe intel would be more happy if you use yocto.

BTW, after I have compiled the source code on my HOST, how do i transfer the executable to the ESDC board? Would simply using a USB drive fine with that?

Hai Shen (Intel)'s picture

Please refer to the Intel System Studio training material on ESDC training resource portal @ https://software.intel.com/zh-cn/articles/EDSC2014-Training.

You can also refer to more detailed compiler component training @ https://software.intel.com/zh-cn/articles/intel-system-studio-training-materials-archive 

Quote:

Hai Shen (Intel) wrote:

Please refer to the Intel System Studio training material on ESDC training resource portal @ https://software.intel.com/zh-cn/articles/EDSC2014-Training.

You can also refer to more detailed compiler component training @ https://software.intel.com/zh-cn/articles/intel-system-studio-training-materials-archive 

 

Oh, thank you, I didn't realize that there are video in Chinese. the video about Intel System Studio in English is just a little bit hard to understand..

Downloading Intel System Studio now, haha ~

Still, seems that there are many things to learn..

Hi,

However, I'm still new to cross-platform development, does the intel system studio provide a cross compiler, or just a gcc can do the similar things? Do you have some material, websites, that can give me a tutorial though cross-platform development

Answer: Intel System Studio provides a cross compiler (Intel compiler -> icc), but our compiler is mainly for optimization (get better performance), and it depends on GCC toolchain. So, to use our compiler for Yocto, you should still be familiar with the Yocto development toolchain (Yocto GCC), and if you need better performance, you may try integrate ICC into it, you may read the training materials for details.

BTW, after I have compiled the source code on my HOST, how do i transfer the executable to the ESDC board? Would simply using a USB drive fine with that?

Answer: This is a question not related to tools, but I will explain it to you too. You can use any way to transfer the executable, using a USB, using a harddisk, using network, and so on. Any solution to copy files will work. :)

But, for embedded usage, usually, we will set up the network, and use SSH/SCP to copy files to target, and we may even login to target (from host) and test the executable easily. Using a USB drive may be complex for development.

Thanks,

Shenghong

 

Quote:

shenghong-geng (Intel) wrote:

Hi,

However, I'm still new to cross-platform development, does the intel system studio provide a cross compiler, or just a gcc can do the similar things? Do you have some material, websites, that can give me a tutorial though cross-platform development

Answer: Intel System Studio provides a cross compiler (Intel compiler -> icc), but our compiler is mainly for optimization (get better performance), and it depends on GCC toolchain. So, to use our compiler for Yocto, you should still be familiar with the Yocto development toolchain (Yocto GCC), and if you need better performance, you may try integrate ICC into it, you may read the training materials for details.

BTW, after I have compiled the source code on my HOST, how do i transfer the executable to the ESDC board? Would simply using a USB drive fine with that?

Answer: This is a question not related to tools, but I will explain it to you too. You can use any way to transfer the executable, using a USB, using a harddisk, using network, and so on. Any solution to copy files will work. :)

But, for embedded usage, usually, we will set up the network, and use SSH/SCP to copy files to target, and we may even login to target (from host) and test the executable easily. Using a USB drive may be complex for development.

Thanks,

Shenghong

 

Thanks Sheng hong.

I'm currently trying to get a helloworld using the ADT of yocto.

I have used 'bitbake core-image-sato' command to build a image (BTW the whole yocto build directory takes about 50GB, is it possible to make it smaller?), and then used 'bitbake adt-installer' to generate a adt installer tarball.

After i unzip the tarball, i have a adt configure file, in which the default target architecture is 'arm x86'.

However the ESDC board is in 64 bit architecture (I suppose?), so should i change the architecture from 'arm x86' to 'x86_64', and the other accordingly settings?

BTW, I'm following instructions in http://www.yoctoproject.org/docs/current/adt-manual/adt-manual.html here.

Hai Shen (Intel)'s picture

Please refer to the official Yocto installation guide and image provided by the contest committee @ http://nuedc.sjtu.edu.cn/CN/show.aspx?info_lb=11&info_id=82&flag=7 (Chinese)/ http://nuedc.sjtu.edu.cn/EN/show.aspx?info_lb=30&info_id=86&flag=26 (English). 

Quote:

Hai Shen (Intel) wrote:

Please refer to the official Yocto installation guide and image provided by the contest committee @ http://nuedc.sjtu.edu.cn/CN/show.aspx?info_lb=11&info_id=82&flag=7 (Chinese)/ http://nuedc.sjtu.edu.cn/EN/show.aspx?info_lb=30&info_id=86&flag=26 (English). 

Yes, of course i have read that page, and downloaded that so-called image from the website. There two reason i don't use that.

1. It does not contain the opencv library we need.

2. No ADT is provided together with this image.

So the only option is that we need to build the image by our own, and set up the cross compile environment also. Though i still didn't find a way to properly install ADT on desktop that does not build the linux image.

BTW, if you know Jessica Zhang in Intel, please deliver my thanks to her, her tutorial on the yoctoproject.org is agreat help. 

Login to leave a comment.