Bu videoyu paylaşayım dedim. Biraz uzun ama, oldukça faydalı olduğunu düşünüyorum. BeagleBone'a SSH ile erişip, içinde sanki normal bilgisayarda yazıyormuş gibi Eclipse ile C++ kodu yazıp derlemeyi, çalıştırmayı ve hata ayıklamayı gösteriyor.
Beaglebone: C/C++ Programming Introduction for ARM Embedded Linux Development using Eclipse CDT (http://www.youtube.com/watch?v=vFv_-ykLppo#ws)
Adam yeni bir vido yayınlamış yine C/C++ üzerinden GPIO programlamayı anlatıyor.
İlk videodan mükemmel istifade ettim bu arada. İnşaallah bir seri olarak devamı gelir diyelim...
http://youtu.be/SaIpz00lE84 (http://youtu.be/SaIpz00lE84)
Derek Molloy'un (Adam) diğer dersleri ve güncel videoları için;
http://www.youtube.com/profile?user=DerekMolloyDCU (http://www.youtube.com/profile?user=DerekMolloyDCU)
http://elm.eeng.dcu.ie/~molloyd/teaching.html (http://elm.eeng.dcu.ie/~molloyd/teaching.html)
Edit : Bu arada Derek 2. video da C/C++ yazılım yapabilmek için Eclipse kuruyor. Ancak bunu yaparken BeagleBone üzerine "slave" işletim sistemi olarak ubuntu kurduğundan bahsediyor. bunun angstrom kurma/güncelleme mantığı ile aynı mantıkla yapıldığından bahsedip geciyor; buraya kadar tamam ama... Ubuntu'yu nasıl slave olarak angstrom'un yanına ekleyebileceğim konusunda bir fikri olan var mı?
tesekkurler...
http://elinux.org/BeagleBoardUbuntu (http://elinux.org/BeagleBoardUbuntu)
bu adreste beagleBone üzerinde Ubuntu kurulumu için ayrıntılı bilgi buldum ama hala ubuntunun nasıl "slave" kurulacağı konusunda aydınlanamadım.
tesekkurler...
slave olarak kurmak ne demek? Sanal makine üzerine kurmak mı? BeagleBone üzerine sanal makine kurup onun üzerinde ikinci bir işletim sistemi çalıştırmayı neden isteyelim ki?
sizin paylaştığınız videonun (2. video c/c++ introduction ) tam 03:00 dakikasında bahsediyor ama bende malesef anlamadım tam olarak...
ben pek olayın farkında değişim ama eclipsede program derlemek cloud9 üzerinde derlemekten daha mantıklı gözüktü bana...
Arkadaşlar bu videodaki ayarlar ile eclipse üzerinde beaglebone için helloworld projesini derleyen oldu mu? Kaç saat oldu bilmiyorum "arm-linux-gnueabi-g++: not found" hatasından kurtulamadım. defalarca kaldırıp yükledim... yok... :'(
http://packages.ubuntu.com/search?keywords=g%2B%2B-arm-linux-gnueabi (http://packages.ubuntu.com/search?keywords=g%2B%2B-arm-linux-gnueabi)
şu komutu bir denermisin
sudo apt-get install g++-arm-linux-gnueabi
hocam denedim
sudo apt-get install gcc-arm-linux-gnueabi şeklinde (c için olan sanırım) olanı da yükledim. maalesef olmadı.
CodeSourcery ninkiyi denediniz mi hiç?
Yok hocam denemedim. Farkı nedir? CodeSourcery ücretli sanırım. Lite edition mı kullanıyorsunuz?
Alıntı yapılan: fryrmnd - 19 Kasım 2012, 00:05:01
A"arm-linux-gnueabi-g++: not found" hatasından kurtulamadım.
Belki derleyici ortam değişkenlerine eklenmemiş olabilir.
$ echo $PATH
Kontrol etmek için bu komutu kullanabilirsiniz. Eğer yoksa eklemek için ev dizinindeki .bashrc dosyasını açın
$ nano ~/.bashrc
ve şunun gibi bir ifade ekleyin.
PATH=$PATH:/usr/hitech/picc/9.83/bin
export PATH
Tabi burada :/'den sonra derleyicinin olduğu dizini yazmalısınız.
Daha sonra test etmek için oturumu açıp kapatın. Konsolu açın ve konsoldan programı çalıştırdığınızda
$ arm-linux-gnueabi-g++
vs. programın çalıştığını görmeniz gerekiyor.
Konsolda zaten arm yazıp tab-tab yapınca birşeylerin çıkması gerekiyor. Çıkmazsa derleyici PATH'e eklenmemiş demektir. Elbette, derleyicinin yüklendiği yerin tam adresini yazarak PATH'e ekleme yapmadan da derleme işlemi yapılabilir.
CodeSourcery'nin derleyicisi Sourcery G++ oldukça meşhur bir derleyicidir. Aslında bunların hepsi GCC'den türetilmiş de olsa, hassas ayarları yaparak sıfırdan derleyici derlemek zahmetli bir iş olduğundan hazır kullanım daha rahat ve emin olacaktır. Pek de uzak olmayan bir zamanda, CodeSourcery, Mentor Graphics tarafından satın alındı. Derleyicinin de ismi değişti, Sourcery CodeBench oldu.
"Ben kendi derleyicimi derlemek istiyorum." dersen, bu işi bir derece otomatikleştirerek kolaylaştıran crosstool-ng'yi deneyebilirsin.
g++ olan kisim c++ icindir notunu duseyim. Dediginiz gibi gcc isinizi gorecektir.
Alıntı yapılan: fryrmnd - 19 Kasım 2012, 17:56:39
Yok hocam denemedim. Farkı nedir? CodeSourcery ücretli sanırım. Lite edition mı kullanıyorsunuz?
Evet hocam lite edition u kullanıyorum. Mesela aşagıda qt ile kullanımını anlattım. İsterseniz inceleyebilirsiniz.
http://www.yusufyamak.com/beaglebone-ve-qt/ (http://www.yusufyamak.com/beaglebone-ve-qt/)
Erdem hocam yazdıklarınızdan kaynaklandığını düşünüyordum. Ama nasıl ayarlanacağını net bilmiyorum. Path kısmına derleyicinin executable ı mıdır. nereyi gösterceğimi tam bilemiyorum. bu da komutun çıktısı
echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Tagli hocam arm yazıp tab layınca çıkanlar.
arm2hpdl arm-linux-gnueabi-ld
arm-linux-gnueabi-addr2line arm-linux-gnueabi-ld.bfd
arm-linux-gnueabi-ar arm-linux-gnueabi-ld.gold
arm-linux-gnueabi-as arm-linux-gnueabi-nm
arm-linux-gnueabi-c++filt arm-linux-gnueabi-objcopy
arm-linux-gnueabi-cpp-4.4 arm-linux-gnueabi-objdump
arm-linux-gnueabi-elfedit arm-linux-gnueabi-ranlib
arm-linux-gnueabi-g++-4.4 arm-linux-gnueabi-readelf
arm-linux-gnueabi-gcc-4.4 arm-linux-gnueabi-size
arm-linux-gnueabi-gcov-4.4 arm-linux-gnueabi-strings
arm-linux-gnueabi-gprof arm-linux-gnueabi-strip
acaba bu şekilde path a eklinmiş mi.
Hocam kendi derleyicimi derliyecek kadar bilgi yok maalesef.
Seçkin hocam videodaki anlatan kişi c++ projesi oluşturmuş bende aynı onun yüklediği compilerları yüklemiştim. Yani C++ bildiğimizden değil.
Yamak hocam sağolasın. Şimdi eclipse den qt ye felan iyici karıştırıyorum. Aslında basit bir ide gibi gözüküyor ama burdan devam etmem lazım diye düşünüyorum.
Alıntı yapılan: fryrmnd - 19 Kasım 2012, 22:14:36
bu da komutun çıktısı
echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Anladığım kadarıyla eklenmemiş. Eklemek için basitçe yapmanız gereken ev dizininde .bashrc isimli bir dosyaya bu bilgileri yazmak.
$ nano ~/.bashrc
şeklinde. Burada nano sadece basit bir editör. Başka bir editör de kullanabilirsiniz. En baştaki ~/ ifadesi hangi dizinde olursanız olun ev dizinine gitmek için. Yoksa
$ nano /home/kullanıciadi/.bashrc
şeklinde de yazabilirsiniz. Bu dosyanın ismi bazen .bash_profile'da olabiliyor. Hangisi varsa ona ekleyebilirsiniz.
PATH=$PATH:/bu/kisma/derleyicinin/oldugu/dizin/gelecek
export PATH
Bakalım ben de en azından sizin kurduğunuz programı bir deneyeyim. Anladığım kadarıyla derleme işlemi Ubuntu üzerinde yapıp ARM için kod üretiyorlar.
Ama denedim.
$ sudo apt-get install g++-arm-linux-gnueabi
şeklinde kurdum daha sonra şu komutla sürümünü öğrendim.
$ arm-linux-gnueabi-g++ -v
Yerleşik özellikler kullanılıyor.
COLLECT_GCC=arm-linux-gnueabi-g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabi/4.6/lto-wrapper
Hedef: arm-linux-gnueabi
../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.6.3-1ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/arm-linux-gnueabi/include/c++/4.6.3 --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --enable-multilib --disable-sjlj-exceptions --with-arch=armv7-a --with-float=softfp --with-fpu=vfpv3-d16 --with-mode=thumb --disable-werror --enable-checking=release --build=i686-linux-gnu --host=i686-linux-gnu --target=arm-linux-gnueabi --program-prefix=arm-linux-gnueabi- --includedir=/usr/arm-linux-gnueabi/include --with-headers=/usr/arm-linux-gnueabi/include --with-libs=/usr/arm-linux-gnueabi/lib
seçenekleriyle yapılandırıldı.
Evre modeli: posix
gcc sürümü 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
Hiç ortam değişkeni olarak eklemeye gerek kalmadan çalıştı.
arm yazıp tab-tab yapınca bir şeyler çıktığına göre sorun PATH ile ilgili değil bence.
Yalnız dikkatimi şu çekti:
Alıntı Yaparm-linux-gnueabi-g++-4.4
Burada komutun sonunda versiyon numarası da var. Bunu daha önce görmemiştim. Bazı durumlarda bu şekilde bir kullanım olabilir ama genelde programın normal adı ile de bir link yapılıp bağlanır.
Derleme komutunu girerken sonuna "-4.4" kısmını da eklemek veya arm-linux-gnueabi-g++ adında bir sembolik link oluşturup arm-linux-gnueabi-g++-4.4 dosyasına bağlamak denenebilir.
Eyvallah hocam. sudo apt-get install g++-arm-linux-gnueabi
ile derleyiciyi yükleyince sanırım son sürümü(4.6) yüklüyor. Ya sürüm farkından yada Tagli hocam dediğiniz gibi sonuna versiyon numarasını ekleyince(arm-linux-gnueabi-g++-4.6) çalıştı . sanırım 4.4'te de çalışır. Çok vakit kaybettim.
Tekrardan teşekkürler herkese.
Ben bir 15 dakika seyrettim ama çok sıkıldım :-\
Şimdi mesajları okuyunca da bazı arkadaşlar sormuş ikincil slave olarak farklı bir işletim sistemi mi kurmuş diye. Hayır arkadaşlar sadece beaglebone üzerine ubuntu kurmuş. Ama bunu yapmak için ubuntu kurmaya gerek olmadığını armstrong kurulu iken de aynı şeyleri yapabileceğinizi söylemiş.
Ama bilgisayarında virtualbox kurulu. Virtualbox şu demek. Örneğin ben daha önce ubuntu üzerine mac osx snow leopard kurmuştum. Yani birden fazla işletim sistemini bir bilgisayarda çalıştırmaya yarıyor. Bu işlemleri yapmak için virtualbox kurmanıza da gerek yok. Adamın canı istemiş kurmuş.
Yaptığı ssh ile beaglebone'a bağlanıp ARM için kod üretmek. Ama uzattıkça uzatmış. Aslında bir ara belki bunun Emacs ya da Vim ile mini sürümünü yazabiliriz.
Hocam benim gibi hiç linux bilmeyenler için tek başına işe yaradığını bildiğiniz bir kaynak olması açısından uygun gibi geliyor. Nette cross compile il ilgili bolca özet sayılabilcek kaynak var ama bazen bilmeyen için işleri daha da karmaşıklaştırıyor gibi.
Biraz da böyle Emacs kullananlar benim gibi tembel oluyor galiba. Alışmışız tek tuşla program derlemeye.
Ben olsam bir make dosyası oluştururdum. Klasik make ;)
Ama elektronik konusunda çok iyi olduğu zaten belli oluyor. O videoların bir tanesinde OpenGL kullanarak çarklı bir uygulama yapmış. Ufak deneme kartını hareket ettirince ivme ölçer sayesinde çarkların konumu da değişiyor.
2 gündür kafa atıyorum beaglebone'a
debian yükleyeyim derken hafıza kartını görmeyen ubuntu wubi ile kurulmasına rağmen hdd tablosunu sildi. Sonuç, tonla boşa giden zaman + veri
Eğer debian'ı yükleyebilirsem veya en azından lxde o zaman ortaya birşeyler çıkabilecek.