STM32F4 Discovery ve Ubuntu Bölüm-1 | muuzoo.gen.tr
Evet bayadır elimde bulunan STM32F4 Discovery kartı ile nihayet uğraşmaya başlayabildim. Piyasada bulabileceğiniz çoğu deney kartı gibi Win sistemlerde pek bir sorun yok. Kolayca kurulum yapıp çalışmaya başlayabiliyorsunuz. Gelgelelim söz konusu linux olunca çoğu firma görmedik duymadık bilmiyoruz havasında olduğu için mecburen kendi göbeğimizi kendimiz kesiyoruz. Linux camiasının güzelliği işte pek çok seçeneğe sahip olmak:)
Sizleri baştan uyarıyorum uzun bir yazı olacak. O yüzden yeteri miktarda çay kahve su tedarik ediyoruz, güzel bir müzik albümünü de çalma listemize ekleyip kuruluma başlıyoruz. Kurulum yaptığım işletim sistemi Ubuntu 12.04 x64.
NOT: Bu yazı hazırlanırken yararlanılan kaynaklar şunlardır:
Kuruluma başlamadan önce ilk olarak bilgisayarımıza gerekli dosyaları indiriyoruz. Bize ilk lazım olan şey arm ortamı için gerekli olan kütüphaneleri ve derleyicileri içeren çalışma ortamı. Yabancılar genelde bu ortamı “arm-tool-chain” olarak isimlendiriyor. Bu dosyaları kendiniz oluşturabileceğiniz gibi internet üzerinden hazır oluşturulmuş olan sürümleri de indirebilirsiniz. Bu çalışmada ilk önce kolaylık olması açısından hazır bir çalışma ortamı kullanılacaktır. Kullandığımız çalışma ortamı Mentor tarafından sağlanan Sourcery Codebench. Bu dosyaların ücretsiz sürümünü BURADAN indirebilirsiniz.Tek sıkıntı üyelik gerektirmesi. Üye olduktan sonra indirme isteğinde bulunduğunuzda dosya bağlantısı e-posta adresinize gönderiliyor bu sayede gerekli indirme bağlantısına ulaşabiliyorsunuz. Bu yazı yayınlandığı sırada en güncel sürüm Sourcery Codebench Lite 2011.09-69 idi. Ya da ben uğraşamam üyelikle falan diyorsanız belirtilen sürümü BURADAN indirebilirsiniz.
Dosyayı indirdikten sonra sıra geldi kurulum yapmaya. Kurulum yaptığımız dizin /opt dizini. Bu tarz dosyalarımı bir alışkanlık olarak buraya kuruyorum. Ama siz istediğiniz başka bir dizin için de uygulayabilirsiniz. Kuruluma başlamadan önce root kullanıcısına geçiş yapmanız gerekiyor.
tar xvf /dosya_dizini/arm-2011.09-69-arm-none-eabi-i686-pc-linux-gnu.tar.bz2
echo PATH=\"$PATH:/opt/CodeSourcery/arm-2011.09/bin\" >> /etc/environment
NOT: taz xvf /dosya_dizini/ kısmına biraz önce indirdiğini dosyanın tam adresini yazınız. Örneğin kullanıcı adınız "zzz" olsun ve dosya "İndirilenler" klasöründe bulunsun. O halde adresimiz /home/zzz/İndirilenler/arm-2011.09-69-arm-none-eabi-i686-pc-linux-gnu.tar.bz2 olacaktır.
2-Eclipse Kurulumu ve Gerekli Eklentilerin Yüklenmesi
Dosyaları indirdikten sonra sıra geldi yazılım geliştirme ortamımızı Eclipse ile birlikte kullanabileceğimiz hale getirmeye. Bu kurulumda Eclipse yazılımının temel sürümü kullanılmış ve tüm anlatım onun üzerinden yapılmıştır. Eğer eclipse kurulu değilse basitçe :”sudo apt-get install eclipse” diyerek ubuntu altında Eclipse paketlerinin yüklenmesini sağlayabilirsiniz. Bu komuttan sonra Eclipse yazılımının temel sürümü kurulmuş olacaktır. Fakat bize gereken Eclipse CDT (C/C++ Development) sürümüdür. İlk önce bu eklentiyi kurmakla işe başlıyoruz.
Help > Install New Sowtware
Work with satırına: http://download.eclipse.org/tools/cdt/releases/indigo yazıyoruz.
CDT Main Features başlığından “C/C++ Development Tools” seçeneğini ve CDT Optional Features başlığından C/C++ GDB Hardware Debugging başlığını seçiyoruz.
İşlemleri sırasıyla takip edip kurulumu bitiriyoruz.
Bağlantı hızınıza göre kurulum süresi değişken olacaktır. Ortalama 10 dk civarlarında tamamlanır diye tahmin ediyorum. Kurulum bittikten sonra bir uyarı ekranı çıkacak ve güncellemenin tamamlanması için yazılımı yeniden başlatmanız gerektiğini söyleyecektir. “Restart Now” diyerek kurulum işleminin tamamlanması için gerekli son adımı da atıyoruz. Sıra geldi Eclipse için arm eklentimizi kurmaya. Bu eklenti sayesinde bir önceki adımda indirdiğimiz Sourcery Codebench Lite dosyalarını Eclipse altından kullanabileceğiz. Kurulum adımlarına geçelim:
Work with satırına: http://gnuarmeclipse.sourceforge.net/updates adresini ekliyoruz.
CDT GNU Cross Development Tools başlığını seçiyoruz ve Next tuşuna basıyoruz.
Birkaç Next tuundan sonra Finish diyerek kurulumu bitiri
Burda da bağlantı hızınıza göre kurulum bir kaç dakika sürecektir. Kurulum sırasında Bir “Securtiy Warning” penceresi açılacaktır. Buraya “OK” diyerek devam ediyoruz. Kurulum tamamlandıktan sonra programı tekrar başlatmanızı isteyecek bir ekran çıkacak. Buraya da “Restart Now” diyerek devam ediyoruz.
3-ST-Link ve Diğer Gerekli Yazılımların Yüklenmesi
Sıra geldi kurulumuzun 3. adımına. Bu adımda kartımıza program atmak için gerekli ara program olan St-Link programının kurulumunu yapacağız. Bu program sayesinde kartımıza program atabilir , kartımızda bulunan hafıza içeriğini tekrar bilgisayarımıza kopyalayabiliriz. İlk olarak kendimize bir çalışma klasörü oluşturuyoruz. Ve derleme öncesi gerekli ek dosyaları yüklüyoruz. Bu yükleme için sisteminizde git istemcisinin kurulu olması gerekiyor.
sudo apt-get install libsgutils2-dev libusb-1.0-0-dev autoconf libtool
02.07.2012 – Güncelleme : @Tagli uyardı ST-Link kurulumunda değişiklik gerçekleşmiş. O yüzden önce bir “README” dosyasına göz atmakta fayda var. Eski kodları iptal edip yenilerini ekledim.
28.08.2012 – Güncelleme : ST-Link kurulumunda yine değişiklikler olmuş. “libtool” paketi kurulması gerekiyor, derlenen dosyalar ana stlink klasöründe oluşturuluyor. İlgili yerler güncellendi.
Derleme işlemi bittikten sonra dosyaları kopyalayıp düzenliyoruz. Tüm bu işlemler için root olmanız gerektiğini unutmayın.
cp /home/user/src/stlink/st-flash ./st-flash
cp /home/user/src/stlink/st-util st-util
echo PATH=\"$PATH:/opt/stlink\" >> /etc/environment
Şimdi de USB erişim ayarlarımızı düzenleyelim. Bu sayede kartımızı bilgisayarımıza bağladığımızda /dev/ dizini altında bir aygıtımız olacak.
cp /home/user/src/stlink/49-stlinkv*.rules /etc/udev/rules.d
Evet stlink araçlarının kurulum işlemi tamamladı. İsterseniz bir kontrol edelim. Kurulum işlemi bittikten sonra root kullanıcısından çıkabiliriz. Kart içinde yüklü bulunan içeriği olduğu gibi bilgisayarımıza kopyalayalım.
Bu komutu verdiğimizde kartın içeriğinde bulunan yazılım kullanıcı dizinimize kopyalanıyor. Eğer st-flash komutu bulunamazsa ya bilgisayarınız yeniden başlatın ya da bu seferlik “source /etc/environment” komutunu verin ve tekrar deneyin. Şimdi de kopyaladığımız içeriği tekrar karta yazalım. Fakat başta uyarayım bu işlem bir kaç dakika sürebilir. Bu işlem de tamamlandığında ST-Link programının sorunsuzca çalıştığına emin olabiliriz.
st-flash write ~/STM32F4-Discovery.bin 0x8000000
Evet buraya kadar neler yaptığımızı özetleyelim. Arm derlemesi için gerekli dosyaları indirdik. Eclipse programımızı ve CDT eklentisini kurduk. İndirdiğimiz arm dosyalarını Eclipse altında kullanmak için gerekli eklentiyi kurduk. Kartımıza program atmak için gerekli olan St-Link programının kurulumunu yapıp çalıp çalışmadığını sınadık.
Yazı uzun olduğu için iki parçaya böldüm. Diğer işlemler için ikinci bölüme geçelim.
24 thoughts on “STM32F4 Discovery ve Ubuntu Bölüm-1”
mushack34 dedi ki:
02 Haziran 2012, 11:09
Eline sağlık muuzoo onumara bir anlatım olmuş…. normalde windows ta çalışacaktım ama…. şimdi ubuntu altında çalışmak harika birşey olacak….devamını sabırsızlıkla bekliyorum….telefonla arayıp yazının ileriki bölümlerini oluşturman için 😀 😀 seni rahatsız edersem kusura bakma 😀 😀 iyi çalışmalar…. hayırlı tezkereler :))))
07 Haziran 2012, 12:10
Muuzoo merhaba, senin anlattığın şekilde kurulumun aşağıdaki kısmına kadar geldim. yalnız bu kısımları yapıp ensondaki “make” işlemini yaptığımda derleme olmuyor ve şöyle bir yazı çıkıyor..
“make: *** No targets specified and no makefile found. Stop.” bunun nedeni nedir acaba?? ayrıca git istemcisinide kurdum ve işlemleri root olarak yapıyorum….
sudo apt-get install libsgutils2-dev libusb-1.0-0-dev
07 Haziran 2012, 21:07
Hmm. Muhtemelen kopyalamada bir hata oluşmuş olabilir. Bir de şöyle dener misin? Ayrıca bu aşamada root olmana gerek olmaması gerekir.
12 Haziran 2012, 13:50
dediğini yaptım fakat yine olmadı. ben 32bit ubuntu kullanıyorum… bundan kaynaklanıyor olabilirmi?
16 Haziran 2012, 00:34
Onla alakası olmaması gerekiyor. Dizin adların türkçe karakter içeriyor olabilir mi?
16 Haziran 2012, 00:55
dizin adlarında turkce bi karakter kullanmıyorum ama nedenini hala anlayamadım…
bide “file system” içindeki dosyaları kurcalarken “bin” dizini altında hemen hemen tüm linux console komutlarına rastlarken “make” komutuna rast gelmedim… acaba bunedenle çalışmıyor olabilirmi…. nettede bayabi araştırdım…ama sonuç yine bad 😀
17 Haziran 2012, 19:36
Uygun bir vakitte teamviewer üzerinden bir bakalım. Teamviewer kurunca bana haber ver. Uzaktan erişim ile yardımcı olayım.
Tagli dedi ki:
03 Temmuz 2012, 00:04
mushack34’un sorunu sanirim projedeki bir guncellemeden kaynaklaniyor. README dosyasinda yazdigina gore artik autotools kullaniliyormus (nedir ne degildir pek bilmiyorum).
Sanirim bunun icin de automake ve autotools-dev (bu ikinciden emin degilim) paketlerinin kurulu olmasi gerekiyor.
03 Temmuz 2012, 23:48
Tagli bilgilendirme için sağol 😉 . Yeni kodları denedim ve yazıya ekledim.
03 Temmuz 2012, 23:56
çalışmanız için size tşk ederim.
Sourcery Codebench için derleme esnasında herhangi limit kısıtlaması var mı?
04 Temmuz 2012, 22:03
Sourcerry Codebench sürümlerine ait özellik karşılaştırma tablosuna BURADAN ulaşabilirsiniz. Bildiğim kadarıyla derleme ile ilgili bir kısıtlama yok.
cp /home/user/src/stlink/flash/st-flash ./st-flash
echo PATH=\”$PATH:/opt/stlink\” >> /etc/environment
buraya kadar sorun yoktı fakat burda sorun oluştu şu satırda
[/code]böyle bir hata verdi [code]
cp: `/home/rclk/src/stlink/flash/st-flash’ durumlanamadı: Böyle bir dosya ya da dizin yok
[/code] yardımlarınız bekliyorum,
ayrıca böyle bir bilgi paylaştıgınız için teşekkür ediyorum…
28 Ağustos 2012, 20:46
Evet şimdi tekrar kurulumu inceledim. Bir takım değişiklikler olmuş. Yazıdaki kurulum kısmını tekrar güncelliyorum. Hatanın giderilmesi için lütfen ilgili kısmı tekrar deneyiniz. ST-Link kaynağında bazı değşiklikler olmuş. “sudo apt-get install libsgutils2-dev libusb-1.0-0-dev autoconf libtool” satırından itibaren tekrar deneyin.
06 Kasım 2012, 17:18
Geri bildirim açısından, karşılaştığım bazı problemleri ve çözümleri yazmak istedim.
// ./autogen.sh işleminde sorun oldu,
“sudo apt-get install autoconf” komutunu girmem gerekti.
// libtool programı düzgün yüklenememiş, bunun için
“sudo aptitude install libtool” komutu ile tekrar yükledim.
// libusb için komutunu çalıştırmam gerekti.
“sudo apt-get install libusb-1.0”
Sonuç olarak başarılı bir şekilde kurulum gerçekleşti.
07 Temmuz 2013, 16:12
STM32F3 için flash loader desteği verilmiyor sanırım…
STM32F4’ünkine bakarak bunu yapmanın aşamaları nelerdir?
30 Temmuz 2013, 17:14
Geç cevap için kusura bakmayın. Ne yazık ki bu konu hakkında şu an için bir fikrim yok.
28 Nisan 2014, 18:07
Merhaba sudo apt-get install libsgutils2-dev libusb-1.0-0-dev autoconf libtool komutu hata döndürüyor, nasıl kuracağımı bilemedim. Ayrıca az önceki koddan olsa gerek şunlarda hata veriyor;
28 Nisan 2014, 20:00
Dönen hatayı yazarsanız daha faydalı olur.
direkt dosya veya dizin yok diyor
29 Nisan 2014, 17:00
“/etc/environment: satır 4: `”‘ için eşleşme aranırken beklenmedik dosya sonu
N: ‘/etc/apt/sources.list.d/’ dizinindeki ‘google-chrome.list.distUpgrade’ dosyası geçersiz bir dosya uzantısı olduğu için yok sayılıyor.
N: ‘/etc/apt/sources.list.d/’ dizinindeki ‘kroq-gar78-ppa-saucy.list.distUpgrade’ dosyası geçersiz bir dosya uzantısı olduğu için yok sayılıyor.
N: ‘/etc/apt/sources.list.d/’ dizinindeki ‘ubuntu-wine-ppa-saucy.list.save’ dosyası geçersiz bir dosya uzantısı olduğu için yok sayılıyor.
N: ‘/etc/apt/sources.list.d/’ dizinindeki ‘kroq-gar78-ppa-saucy.list.save’ dosyası geçersiz bir dosya uzantısı olduğu için yok sayılıyor.
N: ‘/etc/apt/sources.list.d/’ dizinindeki ‘upubuntu-com-themes-saucy.list.distUpgrade’ dosyası geçersiz bir dosya uzantısı olduğu için yok sayılıyor.
N: ‘/etc/apt/sources.list.d/’ dizinindeki ‘upubuntu-com-themes-saucy.list.save’ dosyası geçersiz bir dosya uzantısı olduğu için yok sayılıyor.
N: ‘/etc/apt/sources.list.d/’ dizinindeki ‘ubuntu-wine-ppa-saucy.list.distUpgrade’ dosyası geçersiz bir dosya uzantısı olduğu için yok sayılıyor.
indirme içinde bu hatayı veriyor
Sizin sistemden kaynaklı bir sorun var. Şu komutların çıktılarını gönderir misiniz?
sudo dpkg –configure -a için;
sudo apt-get install -f için ;
0 paket yükseltilecek, 0 yeni paket kurulacak, 0 paket kaldırılacak ve 32 paket yükseltilmeyecek.
install-info (5.2.0.dfsg.1-2) ayarlanıyor…
/etc/environment: satır 4: `”‘ için eşleşme aranırken beklenmedik dosya sonu
15 Mayıs 2014, 09:29
Siz de paket yöneticisi ile alakalı bir sorun var. İsterseniz size uygun bir zamanda teamviewer üzerinden çözmeye çalışalım.