Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => ARM => Konuyu başlatan: catalyst - 03 Mart 2018, 23:52:05

Başlık: STM8S başlangıç
Gönderen: catalyst - 03 Mart 2018, 23:52:05
Merhabalar. Elimde STM8S eval board bulunmakta. Hangi derleyiciyi kullanarak başlamam daha kolay olur ve hangisi daha kullanışlıdır. Çok yeniyim. Yardımcı olabilir misiniz?
Başlık: Ynt: STM8S başlangıç
Gönderen: a.zorba - 04 Mart 2018, 08:36:35
iar ile standart kütüphanesi ile başlaman en kolay olur.
standart kütüphanes : http://www.st.com/en/embedded-software/stsw-stm8069.html
iar :   https://www.iar.com/iar-embedded-workbench/partners/stmicroelectronics/
sana kalan stm kütüphanesini iar a import edmen . Konusu forum da vardı .
Başlık: Ynt: STM8S başlangıç
Gönderen: catalyst - 04 Mart 2018, 21:53:52
Hocam peki IAR yerine Cosmic C kullansak daha mı zor olur? Bazı yerlerde kodlar GPIO_... şeklinde devam etmekte bazılarında PA_ODR ... şeklinde gidiyor. Ben GPIO kütüphanesini kullanarak programlamak istiyorum çünkü daha basit anlıyorum kodları inceleyerek. Yardımcı olabilir misiniz ?
Başlık: Ynt: STM8S başlangıç
Gönderen: Okan AKÇA - 05 Mart 2018, 11:02:55
forumda stm8 yazı dizisi mevcut
Başlık: Ynt: STM8S başlangıç
Gönderen: devrecii - 05 Mart 2018, 14:30:10
Arkadaşlar öğrenecekseniz assembly öğrenin C da yazarsanız bu muazzam çiplere haksızlık etmiş olursunuz.

stm8 in şahane  asm opcodeleri vardır.  Zaten kendi derleyicisi de var.

Ben stm8 öğrendim öğreneli stm32 leri mecbur olmadıkça kullanmıyorum.

Ayrıca stm8 16bit registerleri vardır 8bit işlemci değildir.
Başlık: Ynt: STM8S başlangıç
Gönderen: apsis - 05 Mart 2018, 15:30:50
Alıntı YapAyrıca stm8 16bit registerleri vardır 8bit işlemci değildir.
http://www.st.com/en/microcontrollers/stm8s103f3.html (http://www.st.com/en/microcontrollers/stm8s103f3.html)
Adamlar 8 bit yazmış ama :)
Başlık: Ynt: STM8S başlangıç
Gönderen: quarko - 05 Mart 2018, 16:03:36
STM8 8bit bir mikrodenetleyicidir. Bir mikrodenetleyicinin kaç bit olduğu DATA BUS hattının kaç bit olduğu ile ilgilidir.
Başlık: Ynt: STM8S başlangıç
Gönderen: catalyst - 05 Mart 2018, 16:21:54

Hangi derleyiciyi, nasıl kullanabilirim bana yardımcı olabilir misiniz? Veya konu linki varsa onu buraya koyabilir misiniz konu linki de bulamadım.
Başlık: Ynt: STM8S başlangıç
Gönderen: devrecii - 05 Mart 2018, 16:40:51
Hayır arkadaşlar arada derede kalmış bir mcu.

And, or, xor haricinde bütün opcodeler 16 bit yapılabiliyor, 2 tane 16 bit registeri mevcut  compare, toplama çıkarma adresleme bu registerlerle yapılabiliyor, hafıza adreslemesi  zaten 16bit.



Başlık: Ynt: STM8S başlangıç
Gönderen: Okan AKÇA - 05 Mart 2018, 19:43:38
Yukarıdaki mesajda yazdik ama yinede birdaha paylaşalım linki

https://www.picproje.org/index.php?topic=43359.0

Başlık: Ynt: STM8S başlangıç
Gönderen: MC_Skywalker - 05 Mart 2018, 20:23:53
Arada kalmış bir MCU değildir. 8 bir bir MCU dur.

PIC MCu larda 12bit 14bit op kode olması onun 8bit MCU olduğu gerçeğini değiştirmez hatta cpu örneği verecek olursak Z80 CPU da da 16bir registerler var ve 16bit işlem yapılmasına hatta adres veriyolu 16bit olması onun 16bit yada orada olduğunu göstermez kelime yanı DATA bus genişliği kaç bit olduğunu gösteri.

Ayrıca STM8 serisi ARM çekirdeği deği STM in kendi çekirdeğidir. ARM hiçbir zaman 8bit çekirdek tasarlamamıştır.
Başlık: Ynt: STM8S başlangıç
Gönderen: MrDarK - 06 Mart 2018, 11:42:48
Elektronikte herşey NET'dir arkadaşlar. Arada derede kalan birşey olmaz. Bunu hepimiz biliyoruz. O yüzden bu tarz teknik olmayan yorumlara sadece saygı duyalım :) Kişinin kendi görüşüdür. Dünyanın düz olduğunu düşünen insanlarda hala var biliyoruz.

8Bitlik bu MCU için Cosmic ve ST Devoloper'da tercih edilebilir. Cosmic son hamlesinde derleyiciyi komple free hale getirdi. IAR tavsiyem olur ama cosmic de free olması açısından tercih edilebilir. 10 cent'lere STM8S003 ürünleri olduğunu biliyoruz. STM8 serilerinin programlaması, kütüphaneleri ve içerdiği donanımların fazlalığı uygulama yazmayı kolaylaştırıyor. ARM'den önceki geçiş açısından epey faydalı olmuştu bana.
Başlık: Ynt: STM8S başlangıç
Gönderen: devrecii - 06 Mart 2018, 15:58:45
Tamam 8 bit olsun ,peki 16bit komutları, registerleri, yok mu sayacağız.

Tutulmayan St7 lerden farkı 16bit komut seti eklenmesidir bu nedenle stm8 ler
tuttu, Pic de de yok 16bit işlem hakkı, şimdi bunlar eşittir diyebilirmiyiz?

Sanki data bus adsress bus dışarıda. Adam bütün komutları 16bit yapsa clocku
artırıp 16bit diye satsa, anlayacaksınız sanki 8 bit olduğunu.

16bit komutlar çok değerlidir. C veya yüksek seviye dillerde program yazarken
farketmemiş olabilirsiniz (tabi kodunuz yavaş çalışınca anlarsınız)
ama asm de bu çok değerli bi özelliktir.

Stm32 lerde asm ile kod yazmanın hiçbir anlamı yoktur, ama st8 lerde düşük
hız ve düşük hafıza nedeni ile asm de kod yazmak iyi şecenek olacaktır.Neyse ne yapıyorsanı yapın.

Başlık: Ynt: STM8S başlangıç
Gönderen: Zoroaster - 06 Mart 2018, 16:57:51
TI'in 16 bitlik DSC cipleri 16x16 carpma islemi sonucunda 32 bit deger uretir ve bunu 32 bitlik ozel bir registerde tutar.
DSC 16 bit olmasina ragmen ACC 32 bittir. Toplama, cikarma ve carpma islemlerinde avantaj saglar. Ayni cip lojik islemlerde 16 bit ile sinirli oldugundan cipimize 32 bit diyemeyiz.

Gene TI'in bazi 16 bit DSP ciplerinde cip 16 bit olmasina ragmen akumulatorun  gardiyan gorevi yapan 2 biti daha vardir. Yani ACC register 16 degil 18 bittir.

ASM ASM dir ve her islemcide en hizli kosacak kod parcaciklarinin yaziminin tek ama tek secenegidir. 32 bit STM32 islemcide de oyledir  8 bit islemcilerde de oyledir.
Başlık: Ynt: STM8S başlangıç
Gönderen: Zoroaster - 06 Mart 2018, 17:18:28
Bir cipin saf kan 16 bit olabilmesi icin tek bir komutla 16 bit veriyi ACC icine cekebilmesi lazim.
Eger 16 bit veriyi 2 adet H ve L seklinde 8 bit olarak ACC icine cekerseniz bu cipe saf kan 16 bit diyemeyiz.
Evet 16 bittir ama saf kan 16 bit degildir. Bu haliyle bile 16 bit aritmetik lojik islem yapabilir ama saf kan 16 bit degildir.

32 Bit islemci arayisimda TMS320F28x serisinden begenip kitini de aldigim DSC,  32 bit verileri Accumulatore 16, 16 olmak uzere iki hamlede yukluyordu. Sirf bu yuzden yonumu STM32'ye cevirdim. (Bana gore STM32 de safkan 32 degil)
Başlık: Ynt: STM8S başlangıç
Gönderen: bulut_01 - 06 Mart 2018, 18:06:35
Safkan arıyosanız pic32xx serisi..  :D
Başlık: Ynt: STM8S başlangıç
Gönderen: Yuunus - 06 Mart 2018, 18:14:50
Stm32 nin 32 bit registerlari yok mu, bir seferde 32 bit islem yapiyor biliyorduk, neden safkan 32 degil, aritmetik islemlerde mi alicengiz var?
Başlık: Ynt: STM8S başlangıç
Gönderen: Zoroaster - 06 Mart 2018, 18:28:11
Registerlere tek cirpida 32 Bit immediate deger yukleyemiyor/ 32bit immediate deger ile lojik/aritmetik isleme tabii tutamiyorsun. (Pseudo code ile romdan immediate deger yukluyorsun ama kabak tadi veriyor)

Register icerigi ile memory icerigini isleme tabii tutamiyorsun.

Risc islemcilerin boyle/benzeri eksiklikleri var. STM'lerin Advanced Risc Machine (ARM) olusu nedeniyle risc bana gore risk dir. Bu yuzden bana gore saf kan degil.

Saf kan olacaksa 80X86 turevlerini kullanmak gerek. (Gerci 32 bit immediate degerleri 20 yil onceki pentiumlarda da yukleyemiyorduk galiba)

Başlık: Ynt: STM8S başlangıç
Gönderen: devrecii - 06 Mart 2018, 19:29:30
Alıntı yapılan: Zoroaster - 06 Mart 2018, 18:28:11
Registerlere tek cirpida 32 Bit immediate deger yukleyemiyor/ 32bit immediate deger ile lojik/aritmetik isleme tabii tutamiyorsun. (Pseudo code ile romdan immediate deger yukluyorsun ama kabak tadi veriyor)

Register icerigi ile memory icerigini isleme tabii tutamiyorsun.

Risc islemcilerin boyle/benzeri eksiklikleri var. STM'lerin Advanced Risc Machine (ARM) olusu nedeniyle risc bana gore risk dir. Bu yuzden bana gore saf kan degil.

Saf kan olacaksa 80X86 turevlerini kullanmak gerek. (Gerci 32 bit immediate degerleri 20 yil onceki pentiumlarda da yukleyemiyorduk galiba)




İşte bu yazdıklarınız nedeni ile ARM de asm yazmak işkence gibi oluyor c de inline yapayım diyorsun hata üstüne hata mesajı . Stm8 böyle değil bi iki örnek vereyim


  LDW X,#3554    ;;;  x registerine 3354 yükle
  LDW Y,1000      ;;   y registerine 1000 nolu hafızanın içindeki sayıyı yükle
  ADDW  X,1000   ;;   x e 1000 nolu hafızadaki sayıyı topla
   
  sevdiğim bazı komutları

  btjt 1000,6,__label  ;;    1000 nolu hafızanın 6.biti 1 ise labele atla
  bres 1000,3   ;;   1000 nolu hafızanın 3. bitini 0 yap



Alıntı Yap(Gerci 32 bit immediate degerleri 20 yil onceki pentiumlarda da yukleyemiyorduk galiba)

Yok hocam nerde intel mimarisi , sırf düşük enerji tüketimi nedeniyle aldı yürüdü ARM kim ne derse desin kötü bi işlemcidir.

mov eax,65465465   ;;;registere yükle sayıyı
Add [12788555],1145574   ;;;;direk hafızadaki değeri sayıyla topla
add [5545454],eax        ;;;; eax reğisterini hafıza ile topla

bunlar intel


Benim yıllar önce yaptığım bir çalışma,,  intel kodları   256byte asm  ve msdos 3d grafik oluşturma

http://www.pouet.net/prod.php?which=54490


Bu ise dünyada insan zekasının ulaşacağı en yüksek seviye incelemenizi tavsiye ederim kodları var

http://www.pouet.net/prod.php?which=53816


Başlık: Ynt: STM8S başlangıç
Gönderen: bulut_01 - 08 Mart 2018, 14:56:55
Bülent abi tam senin dişine göre safkan 32 bit mcu  :D
İnfineon SAK-TC1736-128F80HL