3 Kasım 2015 Salı

UBUNTU 15.04 İŞLETİM SİSTEMİNE STM32 İÇİN ECLIPSE KEPLER KURULUMU
İndirilmesi Gereken Dosyalar

eclipse-cpp-kepler-SR1-linux-gtk.tar.gz

gcc-arm-none-eabi-4_8-2013q4-20131204-linux.tar.bz2

stlink-master.zip

openocd-0.9.0.tar.bz2

Yukarıda linkleri verilen dosyaları bilgisayarınıza indirdikten sonra gcc-arm kurulumu ile başlayalım.
  •  Home klasörü içerisine “ARMToolchains” isimli yeni bir klasör oluşturun.
  • “gcc-arm-none-eabi-4_8-2013q4-20131204-linux.tar.bz2” dosyasını bulunduğu klasör içine çıkarın.
  • Çıkarmış olduğunuz klasörü kes-yapıştır ile “ARMToolchains” isimli klasöre taşıyın.
  • Taşıdığınız “gcc-arm-none-eabi-4_8-2013q4” klasörünün içine girin.
  • Girmiş olduğunuz klasör içerisinde “bin” isimli klasörün de içine girin.
  • Klasör içerisinde boş bir alana gelerek farenizin sağ tuşuna basın. Açılan menüden Terminali açın.
  • Terminale “ls” komutunu yazın ve enter tuşuna basın. “bin” klasörü içerisindeki dosyalar ekranda listelenecektir. Listelenen dosya isimleri içerisinde “arm-none-eabi-gcc” var mı kontrol edin.
  • Terminal komut satırına “arm-none-eabi-gcc” yazıp enter tuşuna basın.
  • Benim işletim sistemim Türkçe olduğu için “ arm-none-eabi-gcc” programı şu anda kurulu değil. Kurulumunu şunu yazarak yapabilirsiniz:  sudo apt-get install gcc-arm-none-eabi mesajı gelecektir.
  • Terminal komut satırına “pwd” yazıp enter tuşuna basın. Bu komut ile bulunduğunuz klasörün sistemdeki yolu verilecektir. “/home/hmklp/ARMToolchains/gcc-arm-none-eabi-4_8-2013q4/bin”
  • Gelen bu yolu fare yardımı ile seçip kopyalayın.
  • Terminal komut satırına “echo  PATH=$PATH:” yazın ve kopyalamış olduğunuz yolu buraya fare yardımı ile yapıştırın ( CTRL+V kullanmayın!).
  • “echo PATH=$PATH:/home/hmklp/ARMToolchains/gcc-arm-none-eabi-4_8-2013q4/bin” ve enter’a basın. Ekranda aşağıdakine benzer bir mesaj gelecektir.
  • “PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/hmklp/ARMToolchains/gcc-arm-none-eabi-4_8-2013q4/bin” mesajın sonunda görüldüğü gibi PATH kısmına eklentimizi yapmış olduk.
  • Terminal komut satırına “ echo PATH=$PATH:/home/hmklp/ARMToolchains/gcc-arm-none-eabi-4_8-2013q4/bin  >> /home/hmklp/.bashrc” yazın ve enter tuşuna basın.
  • Terminal komut satırına “source $HOME/.bashrc” yazıp enter tuşuna basın.
  • Terminal komut satırına “arm-none-eabi-gcc” yazıp enter tuşuna basın. Aşağıdakine benzer bir mesaj alacaksınız. “arm-none-eabi-gcc:  fatal error; no input files compilation terminated.”
  • Terminal komut satırına “arm-none-eabi-gcc –version” yazıp enter’a basın. Kurmuş olduğumuz gcc derleyicisinin sürümü görüntülenecektir.Arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.8.3 20131129 (release) [ARM/embedded-4_8-branch revision 201541]Copyright © 20133 Free Software Foundation, Inc.This is free software; see the source for copying  conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  • Şimdi açmış olduğumuz terminali “exit” komutu ile kapatalım.

Eclipse Kepler kurulumunu yapalım.

  •  Daha önce indirmiş olduğumuz “eclipse-cpp-kepler-SR1-linux-gtk.tar.gz”  sıkıştırılmış dosyayı bulunduğu klasör içerisine açın.
  • “eclipse” isimli bir klasör oluşacaktır. Bu klasörün adını “eclipseARM” olarak değiştirin.
  • Bu klasörü kes-yapıştır ile “ARMToolchains” klasörü içerisine taşıyın.
  • “eclipseARM” klasörü içerisine girin ve “eclipse” dosyasını çift tıklayarak Eclipse programını çalıştırın.
  • Program açılışında projelerinizin nereye kayıt edileceğini belirten “Workspace” kısmına “/home/hmklp/workspaceSTM32” yazın veya kendi istediğiniz bir konumu yazabilirsiniz. “Ok” butonuna basın ve program açılışını tamamlayın.
  • Program açıldıktan sonra “Welcome” sekmesini kapatın.
  • “Help” menüsüne girin. Menüden “Install New Software..” seçeneğini tıklayın.
  • Açılan menüde bulunan “Add..” butonuna basarak “Add Repository” menüsünü açın.
  • Açılan menüde “Name “ kısmına “GNU ARM eclipse” yazın.
  • “Location” kısmına http://gnuarmeclipse.sourceforge.net/updates internet linkini yazın. “Ok” butonuna basarak işlemi başlatın.
  • Açılan menüde bir müddet “Pending..” mesajı görünür. Daha sonra “GNU ARM C/C++ Cross Development Tools” yazısı gelir. Bu yazının yanındaki kutucuğu fare yardımıyla işaretleyin ve “Next “ butonuna basın.
  • Açılan menüde tekrar “Next “ butonuna basın. “Review License” menüsü açılacaktır.
  • “Review License” menüsünde “I accept the terms of the license agreement” seçeneğini fare yardımı ile seçin ve “Finish” butonuna basarak program yükleme işlemini başlatın.
  • Belirli bir yükleme sonunda “Security Warning” mesaj kutusu belirecektir. Bu mesaj kutusuna “Ok” butonuna basarak kurulum işlemine devam edin.
  • Kurulum sonunda “You will need to restart Eclipse for the changes to take effect. Would you like to restart now?” mesaj kutusu açılır. Mesajda kısaca ”Eclipse’de yapılan değişikliklerin etkili olabilmesi için şimdi Eclipse’i yeniden başlatmak ister misiniz?”  Diye sorulmaktadır. “Yes” butonuna basarak Eclipse’i yeniden başlatın.


Şimdi Eclipse’de yeni bir proje oluşturalım.

  •  Açık olan Eclipse programında “File” menüsünden “New” kısmından “C Project” kısmını seçin.
  • Açılan menüden “Executable” altında yer alan listeden “STM32F4xx C/C++ Project”i seçin.
  • “Project Name” kısmına blinkyLED yazın ve “Next” butonuna basın.
  • Açılan menüde işlemci ayarları ilgili seçenekler gelecektir. Tekrar “Next” butonuna basın.
  • Açılan menüde “Folder setting” kısmı gelecektir. Tekrar “Next” butonuna basın.
  • Açılan menüde “Select Configuration” menüsü gelecektir.
  • Açılan menüde “Cross GNU ARM Toolchain” kısmı vardır. Burada daha önce kurulumunu yaptığımız GNU arm-none-eabi-gcc derleyicisinin yolunu tanımlamamız gerekiyor.
  • Bu menüde “Toolchain path:” kısmı boş olarak gelecektir. Bu kutucuğun yanında bulunan “Browse..” butonuna basın.
  • Açılan menüde daha önce oluşturduğumuz “ARMToolchains” klasörünü açın. Daha sonra “gcc-arm-none-eabi-4_8-2013q4” klasörünü açın. Bu klasör içinde yer alan “bin” isimli klasörü açın. “Ok” butonuna basarak menüyü kapatın. “Toolchain path:” kısmında bu son girdiğiniz klasöre kadar olan yol adresi görülecektir. “/home/hmklp/ARMToolchains/bin”
  • “Finish” butonuna basarak projemizi oluşturalım.
  • Projemiz oluştuktan sonra ekranın sol alt tarafında “C/C++ Indexer (4%) “ gibi bir ifade çıkar. Bu ifadenin 100% olup tamamlanmasını bekleyin.
  • Ekranın üst sol kısmında bulunan çekiç simgesine basarak projeyi derleyiniz.
  • Derleme bittiğinde Alt kısımda yer alan “Console” isimli kısımda aşağıdakine benzer bir mesaj çıkacaktır.

       Invoking: Cross AM GNU Print Size

             arm-none-eabi-size  --format = berkley “blinkyLED.elf”
             text            data            bss               dec       hex          filename
            8681          176             420             9277      243d        blinkyLED.elf
            Finished building:  blinkyLED.siz
            19:33:03 Build Finished (took 6s.961ms)

  • Bu mesaj programın başarı ile derlendiğini ifade eder.
  • Şimdi ekranın üst kısmındaki “Window” menüsü altından “Preferences” kısmını tıklayın.
  • Açılan menüden “General” yazısının yanında bulunan ok işaretine basarak alt menülerini görünür hale getirin.
  • Açılan alt menüden “Workspace” seçeneğini tıklayın. Yan menüde çıkan seçeneklerden aşağıdaki kısımları işaretli değiller ise işaretleyin.
“Build automatically”
“Refresh on Access”
“Save automatically before build”
“Prompt”
“Default (UTF-8)”
“Default (Unix)”
Bu listenin dışındakiler seçili olmamalıdır.
  • “Apply” butonuna basın ve ardından “Ok” butonuna basarak menüyü kapatın.
Stlink-master kurulumunu yapalım.
  •  Daha önce indirdiğimiz “stlink-master.zip” dosyasını bulunduğu dizine çıkartın.
  • Dizine çıkan “stlink-master” isimli klasörü daha önce oluşturmuş olduğumuz “ARMToolchains” klasörü içerisine kes-yapıştır ile taşıyın.
  • Kuruluma başlamadan önce terminali açın.
  • Terminal komut satırına “sudo apt-get updates” yazarak enter tuşuna basın.
  • Terminal komut satırına “sudo apt-get install build-essential” yazarak enter tuşuna basın.
  • Terminal komut satırına “sudo apt-get install automake” yazarak enter tuşuna basın.
  • Terminal komut satırına “sudo apt-get install checkinstall” yazarak enter tuşuna basın.
  •  Terminal komut satırına “sudo apt-get install autoconf” yazarak enter tuşuna basın.
  •  Terminal komut satırına “sudo apt-get install qt4-qmake libqt4-dev libqt4-gui libqt4-xml qt4-designer qtcreator libusb-0.1-4 libusb-1.0-0-dev” yazarak enter tuşuna basın ve kurulumları tamamlayın.
  • Terminali kapatın.
  • “stlink-master”  klasörünün içinde yer alan “README” dosyasını açın.
  • Dosya içerisinde “COMPILING” başlığı altında bulunan kısmı bulun. Bu kısımdaki komutları teker teker işletmemiz gerekecek.
$ ./autogen.sh
$ ./configure
$ make
  • Şimdi “stlink-master” klasörü içerisinde terminali açın.
  • Terminal komut satırına “./autogen.sh” yazarak enter tuşuna basın.
  • Terminal komut satırına “./configure” yazarak enter tuşuna basın.
  • Terminal komut satırına “make “yazarak enter tuşuna basın.
  • Make işlemi bitiğinde terminal komut satırına “sudo make install” yazıp enter tuşuna basın.
  • Kurulum bittiğinde terminal komut satırına “whereis st-flash” yazarak enter tuşuna basın. Kurulum sonrasında “st-flash” isminde yürütülebilir bir dosya oluşmuştur. Bu dosyanın yolunu almak için bu komutu kullandık. Bu komut cevabı olarak aşağıdakine benzer bir mesaj gelecektir.
“st-flash: /usr/local/bin/st-flash”
  • Mesajdaki adres kısmını kopyalayın.
  • Eclipse programına geri dönün.
  • Eclipse programının “Run” menüsünden “External Tools” kısmını açın.
  • Bu kısımdan “External Tools Configurations” menüsünü açın.
  • Açılan menünün sol üst tarafında bulunan “Program” yazısını fare yardımı ile tek tıklayın ve seçin.
  •  Üst taraftaki dosya işaretine tıklayarak “Program” yazısının altına “New configuration” isimli bir seçenek oluşturun.
  •  “New configuration” yazısının üzerini fare yardımı ile tek tıklayın ve seçin.
  •  Sol tarafta açılan kısımda bulunan “Name” isimli kısmın yanındaki “New configuration” yazısını silin ve yerine “st-linkv2” yazın.
  • “Main” sekmesinde bulunan “Location” kısmına daha önce terminal ekranından kopyaladığımız st-flash dosyasının yolunu yapıştırın.
  • “Working Directory” kısmının sağ tarafında bulunan “Variables..” butonun tıklayın.
  •  Açılan menüden “project_loc” seçeneğini seçip “Ok” butonuna basıp açık olan menüden çıkın. “Working Directory” kısmında “${Project_loc} yazısı çıkacaktır. Bu yazının yanına “/Release” yazın.
  • “Arguments:” kısmına “write” yazın ve bir boşluk bırakın.
  • Sağ tarafta bulunan “Variables..” butonuna basarak açılan menüden “project_name” i seçin.
  • “Ok” butonuna basarak açılmış olan menüyü kapatın.
  • “Arguments:” kısmında “write ${project_name}” yazısı oluşacaktır.
  • Bu yazının yanına “.bin 0x08000000” ekleyerek şu duruma getirin;
“write ${project_name}.bin 0x08000000”
  • “Apply” butonuna basın.
  •  “Run” butonuna basın.
  •  Eclipse ekranında bulunan “Project “ menüsünden “Properties”  kısmını açın. Açılan menüden “C/C++ Build” kısmının altından “Setting”i seçin. Sağ tarafta açılan menüden “Cross ARM GNU Create Flash Image” isminin altındaki “General” kısmını seçin.
  • Sağ tarafta açılan menüden “Output file format (-O)” kısmının yanındaki kutucuktan “Raw binary” kısmını seçin.
  • “Apply” butonuna ve ardından “Ok” butonuna basarak menüden çıkın.
  • Programı derleyin.
  • “Run” menüsü altından “External Tools” kısmından “External Tools Configurations” kısmını açın.
  • “Run” butonuna basarak derlenmiş olan programı STM32F4Discovery kartına gönderin. Kart üzerindeki LED’in yanıp söndüğünü göreceksiniz.


OpenOCD Kurulumunu yapalım.

  • Eclipse’i açın.
  • “File” menüsünden “new” kısmından “C Project”i seçin.
  •  Proje ismi olarak “debugTEST” yazın.
  • “Project type” kısmından “STM32F4XX C/C++ Project” seçeneği seçin ve projeyi oluşturun.
  • “Project Explorer” kısmında oluşturduğumuz projenin altında “src” kısmını tıklayın ve “main.c” dosyasını çift tıklayarak açın.
  • “main.c” içeriğini silin ve aşağıda verilen program kodunu yazın.


#include “stm32fxx.h”
int main {
               while(1) {
                               *((uint32_t volatile*)(0x40023810))=0x08;
                               *((uint32_t volatile*)(0x40023810))=0x00;
                               *((uint32_t volatile*)(0x40023830))=0x08;
                               *((uint32_t volatile*)(0x40020C00))=0x55000000;
                               *((uint32_t volatile*)(0x40020C18))=0xF000;
                               }
}
  • Daha sonra “Release” olarak  derleyin.
  • “Project” menüsünden “Properties” menüsünü açın.
  • Buradan “C/C++ Build” kısmını açın.
  • Açılan kısmın altında bulunan “setting” kısmını seçin.
  •  Sol tarafta açılan menüden “Cross ARM GNU Create Flash Image” kısmının altında bulunan “General” kısmına tıklayın.
  • Sol üst tarafta açılan kısmında yer alan “Output file format (-O)” kısmının yan tarafındaki listeden “Raw binary” seçeneğini seçin ve “Run” ile menüden çıkın.
  • Programı “Debug” olarak derleyin.
  •  Daha önce indirdiğimiz “openocd-0.9.0” dosyasını bulunduğu dizine açın.
  •   Açılan “openocd-0.9.0” klasörünü kes-yapıştır yöntemiyle daha önce oluşturduğumuz “ARMToolchains” klasörüne taşıyın.
  •  “openocd-0.9.0” klasörünün içerisinde terminal programını çalıştırın.
  •  Terminal komut satırına “sudo apt-get install libusb-dev libusb-1.0.0-dev libftdi-dev libftdi1” yazarak enter tuşuna basın.
  • Gerekli kurulumların bitmesini bekleyin.
  •   Terminal komut satırına “./configure --enable-verbose  --enable-verbose-jtag-io --enable-parport --enable-jlink --enable-ulink --enable-stink --enable-ti-icdi --enable-ftdi” yazın ve enter tuşuna basın.
  • Kurulumun bitmesinin ardından terminal komut satırına “make” yazarak enter tuşuna basın.
  • Make işleminin bitmesini bekleyin. Biraz uzun sürebilir Gülen
  • Terminal komut satırına “sudo make install” yazın ve enter tuşuna basın.
  • Kurulumun bitmesinin ardından terminal komut satırına “whereis openocd” yazarak enter tuşuna basın. Mesaj olarak openocd’nin sistemdeki yolu verilecektir. Bu yolu kopyalayın.
  •  Terminal komut satırına “openocd -f tcl/board/stm32f4discovery.cfg” yazın ve enter tuşuna basın.  Terminalde gelen mesajların sonunda mesaj olarak;
“Info: stm32f4x.cpu; hardware has 6 breakpoints, 4 watchpoints” geldi ise openocd başarı ile kurulmuş ve stm32f4discovery kartına st-link üzerinden bağlantı kurulmuş demektir. Bağlantıdan çıkmak için “Ctrl+c” tuşlarına basın.
  • Eclipse programını açın.
  •  “Run” menüsünden “External Tools” kısmından “External Tools Configurations..” menüsüne girin.
  • “Program” kısmının altında yeni bir configuration dosyası oluşturun.
  • Oluşturmuş olduğunuz “New configuration” isimli kısmın ismini “openocd” olarak değiştirin.
  • “Arguments” kısmına “-f tcl/board/stm32f4discovery.cfg” yazın.
  • “Location” kısmına “daha önceki adımlarda “whereis openocd” ile alıp kopyaladığımız yolu yapıştırın.
  •  Terminal komut satırına “pwd” yazın ve enter’a basın. Gelen mesajı kopyalayın.
  •  “Arguments” kısmında yazdığımız yazıda “-f” kısmının önüne bu kopyaladığımız yolu yapıştırın ve yolun sonuna “/” koyun. Şu şekilde olacaktır;
“-f /home/hmklp/ARMToolchains/openocd-0.9.0/tcl/board/stm32f4discovery.cfg”
  • “Apply” butonuna ve ardından “Run” butonuna basarak openocd’yi çalıştırın.
  • Eclipse ekranında yer alan “Console” kısmında bazı mesajlar gelecektir. Mesaj sonunda;
“Info: stm32f4x.cpu: hardware has 6 breakpoints, 4 watchpoints” mesajı görüntülenecektir. Bu mesaj openocd’nin çalıştığını gösterir. Eclipse artık st-link üzerinden openocd kontrolünde stm32f4discovery kartına bağlanmıştır.
  •  Eclipse ekranından “Run” menüsü altından “Debug  Configuraitons..” menüsünü açalım.
  • Açılan menünün sol tarafındaki listeden “GDB Hardware Debugging” kısmını seçin ve sol üst tarafta dosya işaretine basın.
  • Sol tarafta “debugTESTDebug” isimli bir kısım oluşacaktır.
  • Bu oluşan kısımdan “Search Project” butonuna basın.
  • Açılan menüden “debugTEST.elf” seçeneğini seçin ve “Ok” butonuna basarak menüyü  kapatın.
  • “Apply” butonunun yan tarafında bulunan “Using GDB (DSF) Hardware Debugging Launcher – Select other…” yazısının link olarak gösterilen “Select other” kısmına tıklayın.
  • “Select Preferred Launcer” menüsü açılacaktır.
  • Açılan menüden “Use configuration specific setting” kısmını işaretleyin.
  • “Launcher” kısmında bulunan listeden “GDB Hardware Debugging Launcher” işaretleyin ve “Ok” tuşuna basarak menüden çıkın.
  • “Debugger” sekmesini açın.
  • Terminali açın. Komut satırına “which arm-none-eabi-gdb” yazın ve enter’a basın.
  • Çıkan yolu kopyalayın. “/home/hmklp/ARMToolchains/gcc-arm-none-eabi-4_8-2013q4/bin/arm-none-eabi-gdb”
  • “Debugger” sekmesinde yer alan “GDB Command” kısmına kopyaladığınız yolu yapıştırın.
  • Aynı kısımda bulunan “Remote Target” kısmından “Use remote target” seçeneğini işaretleyin.
  • “JTAG Device” kısmından “Generic TCP/IP” yi seçin.
  •  “Port number:” kısmına “3333” yazın.
  •  “Setup” sekmesini açın.
  •  “Halt” yazısının altında bulunan kutuya “monitor reset halt” yazın.
  • “Common” sekmesini açın.
  • “Display favorites” kısmında bulunan “Debug” seçeneğini işaretleyin.
  • “Apply” butonuna basın ve ardından “Debug” butonuna basın.
  • Gelen mesaj kutusunun “Ok” tuşuna basarak devam edin.

Böylece openocd kurulumunu tamamlamış olduk. Şimdi debug esnasında işlemcimizin tüm register’larını görebilmemiz ve değiştirebilmemize yarayacak bir eklenti ekleyelim.

  • Eclipse programımızı açalım.
  • “Help” menüsünden “Install New Software” i açın.
  •  “Add” butonuna basın.
  • Açılan menüde “Name:” kısmına “embsysregview” yazın.
  • “Location:” kısmına http://embsysview.sourceforge.net/update-beta yazın ve “Ok” butonuna basın.
  • “Next” butonuna basın.
  • Tekrar “Next” butonuna basın.
  • Gelen menüde “I accept the terms of the license agreement” kısmını işaretleyin ve “Finish” butonuna basın.
  • Kurulum başlayacaktır. Bir süre sonra gelen mesaj kutusunda “Ok” butonuna basarak kuruluma devam edin.
  • Kurulumun bitiminde Eclipse’in yeniden başlatılması için onay isteyen bir mesaj kutusu gelecektir. “Ok” butonuna basın ve Eclipse’i yeniden başlatın.
  • Eclipse programı açıldıktan sonra yazdığınız programı “Debug” olarak derleyin.
  • Openocd’yi “Run” menüsünden “External Tools” kısmından “openocd” kısmına tıklayarak çalıştırın.
  • “Run” menüsü altındaki “Debug Configurations” kısmını açın.
  • “Debug” butonuna basarak programınızı debug modunda başlatın.
  •  Window” menüsü altından “Show view” kısmına tıklayın.
  • Açılan listeden “Other” kısmını tıklayın.
  • Açılan menüden “Debug” kalsörüne tıklayın.
  • Burada “Embsys Registers” seçeneğini seçin.
  • Eclipse ekranında “Embsys Registers” adında bir bölüm oluşacaktır.
  • Bu oluşan kısımda “ERROR: Please select a chip using the preference page” yazısının yanındaki işarete tıklayın.
  • Açılan menüden
“Architecture” kısmından “cortex-m4”ü

“Vendor” kısmından “STMicro”yu

“Chip” kısmından “stm32f40x”i

“Board”  kısmından “STM32F+DISCOVERY”i seçin.

Artık debug yaparken işlemcinin tüm register’larını görebilir ve hatta değiştirebilirsiniz.


Şimdilik bu kadar arkadaşlar Gülen
Sorularınız ve önerileriniz için m.hakki.kaplan@gmail.com adresinden her zaman bana ulaşabilirsiniz.
Hakkı KAPLAN


Hiç yorum yok:

Yorum Gönder