Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => ARM => Konuyu başlatan: yamak - 22 Kasım 2011, 13:36:17

Başlık: Android ve ARM hakkında
Gönderen: yamak - 22 Kasım 2011, 13:36:17
Arkadaşlar kafamı karıştıran bi konu var.
Mesela HTC nin bir telefonun da TI ın ARM çekirdekli bi mikrodenetleyicisi var Samsung un da bi telefonun samsung un ARM çekirdekli bir mikrodenetleyicisi var.Şimdi bu iki telefona da android yüklü fakat her iki mikrodenetleyicinin de komut seti farklı nasıl oluyo da android her ikisinde sorunsuz çalışıyo. Ya da her iki mikrodenetleyicinin de komut seti aynı mı?
Başlık: Ynt: Android ve ARM hakkında
Gönderen: z - 22 Kasım 2011, 13:45:14
İkisi de aynı seriden ARM işlemci ise komut setleri aynıdır.

Fakat bunun önemi yok.

C de yazdığınız programı herhangi bir işlemci için derleyebilirsiniz. Yeterki doğrudan donanıma hükmeden kod satırları kullanmayın.

Başlık: Ynt: Android ve ARM hakkında
Gönderen: yamak - 22 Kasım 2011, 14:39:58
C de yazdığınız programı herhangi bir işlemci için derleyebilirsiniz. Yeterki doğrudan donanıma hükmeden kod satırları kullanmayın.
Evet hocam haklısınız. Ama her firma kendine özgü çevre birimleri ekliyo mikrodenetleyicilerine ve bu çevre birimlerine ait register isimleri farklı oluyo. Bu bir sorun teşkil etmez mi? Ya da bir işletim sisteminin kernel i yazılırken ya da bir driver yazılırken bu register isimleri kullanılmıyo mu?
Başlık: Ynt: Android ve ARM hakkında
Gönderen: z - 22 Kasım 2011, 14:57:06
Programı katman katman yazarsın.  En üst katman senin yazdığın program olur. Ara katman, en alt donanım katmanını çağırır ve yüksek seviyeli fonksiyonları içerir.

Mesela HDD erişimi için en alt katman, HDD donanımına ait registerler üzerinden oku, yaz, formatla gibi çok düşük seviyeli fonksiyonları içerir.

Ara katman yazılımında örneğin verilen sektörden okuma yada yazma yapan fonksiyonlar olur. Bu fonskiyonlar donanıma doğrudan değil de en alt katman fonksiyonlarını çağırarak yazılır.  Ara katman Fat32 gibi çok daha yüksek seviyeli HDD rutinlerini içerir.

En üst katmanda senin uygulama programın olur.

İşlemci değiştirdiğinde sadece en alttaki donanıma erişen katmanı değiştirmen yeterli olur.

Ana mantık böyle.

Eğer donanıma erişen kodları da asıl uygulama kodların arasına serpiştirirsen bu durumda işlemci değiştimi herşeyi sil baştan değiştirmen gerekir.
Başlık: Ynt: Android ve ARM hakkında
Gönderen: MC_Skywalker - 22 Kasım 2011, 15:10:43
Piyasadaki tüm telefonlar ve tabletler ARM Cortex A9 çekirdeğini içeren CPU kullanır. Fakat Çin çakmaları ARM11 kullanmaktalar. (Bu arada neden hala  Cortex A15 çekirdeğini kullanmadıklarını anlayamadım.)

HTC nin diğer telefonlardan farklı olmasının sebebi "Sense" adını verdikleri bir özelliği Android kernel'i içine entegre etmeleri.  Diğer markalarında benzer ekstra eklentileri oluyor. HTC Qualcomm firmasının ARM Cortex A9 core CPU sunu kullanmakta.

Nasıl NXP, Ti ile  ST MCU larının donanım farkı var ise telefon üreticilerinin kullandığı CPU larda da değişklikler oluyor fakat Core aynı.

Örnek verecek olursak;
Nvidia'nın Tegra ailesi CPU içinde özel olarak Ge Force GPU bulunmakta. Diğer firmalar ya ARM firmasının Mali GPU çekrideğini ekleyerek kullanmakta yada başka başka ek özellikler. Özel donanıma erişen kodlar olunca taşınırılık ve ortadan kalkmakta.

Başlık: Ynt: Android ve ARM hakkında
Gönderen: mufitsozen - 22 Kasım 2011, 15:26:02
ARM CORTEX M serisi ureticilerin ortak yazilim arabirim standardi olan CMSIS'e uygun yazilan yazilimlar herhangi bir ureticinin herhangi bir ARM COrtex M tipi islemcisinden (baska bir ureticinin) baska bir islemcisine gecerken bir abstraction layer saglarlar. Boylece kullandiginiz compiler ve/veya ARM Cortex ureticisi ve/veya mcudan bagimsiz yazilim gelistirmeniz mumkun olabilir. Hatta bunun DSPyide iceren kisimlari vardir.

Daha fazla bilgi icin  http://www.arm.com/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php

Başlık: Ynt: Android ve ARM hakkında
Gönderen: Erol YILMAZ - 22 Kasım 2011, 15:39:18
Hatta Qualcomm da Hakan isimli bir mühendisimiz çalışıyor...

http://www.qualcomm.com/careers/profiles/employee/hakan-i
Başlık: Ynt: Android ve ARM hakkında
Gönderen: MC_Skywalker - 22 Kasım 2011, 15:44:11
http://www.arm.com/products/processors/cortex-a/index.php

Telefon ve tabletlerde vb. kullanılan Cortex-A serisinde CMSIS yok diye biliyorum. acaba yanılıyormuyum.

Alıntı Yap
ARM and Thumb ISA for ensuring binary compatibility
Thumb-2 for optimal blend of code density and performance
NEON™ / DSP extensions for advanced DSP and media performance
VFP for high-performance single and double-precision floating point
Jazelle®-DBX and RCT support

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/kiAiGCDqBW8y3K.html
Başlık: Ynt: Android ve ARM hakkında
Gönderen: CoşkuN - 22 Kasım 2011, 16:27:35
Android Dalvik adı verilen bir Java sanal makinası üzerinden çalışıyor. Dolayısıyla bu sanal makinanın port edildiği bütün işlemciler üzerinde de çalışabiliyor...
http://en.wikipedia.org/wiki/Dalvik_(software)

http://en.wikipedia.org/wiki/Java_Virtual_Machine
Başlık: Ynt: Android ve ARM hakkında
Gönderen: SpeedyX - 22 Kasım 2011, 16:56:45
2009 da beagleboard a android yükleyip videosunu çekmiştim.

http://www.youtube.com/watch?v=Hy846QDOpIY

İşlemciye göre derleyip çalıştırıyorsunuz, anahtar cümle bu.
Başlık: Ynt: Android ve ARM hakkında
Gönderen: yamak - 22 Kasım 2011, 17:42:20
Alıntı yapılan: SpeedyX - 22 Kasım 2011, 16:56:45
2009 da beagleboard a android yükleyip videosunu çekmiştim.

http://www.youtube.com/watch?v=Hy846QDOpIY

İşlemciye göre derleyip çalıştırıyorsunuz, anahtar cümle bu.
Böyle olduğunu bilmiyodum. Peki ARM 64 bitlik işlemci çıkaracak deniliyo. Yine bu işlemciyi firmalara pazarlayıp o firmalar bu işlemcilerle mcu mu yapacak yoksa direkt kendi başına intel amd gibi bilgisayar piyasasına mı girecek?
Başlık: Ynt: Android ve ARM hakkında
Gönderen: Sdttn - 22 Kasım 2011, 20:18:45
Alıntı yapılan: CoşkuN - 22 Kasım 2011, 16:27:35
Android Dalvik adı verilen bir Java sanal makinası üzerinden çalışıyor. Dolayısıyla bu sanal makinanın port edildiği bütün işlemciler üzerinde de çalışabiliyor...
http://en.wikipedia.org/wiki/Dalvik_(software)

http://en.wikipedia.org/wiki/Java_Virtual_Machine

Port edilmek ne demek?
Sanal makinenin işlemciye göre yazılıp (düzenlenip) derlenmesi gibi bir şey mi? Android os üzerinde hiç bir düzenlemeye gerek yok mu?