Sistem Programlama Dersi – 2017 Bahar
Sistem Programlama Dersi 2016-2017 Bahar Dönemi
Hafta 01 Ders Notları :
1-) Sanal Makine Kurulumu
- İçindekiler
- Sanal Makine Kurulumu
- Giriş
- Sanal Makine Programı
- VirtualBox Sanal Makinesinin Kurulumu
- Sanal Makine Dosyası
- Sanal Makine Programı
- Güvenlik Notları
- İlk Çalıştırma
- Sanal Makinenin Kullanımı
1.2. Giriş
Sistem Programlama için kullanılacak geliştirme ortamı kurulumu iki adıma ihtiyaç duymaktadır.
- Sanal Makine Programı(VirtualBox)
- Sanal Makine Dosyasının Kurulumu(xubuntu-kouembedded-v20160217.ova)
1.2.1. Sanal Makine Programı
Sanal Makine programları gerçek bir bilgisayar gibi çalışan yazılımdır. Sanal Makine, işletim sistemi ile donanım arasında bir sanal ortam oluşturur.
1.2.1.1. VirtualBox Sanal Makinesinin Kurulumu
Sistem programlama dersi için hazırlanan geliştirme ortamı VirtualBox isimli bir sanal makine programı üzerinde çalışacaktır. VirtualBox sanal makine programı aşağıdaki linklerden indirilip kurulabilir.
- Windows: http://download.virtualbox.org/virtualbox/4.3.40/VirtualBox-4.3.40-110317-Win.exe
- GNU/Linux: Yazılım merkezi kullanılarak indirilebilir.
- OS X:http://download.virtualbox.org/virtualbox/4.3.40/VirtualBox-4.3.40-110317-OSX.dmg
VirtualBox kurulumu tamamlandıktan sonra programa ait birkaç özelliğin aktif hale gelmesi için aşağıdaki linkteki ek paketinde indirilip kurulması gerekmektedir.
http:http://download.virtualbox.org/virtualbox/4.3.40/Oracle_VM_VirtualBox_Extension_Pack-4.3.40-110317a.vbox-extpack
1.2.2. Sanal Makine Dosyası
Bilgisayar üzerinde sanal makine çalıştırmak için gerekli olan ikinci adım ise VirtualBox sanal makine programı içinde çalışacak “ova” uzantılı sanal makina kalıbının eklenmesidir.
2017 Bahar yarıyılı Sistem programlama dersi için kullanılacak sanal makine kalıbını ismi “xubuntu-kouembedded-v20160217.ova” dır. Bu sanal makine kalıbı gömülü sistem lab. tarfından sistem programlama dersi için hazırlanmış olup hiçbir lisans kısıtlaması mevcut değildir. Dolayısıyla kalıp istenildiği takdirde internet üzerinden paylaşılabilir.
Derse ait “xubuntu-kouembedded-v20160217.ova” isimli sanal makine programına aşağıdaki linklerden erişebilirsiniz.
1.3. Güvenlik Notları
- Sanal makinede resmi olarak desteklenmeyen, değiştirilmiş bir GNU/Linux dağıtımı bulunmaktadır. İşletim sisteminde laboratuvar tarafından ders için değişiklik yapılmıştır ve gerektiğinde ders ile ilgili güncelleme verilecektir.
- Sanal makineye tarafımızca güvenlik garantisi verilmemektedir. Ders amacı dışında kullanmanız tavsiye edilmez. Sanal makine içindeki yazılımlara kişisel bilgi ve parola (mail vb.) girmeyiniz.
- Güvenmediğiniz bir kaynaktan aldığınız sanal makine dosyasını sha1sum kontrolünü yaparak kullanmanız tavsiye edilir.
sha1sum: 6c89fb4c637c1c965331b52dcdac922f9a32c0eb
xubuntu-kouembedded-v20160217.ova 496751616 byte
1.4. İlk Çalıştırma
VirtualBox programını açıyoruz
Dosya menüsünden “Cihazı içe aktar” seçeneğini tıklayın.
Kırmızı ile işaretli seçeneğini tıklayıp sanal makine dosyasını (xubuntu-kouembedded-v20160217.ova) seçiniz.
Ardından “ileri” ye basınız.
Makinenizin özeliklerine göre sanal makineye paylaşacağınız CPU (çekirdek) sayısı ve RAM miktarını değiştirebilirsiniz.
Ardından “İçe aktar” a tıklayınız.
İşlemin tamamlanmasını bekleyin. İşlem biraz uzun sürebilir.
1.5. Sanal Makinenin Kullanımı
Virtualbox programını açtığınızda aşağıdaki pencere gelecektir.
“Başlat” buttonu ile makineyi başlatın. Makine açıldığında aşağıdaki pencere gelecektir.
Dikkat: Sistem açılması uzun sürebilir, kullanıcı giriş ekranı gelene kadar belli bir süre beklemeniz gerekebilir.
Not: 5 dakika geçtikten sonra siyah ekranda kalma durumunda veya açılma sırasında bir hata mesajı ile karşılaşılması durumunda “Kurulum Problemleri” dokümanını inceleyiniz.
kullanıcı adı = user ve parola = 1 tane boşluk karakteri (space)
1-) Sistem Programlama Dersine Yönelik Program Kurulumu
- İçindekiler
- Sistem programlama dersine yönelik program kurulumu
- İçindekiler
- Giriş
- KOU Paket Yükleyici Programı
- Giriş
1.2. Giriş
Sistem Programlama için kullanılacak geliştirme programlarının kurulumu ve ayarlananması anlatılacaktır.
1.2.1. KOU Paket Yükleyici Programı
VirtualBox ‘ın içine “xubuntu-kouembedded-v20160217.ova” isimli sanal makine kalıbı aktarıldıktan sonra masaüstünde KOU Paket Yükleyici isimli bir program görünecektir.
Masaüstündeki”Kou Paket Yükleyici”ye tıklayınız.
”Sistem Programlama Programları”nı seçiniz ve “Kaydet”e tıklıyanız.
“Yes”e tıklayınız.
password = 1 tane boşluk karakteri (space)
İşlemin tamamlanmasını bekleyiniz. İşlem biraz uzun sürebilir.
İşlem tamamlandı pencereyi kapatınız.
“Başlat” menüsünden “Development” menüsü altındaki “KOU Eclipse” tıklayınız.
“password” = 1 tane boşluk karakteri (space)
İşlemin tamamlanmasını bekleyiniz. İşlem biraz uzun sürebilir.
Kurulum bittikten sonra “Başlat” menüsünden “Development” menüsü altındaki “KOU Eclipse” tıklayınız.
Herhangi bir seçim yapmadan “OK”e basınız.
Programımız kullanıma hazır hale gelmiştir.
Sistem programlama dersine yönelik proje oluşturma, derleme, programı karta aktarma ve hata ayıklama
- İçindekiler
- Sistem programlama dersine yönelik proje oluşturma, derleme, programı karta aktarma ve hata ayıklama
- İçindekiler
- Gerekli Dosyalar
- Proje açma
- Eclipse geliştirme ortamında proje oluşturma
- Dosyaların projeye kopyalanması
- Proje ayarları
- Projeyi derleme
- “Debugger”ın ayarlanması
- Kartın sanal makineye aktarılması
- Debug işlemi
1.2.Gerekli Dosyalar
- Stellaris Launchpad kullananlar için: Stellaris_Launchpad.tar.gz
https://drive.google.com/file/d/0Bw8VB6WrbOkiSmptUHhGYVAwMzg/view?usp=sharing - Tiva C Launch kullananlar için : Tiva_C_Launchpad.tar.gz
https://drive.google.com/file/d/0Bw8VB6WrbOkiYWFnX0hqWl9HbWM/view?usp=sharing
1.3. Proje açma
Eclipse geliştirme ortamında kartımız için proje oluşturma anlatılmıştır
1.3.1Eclipse geliştirme ortamında proje oluşturma
“KOU Eclipse”i açınız.
File menüsünden “New” → “Project” seçeneğini tıklayınız.
C/C++ altından C Project seçeneğini seçiniz
Proje ismi giriniz. Ardınan proje seçeneklerini aşağıdaki resimdeki ile aynı şekilde seçip Next’e basınız.
Bir değişiklik yapmadan “Next”e basınız.
“Finish”e basınız.
Proje geliştirme ortamına geçmeniz için işaretlenmiş alana tıklayınız.
1.3.2. Dosyaların projeye kopyalanması
Ana makineden sanal makineye sürükle-bırak özelliğini aktifleştirmek için “Aygıtlar” bölümünden resimde gösterilen adımları uygulayınız.
İndirilmiş olan kütüphane arşivini aktarmak için ana makineden sanal makinenin masaüstündeki herhangi boş bir alana sürükleyiniz.
Uyarı: Stellaris kartını kullanıyorsanız “Stellaris_Launchpad.tar.gz”, Tiva C kartını kullanıyorsanız “Tiva_C_Launchpad.tar.gz” isimli dosyayı kullanmalısınız
Ana makineden sanal makineye atılan arşivdeki dosyaları resimdeki gibi çıkartınız.
Arşivden çıkartılmış olan klasörü açınız ve içindeki 2 klasörü daha önceden oluşturduğumuz projenin üstüne sürükleyip bırakınız. (Veya sağ tıklayıp kopyalayıp, Eclipse içinde proje ismine sağ tıklayıp yapıştıra basınız)
Karşınıza çıkan kopyalama penceresinde “OK” butonuna basınız.
1.3.3. Proje ayarları
Proje isminde sağa tıklayarak açılan bölümde “Properties”e tıklayınız.
Açılan pencerede gerekli düzenlemeleri yapınız.
DİKKAT: Düzenlemeler bitene kadar “OK” butonuna basmayınız.
“Cross ARM C” compiler altından “Includes”i açınız
Uyarı: Eğer Tiva C kartını kullanıyorsanız klasörün ismi “SW-TM4C-2.1.2.111” şeklinde görünecektir.
“Cross Arm C Linker” altından “General”i ve kırmızı ile açınız.
Uyarı: Tiva C kartını kullanıyorsanız dosyanın ismi TM4C.ld şeklinde görünecektir.
1.4. Projeyi derleme
Projeyi seçiniz ve “Build” ikonuna tıklayınız. (Veya projeyi sağ tıklayıp “Build Project”e tıklayınız)
Proje derlendikten sonra “Binaries”in altında projeye ait çalıştırılabilir dosya oluşacaktır.
1.5. “Debugger”ın ayarlanması
Debug ikonunun yanındaki aşağı oka tıklayıp “Debug Configurations”u açınız.
(Veya proje ismine sağ tıklayıp “Debug As” menüsü altından “Debug Configurations”a tıklayınız)
Soldaki menüden “GDB OpenOCD Debugging” seçeneğini çift tıklayınız.
Debugger menüsünü açınız.
“Config options” alanına yazacağınız ifadeyi şu linkten kopyalayabilirsiniz:
Ardından “Apply” buttonuna bastıktan sonra pencereyi kapatınız.
1.6. Kartın sanal makineye aktarılması
Öncelikle geliştirme kartını USB bağlantısı ile bilgisayarınıza bağlayınız.
USB kablosunu şekilde sarı renkle işaretlenmiş “USB ICDI” yazan kısma bağlayınız.
“Power selection” yazan kısımdaki switch’in “debug” yazan tarafta olduğundan emin olun.
Çalıştığında üst tarafta yeşil ledin yandığını göreceksiniz.
Ardınan USB bağlantısını aşağıdaki gibi sanal makineye aktarınız.
Sanal makine penceresinin altından USB simgesine sağ tıklayıp, “Texas Instruments InCircuit …” aygıtını seçili yapın.
NOT: Eğer bu işlemde USB aygıtın ismini görüp seçemiyorsanız (gri görünüyorsa) veya hiçbir USB aygıt görünmüyorsa “Kurulum Problemleri” dokümanına bakınız
1.7. Debug işlemi
Aşağıdaki gibi kırmızı ile işaretli olan debug seçeneğini çalıştırın.
Eğer debug menüsünde görünmüyorsa “1.4. Debugger”ın ayarlanması” başlığındaki gibi “Debug Configurations”u açıp, proje ile ilgili olan seçeneği seçip Debug buttonuna basınız.
Bu adımdan sonra kart üzerinde ledin yanıp söndüğünü göreceksiniz.
“Debug” ın durdurulması
Açık unutulmuş “Debug”ların durdurulması
Programın tekrar çalıştırılması için, önceki çalışmadan kalan debuggerın durdurulması gerekmektedir. Program durdurulmadan başka bir program debug edilmeye çalışıldığında aşağıdaki hata mesajı ile karşılaşılabilir.
Bu durumda açık kalmış debuggerın durdurulması gerekmektedir.
Hazır Fonksiyonları Kullanmak İçin Proje Ayarları
Proje isminde sağa tıklayarak açılan bölümde “Properties” e tıklayınız.
Açılan menüden C/C++ Build → Settings menüsünü açınız. Aşağıdaki şekildeki gibi “Cross ARM C Linker” altından “Miscellaneous”’u açınız.
“Other objects” kısmındaki ekleme buttonuna tıklayınız.
Açılan pencereden “Workspace” buttonuna tıklayıp, aşağıdaki resimdeki gibi açık olan projeniz altından “…driverlib/gcc/libdriver.a” dosyasını bulup ekleyiniz
1-) İçindekiler
- USB Tanımama Problemi
- Debugger”ın çalışmaması2. “Debugger”ın çalışmaması2. “Debugger”ın çalışmaması
- Sanal makinenin açılmama problemi veya “tsc: Fast TSC calibration failed” hatası
1. USB Tanımama Problemi
Sanal makinenin USB’yi tanımaması durumunda “Oracle VM VirtualBox Extension Pack” paketinin kurulması gerekmektedir.
Kurulumu ders notlarındaki “1-Sanal Makine Kurulumu” dokümanına göre yaptıysanız aşağıdaki linkten indirebilirsiniz:
http://download.virtualbox.org/virtualbox/4.3.36/Oracle_VM_VirtualBox_Extension_Pack-4.3.36-105129.vbox-extpack/
Eğer kurulumu farklı bir şekilde yaptıysanız www.virtualbox.org sayfasından kullanıdığınız virtualbox versiyonuna uygun “Oracle VM VirtualBox Extension Pack” paketini indiriniz.
İndirdiğiniz dosyayı çift tıklayarak kurulumu gerçekleştirebilirsiniz.
2. “Debugger”ın çalışmaması
1-) Kartın sanal makineye aktarıldığını kontrol edin
2-) Debug ayarlarında “Config options” ayarını kontrol edin.
UYARI: Google Drive’dan kopyalama sırasında görünmeyen karakter gelebilir. Config options ayarındaki yazıyı şu linkten txt dosyasını indirip kopyalayabilirsiniz:
https://drive.google.com/file/d/0Bw8VB6WrbOkiVWtUb3BSTGhaM28/view?usp=sharing/
Sanal makinenin açılmama problemi veya “tsc: Fast TSC calibration failed” hatası
Bu hatanın birden fazla sebebi olabilir. Seçenekleri çözüme ulaşana kadar aşağıdaki sırayla tek tek deneyiniz.
1-) İşlemcinizin sanallaştırma (virtualization) özelliğini aktifleştirin.
BIOS’tan aşağıdaki gibi bir ayarı etkinleştirmelisiniz. Bu ayar BIOS’unuzun modeline göre farklı bir isimle olabilir.
2-) Bilgisayarınızda başka sanal makine kurulu ise (VMware, Hyper-V), VirtualBox kullanırken diğerini devre dışı bırakmalısınız. İki sanal makine programı aynı anda çalışamaz.
3-) İşlemcinizde sanallaştırma desteği yoksa (Atom / Celeron işlemcilerin bazılarında)
“General” kısmındaki yazıyı tıklayın.
“System” altından “Motherboard” kısmında “Enable I/O APIC” özelliğini kapatın
Processor kısmından çekirdek sayısını 1 yapın.