ARM Development boards

Başlatan dombilik, 17 Kasım 2010, 23:22:29

z

20 Kasım 2010, 18:54:20 #15 Son düzenlenme: 20 Kasım 2010, 19:09:56 bunalmis
Basit bir OS, ahim sahim bir olay değil. Stack yonetimi yapilabilen herhangi bir islemciye bile, biraz takla atilirsa task yonetimi yapilarak OS denilebilecek alt yapi kurulabilir.
Bunun icin ihtiyac olunanlar timer, stack uzerinde islem yetenegi ve ram. Eger islemcinin tasklar arasi senkronizasyonu saglayacak komut seti de varsa cok da fazla takla atmaya gerek kalmaz.

Cortex M3, multitasking yapacak guce ve yetenege sahip dolayisi ile kontrol uygulamalarinda kucuk capli OS ihtiyacimizi cozer. Iste burdaki kucuk kelimesi anahtar kelime olmali.

Dolayisi ile OSu tartismamiz gerektiginde sinirlari belirlemek gerekiyor.

TI Cortex M3 serisinden Stellaris ailesini cikarttigi halde birde Stera ailesini cikartti. Halbuki her iki aile de 32 Bit ARM tabanli islemci.

Iki daire cizip bunlari belli bir oranda kesicecek sekilde cakistiralim. Dairelerden birisi Cortex M3 islemciyi, digeri ise dogrudan ARM kodlari kosturan islemciyi gostersin.

Cakisan alan OS yetenegi olsun. Her iki islemci de de OS kurulabilyor. Fakat ARM islemci dogrudan ARM komutlari isletebildigi icin 32 bit performansda her sekilde Cortex M3 serisinden baskin cikiyor. OS un da ozunde hiz yatiyor. Multitasking islemleri 8051 tabanli bir islemciye yeterli ram ve rom alani ekleyerek de kazandirabiliriz.
ARM ailesinin asm komut setine bakinca Thumb yapisina gecince  nasil kisitlandigimiz yada Cortex A8 yada ARM9 yapisina cikinca nasil ferahladigimiz hemen goze carpiyor.

Gercek anlamda bir OSdan soz ederken  kucuk processleri i ayri tasklar haline hetirip kosturmak yerine buyuk processleri task haline getirmekten ve bunlari hizlica kosturmaktan sozediyorum.

Bir kac yilda bir PC leri yenilememizin ozunde guncel uygulamalarin ihtiyac duydugu  islemci gucunun yetersiz kalmasi yatmiyormu? Halbuki 80386 bile bu processleri yapma imkanina sahip.

Evet Cortex M3 ile OS kurulup tasklar kosturulabiliyor. Yapamaz denemez. Sizin de belirttiginiz gibi bir suru ornegi var.


CLR

Alıntı yapılan: gerbay - 20 Kasım 2010, 17:31:41
Alıntı yapılan: eemkutay - 20 Kasım 2010, 15:16:32
...
Arm cortex, OS kurmak için tasarlanmış bir işlemci değildir. Küçük microcontroller olarak kullanmak için tasarlanmışlardır. Burada ki küçüklük görecelidir.
...     


Hocam bu konuda yanılıyorsunuz, Cortex-M3 dokümanlarını dikkatle okursanız sırf context switching için kullanılması amacı ile core a tickTimer eklenmiştir.

http://www.arm.com/files/pdf/IntroToCortex-M3.pdf

dosyasının 7. sayfasına bakınız;

Alıntı
The NVIC also integrates a System Tick (SysTick) timer, which is a 24-bit count-down timer that
can be used to generate interrupts at regular time intervals, proving an ideal heartbeat to drive a
Real Time OS or other scheduled tasks.


Ben söylemiyorum, ARM kendisi söylüyor..

JLink i biliyorsunuz, üzerinde atmel in At91SAM7S64 işlemcisi var (ARM7). 64K flash ı var. JLink i üreten firma segger ve ticari bir ürün, aletin üzerinde RTOS kuşuyor  (http://www.segger.com/cms/embedded-software.html). Adamlar ARM7 üzerinde bile koşturuyorsa-ki ben size bir sürü ticari örnek verebilirim. Ben neden Cortex-M3 gibi daha güçlü bir işlemci üzerinde RTOS kuşturmayayım...

Konu başka yöne kayıyor gibi oldu ama bu da benim görüşlerim..


Merhaba,

Konuyu sen saptırıyorsun, cortex m3 üzerinde gerçek zamanlı OS çalıştırmaya kalkar gibi fikir beyan edip 32bitlik işlemcinin 256kB program bellek ve 48KB Ram'ini yetersiz buluyorsun üsteki yorumunda micro OS'lerden bahsediyorsun. Bu işlemci gerçek OS'ler için uygun değildir, kurabilirsin ama verim alamazsın sonuçta 72Mhz işlemci çünkü ama bu işlemci üzerinde micro OS, RTOS tarzı küçük OS'ler çalıştırabilirsin bununla da basit işlemler yapabilirsin.
PIC içinde bile OS türleri var ama gerçek bir OS değildir sadece zamanlama anlamında belirli programları çalıştırmak için kullanılabilir. Timer'ı olan her işlemci üzerinde kapasitesine ve hızına göre kısıtlı bir OS çalıştırabilirsin. STM32,LPC17xx,LPC13xx serisi cortex serileri gerçek OS uygulamaları için uygun değildir ama bu işlemciler içinde  OS çeşitleri vardır ama bu ram ve program bellek kapasitelerine uygun olarak.



 
Knowledge and Experience are Power

dombilik

Alıntı yapılan: teknikelektronikci - 20 Kasım 2010, 18:34:10
dombilik hocam
sizin maciniz hem yeni biryler ögrenip hem de isletim istemi rtos mu kosturmak ?
eger maddi bakimdan kendimi biraz daha sıkarım derseniz size fpga tavsiye edecem ondada rtos isletim sistemi kosturabilyiorsunuz c++/c  ve vhdl ile gelistirme yapyiorsunuz isterseniz size ufak uygun fiyatli kitde tavsiye ederim acikcasi ben de tam olarak bilmyiorum hangi durumda fpga hangi durumda arm9 7 veya pic32 gibi isletim sistemi calistirabilcek islemciler tercih edilmeli diye ama yeni bir seyler ögrenmek adina ve gelecek vaadeden bir sey icin ben nedense fpga derim


Hocam amacım OS yada RTOS la uğraşmak değil.Zaten o boyutta bilgi kapasitesine de sahip değilim.
Hele hele daha önceki mesajımda da belirttiğim gibi mikrokontrolörlerle ASM - BASIC bazında ve sadece PIC lerle
uğraşmış biri olarak ARM ve C dili bile bana tamamen yabancı (Şu an harıl harıl C çalışıyorum  :-[)..
Ben üst düzey uygulamalardan ziyade bir led yakıp söndürmek istiyorum :D.Bazı arkadaşlarım diyebilir 'amaç led yakıp söndürmekse PIC ile yada pekala NE555 ile yapabilirsin' diye.Ama ben bunu ARM ile yapmak istiyorum :(
Biliyorumki bu anlamda seçtiğim board bana çok fazla.Fakat çok uçuk fiyatlara kaçmadan alabileceğim ve genel amaçlı mikrokontrolör bazında yazılımlar yapıp deneyebileceğim,ileride de öğrendikçe LCD sini ve diğer birimlerini (SPI-CAN-NETWORK vb..) kullanabileceğim bir board alabilmekti amacım.
Sizler sağolun.Açdığım topicte ustalarımın yapmış olduğu kritikler ve genel açıklamaların her satırı bile benim için bir bilgi mahiyetinde.
Amatör bazda uğraşan biri olarak bu board bana önümüzdeki bir yıllık kalkınma planı dahilinde yetipte aratacak bile ;D
Bildiklerini kime miras bıraktın?kimseyemi? O zaman bildiklerinin ne önemi kalır. ******** /////////// ******** PROTON-ASM PROTEUS 7.4 SP3 EAGLE 5.40

teknikelektronikci

hayirlisi olsun diyeyim :) yinede senin bu durumuna ben fpga cpld tavsiye ediyorum yani vhdl dili :)
Ey Türk istikbalinin evlâdı! İşte, bu ahval ve şerâit içinde dahi, vazifen; Türk İstiklâl ve Cumhuriyetini kurtarmaktır! Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!

controller

Arkadaşlar işletim sisteminin gerçeği-sahtesi olmaz :)

İşletim sistemleri donanım gereksinimine göre kabaca ikiye ayrılır. MMU ve non-MMU.

Burada bahsi geçen gerçek-sahte işletim sistemi aslında MMU ve non-MMU işletim sistemleridir.

Gömülü işletim sistemleri genel olarak non-MMU grubuna girer. Ör: uclinux, RTOS ların çoğu.

MMU işletim sistemleride Embedded Linux, WinCE den başlayıp masaüstü bilgisayarlarda kullandığımız windows'lara kadar gelir.

ARM7TDMI işlemcilerde (lpc2000 serisi vb.) MMU bulunmaz. uclinux, non-MMU RTOS lar çalıştırılabilir.

Cortex M3 lerde MMU bazı modellerde olabilir, net bir bilgim yok.

ARM920T (s3c2440 vb) MMU vardır. ARM portu olan herhangi bir işletim sistemi çalıştırılabilir. Ör, linux, wince vb.


Hesabım OG tarafından haksız bir şekilde pasif yapılmıştır.

emrahmrcn

MMU : Hafıza Yönetim Birimi adı verilen bir yapıdır. Bu yapı işletim sisteminde kernel adı verilen ve işletim sisteminin temel fonksiyonlarını yerine getiren programın kullandığı yapı olup; diğer programların kernelin kaynaklarına ulaşmasını önlerler
Benim yaradılışımda bir ayrıcalık varsa o da TÜRK olmamdır. M.K ATATÜRK

controller

Alıntı yapılan: gerbay - 24 Kasım 2010, 03:27:02
Kardeş burda sözü geçen RTOS kavramı..  sen birşeyler yazmışsın ama şimdi ben desem ki, RTOS lar 2 ye ayrılır;
- Hard Real Time OS lar
- Soft Real Time OS lar

hadi şimdi burdan buyur..



Yani??? Buradan birşeymi çıkarmam gerekiyor anlamadım. RTOS ların kaça ayrıldığı devlet sırrı değil, bizde biliyoruz.


Alıntı
Bu arada, RT-Linux Soft Real Time işletim sistemleridir. WinCE yi lafa katmaya bile gerek yok..


WinCE yi lafa katmaya gerek yok derken WinCE nin realtime olmadığını anlatmaya çalışıyorsan, WinCE realtime işletim sistemidir.

Alıntı

Bu arada RT-Linux ile vxWorks ü kapıştırdım. RT-Linux 3 GHz dual-core cpu da çalışıyordu, vxWorks de 1267 Mhz powerPC (single core) işlemcide çalışıyordu..
RT-Linux çalışan makinada compact-pci io kartı vardı, vxWorks çalışan boardada aynı io kartının (aynı chipler var üzerinde) pmc modül olanını taktım (pmc de PCI bus zaten); RT-Linux, vxWorks ün yakınına bile yaklaşamadı.. Temel test hedeflerim, interrupt ların handle edilme süreleri ve kendi yazdığım yazılımın (her iki taraf için de aynı kod derlendi) real time veri işleme performansıydı..



Güzel çalışma, tebrik ederim.

Alıntı
Hadi, gerçeği sahtesi demeyelim de soft realtime - hard realtime diyelim ya da..  "gerçeği" dediğimizin belli bazı standartlara uygun "modern bir rtos" olduğunu söyleyelim


Hangi standartlar?

Alıntı
bu arada MMU sadece bir özelliktir..


Elbetteki bir özellik, başka ne olmasını bekliyordun?

Hesabım OG tarafından haksız bir şekilde pasif yapılmıştır.

controller

WinCE hard realtime işletim sistemidir.
Hesabım OG tarafından haksız bir şekilde pasif yapılmıştır.

tbayraktar

Arkadaşlar bence tartışmak gereksiz.  Konu ARM olduğuna göre bence tek bir fonksiyonu olan bir board yerine, ileriye dönük olarak düşünüp Linux, winCE gibi sistemleri de çalıştırabilecek uygun fiyatlı bir board olması gerekir. FirenlyArM2440 ta bu işi görecektir.  Bugün -benim işim olduğu için söylüyorum- high end ultrasonografi cihazları bile windows ve linux kullanıyor. Parası çok olan her development boardan alır zaten, parası olmayan da  hangisini alsam diye araştırır.

dombilik

Bu arada linkini verdiğim board Çin den çıkıp Türkiye ye girdi.
Bu hafta içinde elime geçeceğini tahmin ediyorum.
Bildiklerini kime miras bıraktın?kimseyemi? O zaman bildiklerinin ne önemi kalır. ******** /////////// ******** PROTON-ASM PROTEUS 7.4 SP3 EAGLE 5.40

faltun

Geçen yıl NXP ARM Cortex-M3 bordumuzun üzerinde iki ayrı RTOS'u değerlendirmiştik. VxWorks ve ThreadX. VxWorks'u zaten bazı lib'lerini çıkararak (MMU'u da çıkarmıştık) zar zor 512K'lik flasımıza sığdırdık. ThreadX 8K flash 2K RAM harcamıştı. Sonra birtakım performans denemeleri yapmıştık interrupt latency, contex switching gibi bazı değerlerde ThreadX VxWorks'e 30 katın üzerinde fark atmıştı. Sonuç olarak ARM Cortex-M3 ün üzerinde RTOS peki ala koşturulabilir ama RTOS'u dikkatli seçmek lazım, yoksa kendi uygulamamıza RAM, ROM, CPU kalmayabilir.

muhittin_kaplan

mysql bedava gerbay hocam, sirke hesabı

faltun

Temelde optimizasyon olayı VxWorks, QNX gibi RTOS'lar microKernel yapısına sahip, ThreadX&RTX&uVision gibi RTOS'lar ise pikoKernel yapısına sahip. Dolayısıyla VxWorks ve ThreadX karşılaştırması aslında elma&armut karşılaştırmasıydı. Ama VxWorks temsilcileri bizi de değerlendirin diye baskı kurdular bizde kıramadık ;)

faltun

Yanlış hatırlamıyorsam VxWorks 6.3-yada 4 idi. BSP ve UART driver'ini hazır vermişlerdi.

pisayisi

Ben de stm32 ler için özellikle micrium ucos buna bağlu ucgui grafik arabirim tasarımı ile yapılmış ürünler çok gördüm. Daha az oranda segger emwin embos kernel tercih ediliyor. Threadx hiç çalışmadım bahsettiğim os ler den avantajlı mı bilmiyorum???
Murat