Bu yazımızda Sdcc derleyicisini kullanarak Code::Blocks Ide’si üzerinde stm8 için uygulama geliştireceğiz.
Sdcc : 8-bit mikroişlemciler için geliştirilmiş derleyicidir. Ansi-C standartlarını destekler. Intel 8051 tabanlı mikrodenetleyiciler, Zilog Z80 tabanlı mikrodenetleyiciler, Microchip Pic16 ve Pic18 tabanlı mikrodenetleyiciler dahil birçok mikrodenetleyici ailesi için kod üretebilir.
Code::Blocks : Açık kaynaklı, farklı platformları destekleyen, ücretsiz bir C/C++ tümleşik geliştirme ortamıdır.
ST Visual Programmer : ST firmasısın mikroişlemcilerini programlamak için kullanılan programdır. Mikroişlemcinin hafızasını ve opsiyon baytlarını okumak, yazmak veya kontrol etmek için kullanılır.
İlk olarak sırasıyla Sdcc, Code::Blocks ve STVP programlarını yüklüyoruz.
Daha sonra Code:Blocks çalıştırıyoruz. En üstte bulunan “Settings” sekmesinden “Compiler” kısmını açıyoruz.
Burada Selected compiler kısmından “Small Device C Compiler” seçiyoruz. “Set as default” tıklayarak varsayılan derleyicimiz olmasını sağlıyoruz.
Artık örnek proje oluşturup, Stm8 için gerekli ayarları yapabiliriz.
Proje oluşturmak için en üstte “File” sekmesinden “New” ==> “Project” açıyoruz.
Açılan sayfadan “Empty project” seçiyoruz ve devam ediyoruz.
Gelen sayfadan, Projenin ismini, dosya ismini, kaydedilecek dizini ayarlıyoruz ve devam ediyoruz.
Gelen sayfada Complier seçimini yapıyoruz. Varsayılan olarak “Small Device C Compiler” seçili olduğu için değiştirmemize gerek yok. Bu projemizde Debug kullanmayacağımız için “Create Debug configuration” yanındaki seçimi işaretlemeyi kaldırıyoruz. Sadece “Create Release configuration” yanındaki seçimi işaretliyoruz ve bitiriyoruz.
Artık projemizi oluşturduk. Derleyici ayarlarını değiştirerek, Stm8 için çalışmasını ayarlıyoruz.
Proje isminin üzerine sağ tıklıyoruz ve en alttaki “Properties” açıyoruz.
Açılan sayfadan “Build Targets” sekmesine geliyoruz. Type kısmında “Console application” seçiyoruz. Output filename kısmına “bin\Release${PROJECT_NAME}.hex” yazıyoruz. Bu şekilde proje ismiyle hex üretilmesini sağlıyoruz. Daha sonra alt tarafta “Auto-generate filename extension” yanındaki seçimi kaldırıyoruz.
Sol alt kısmında bulunan “Build option” butonuna basarak derleyici ayarlarına giriyoruz.
Açılan pencerede “Compiler settings” sekmesinden “Compiler Flags” kısmına geliyoruz ve Stm8 için gerekli bayrakları işaretliyoruz.
a) ISO C99 with SDCC extension [--std-sdcc99]
b) Optimize for code size rather then speed [--opt-code-size]
c) STMicroelectronics STM8 [-mstm8]
d) Large model programs [--model-large]
e) Intel Hex [--out-fmt-ihx]
Bu bayrakları işaretledikten sonra “OK” butonuna basıp çıkıyoruz.
Projemiz için gerekli bütün ayarları yaptık. Artık test etmek için “main.c” dosyası ekleyeceğiz ve led blinking uygulaması yapacağız. Main dosyası eklemek için en üstte “File” sekmesinden “New” ==> “Empty file” açıyoruz.
Gelen uyarıda evete tıklıyoruz. Böylelikle oluşturacağımız dosya, projemize eklenmiş olacak.
Gelen pencerede “Dosya Adı” kısmını “main.c” şeklinde dolduruyouz ve kaydediyoruz.
main.c dosyasını aşağıdaki örneğimizdeki gibi dolduruyoruz.
Artık projemizi “Build” ettiğimiz zaman “\bin\Release” klasörü altında .hex dosyamız oluşmuş olacak.
Hex dosyasını mikroişlemcimize yüklemek için “ST Visual Programmer” kullanacağız. Bunun için en üstte “Tools+” sekmesinden “Configure Tools” açıyoruz.
Açılan pencere “New” butonuna tıklıyoruz ve kendi özel komutumuzu oluşturuyoruz.
Tool Name kısmına “Hex Upload” yazıyoruz. Command Line kısmına ise STVP’nin kurulu olduğu dizindeki STVP_CmdLine programını ve işlemcimiz için gerekli parametreleri giriyoruz. Parametre açıklamaları ise şöyledir.
Programlayıcı[-BoardName] : ST-LINK
İşlemci [-Device] : STM8L152x6
Port [-Port] : USB
Programlama modu [-ProgMode] : SWIM
Geliştirme kiti olarak STM8L Discovery Board kullandığım için ona göre ayarlar aşağıda örnek olarak verilmiştir.
‘C:\Program Files (x86)\STMicroelectronics\st_toolset\stvp/STVP_CmdLine.exe -BoardName=ST-LINK -Device=STM8L152x6 -Port=USB -ProgMode=SWIM -no_loop -no_log -FileProg=$TARGET_OUTPUT_FILE’
Bundan sonra “OK” butonuna basıyoruz ve özel komutumuz oluşturulmuş oldu.
Artık main dosyamızı “Build” ettikten sonra, “Tools+” sekmesinden “Hex Upload” tıkladığımız zaman, hex dosyamız işlemcimize otomatik olarak yüklenecek.