Nasıl ogrenebilirim

Başlatan XX_CİHAN_XX, 22 Ekim 2006, 22:51:56

XX_CİHAN_XX

Arkadaşlar yaklaşık 5 senedir pıc kullanıyorum.zaman zaman daha yuksek hız ve işlem gerektiren projeler cıkıyor.Bu gibi durumlarda pıcın(en azından benım kullundıgım pıc serısının) yetersız oldugunu fark edıyorum.ust sevıye pıclere gecmektense farklı bır serı olan arm7 serisi mikrodenetleyicilere gecmeyi dusunuyorum.Fakat nasıl ogrenecegımı nerden baslıyacagımı bır turlu netlestıremedım.Bu konuda pıc teki kadar zengin bılgıd bulamadım.Bu seri hakkında dogru duzgun hıc bır bılgım yok.Bu serıyı ogrenmeye yenı baslıyacak bır arkadasınız olarak bir yol gosermenızı rica edicem.
Saygılar, sevgiler...
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

demovar

@XX_CİHAN_XX

öncelikle ARM mimarisi için Keil compiler kullanmanı tavsiye edebilirim, o kadar iyi ki, ARM, keil'ı satın aldı,

bunun dışında,
www.arm.com ve www.keil.com sitelerinde çok çeşitli ve harika örnekler var,
hatta bir tanesi USB mass storage device yapmayı bile en ince detayına kadar anlatıyordu,

ARM çok iyi bir seçim, zaten gelecekte endüstri standardı olacak diyorlar :)

kolay gelsin
________________________________________ çalışmalı, üretmeli, paylaşmalı

XX_CİHAN_XX

@demovar çok teşekkür ederim.Gerçekten cok guzel siteler.
Ancak bu işi ögrenebilmem için 2 site yeterli olmaz sanırım.Tavsiye edebileceğin bir kitap yada kurs var mı?Ben bu konu ile ilgili cok fazla bilgi bulamadım.Mesela sizler nasıl ogrendiniz , nasıl başladınız? bu anlamda tecrübelerinizi paylaşırsanız benım gıbı yenı baslıyacak bırcok arkadaş için çok faydalı olacaktır.İlginize çok teşekkür ederim.
Saygılarımla.
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

Analyzer

Selam,

Aslında başlangıç zor değil. Proteusta ARM7 çekirdekli LPC serisi var. Keil de zaten LPC serisine ağırlık vermiş durumda. Başlangıç olarak bir mesela LPC2104'ü seçebilirsin. Zaten uygun fiyatlı, gerçek ortama geçerken maddi sıkıntı yaratmaz. Proteus'ta ve Keil'in örnek kodlarını derleyerek Blink Led ile başlayabilirsin.
Yalnız şunu hatırlatmak isterim. ARM gibi basamak teknolojilere adapte olurken, ingilizce ve c şart. Bu ikisini halletmeden ilerlemek güç ne yazık ki.

Analyzer
Üşeniyorum, öyleyse yarın!

kurumahmut

PIC biliyorsan ARM da rahat öğrenirsin. Bu yaz stajda ARM işlemcilerle tanışma fırsatım oldu. MCB2130 kitini kullandım. Üzerinde Philips LPC2138 modeli var.

Sana Keil ve LPC2xxx serisinden başlamanı öneriyorum. (C ve ingilizce ön koşul) Bu konuda yararlanabileceğin harika bi kaynakta iingilizce olarak mevcut...

http://www.hitex.co.uk/arm/lpc2000book/

dan free olarak elde edebilirsin. Philips sitesinden MCB2130 kitini araştır. Devre şemasını orda bulacaksın. Keilde de araştır. Bilgiler bulacaksın.

Keil yazılımını forumdan bulabilirsin. Proteusta LPC serisi için deneme yapmıştım ama başarılı olamamıştım. Çünkü çok uğraşmamıştım. İnşallah sen başarılı olursun. İşlemcinin datasheetlerini de elde et. Onlarda da hoş bilgiler var.

E-Dergi nin ikinci sayısında ARM ile ilgili bir yazı yazılacak yetişirse. Orda da kitaptan alıntılarla hoş bilgiler verilecek. Ancak sende bu kitaptan halledebilirsin.

Sen başla, yardım eden bol olur......

demovar

arm core'lu işlemcileri üreten firmaların, mesela philips'in sitesinde baya iyi uygulamalar ve çok detaylı datasheet.ler var,

bunun dışında, aklıma geldide, proteusta lpc serisinden (philips) tdi core'lu (en temel arm core'u) modeller var, hatta GNU Chess (kaynak kodlu) ve uLinux (kaynak kodsuz ama devre bağlantıları bile yeni başlayanlar için çok öğretici) gibi iki süper uygulama var.

ancak, proteus'ta ARM simulasyonları yapmak istiyorsanız, ister keil altında, ister başka bir ortamda olsun, GNU compiler ile derlemek gerekiyor (yanılmıyorsam tabii :) )
keil'ın kendi oluşturduğu elf'i bırakın, hex'lerde bile proteus çalışmadı.
ama tabii, keil altında gnu compiler'ı tanıtıp, konfigure edebilirsiniz, ve keil ortamında kodu hazırlayıp simulasyona hazırlayabilirsiniz.

herkese hayırlı bayramlar
________________________________________ çalışmalı, üretmeli, paylaşmalı

Analyzer

Alıntı yapılan: "demovar"...ancak, proteus'ta ARM simulasyonları yapmak istiyorsanız, ister keil altında, ister başka bir ortamda olsun, GNU compiler ile derlemek gerekiyor (yanılmıyorsam tabii :) )
keil'ın kendi oluşturduğu elf'i bırakın, hex'lerde bile proteus çalışmadı.

Selam,

Keil kodları proteusta çalışıyor. Ancak 2.42'nin timer headerinde bir problem sözkonusu. Timer.h ile ilgili tüm tanımlar, fonksiyonları çıkarırsanız kodlar çalışıyor. Diğer türlü hareket yok. Kodları tam incelemedim ama register'ları başlatırken problem olduğunu düşünüyorum.

Analyzer
Üşeniyorum, öyleyse yarın!

demovar

@Analyzer;
güzel bir gözlem, iyi tespit etmişsin,
dediğini denedim ama şimdilik beceremedim, gerçi fazla da uğraşmadım,
malum bayram :)

teşekkürler
________________________________________ çalışmalı, üretmeli, paylaşmalı

XX_CİHAN_XX

ilgilenen herkese çok teşekkür ederim.
C öğrenmek sorun değilde ah o ingilizce yok mu :(
Arkadaşalar bir kitap yada kurs tavsiyeside beklemiştim açıkcası(malum ingilizce yerlerde netteen faydalanamıyoruz en azından şimdilik)
Yakında bir ingilizce kursuna başlamak istiyorum ama uzun zaman alacagı ıcın bir kitap yada arm serisini baz alan bir kurs bilen varsa işimi çok hızlandıracak(tabı eşzamanlı olarak ingilizce devam edecek o herzaman lazım)Bu anlamda yol gösterebilirseniz daha kısa surede daha fazla yol alabılırım diye dusunuyorum.Herkese tekrar teşekkürler iyi bayramlar.
Saygılarımla...
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

ise

startup.s  dosyasını iptal edip kendiniz registerleri yapılandırırsanız işiniz daha kolay olacaktır.. bazen sebebi belirsiz saçma sapan işler yaptığı gerçek.. bunların gidermenin en güzel yolu fonksiyonları kendimiz yazmamız işlemci üzzerine hazır bindirilmiş programlarla çözene kadar kendimiz yazmayı denemeliyiz.  bu şekilde yapmadığımız takdirde 2 sefer yanılgıya düşüyoruz.. interrupt ve timer işlemlerinde önce vic registeri yapılandırmanızı tavsiye ederim...
LPC XXXX   serisi için 
void init_VIC(void) 
{
    DWORD i = 0;
    DWORD *vect_addr, *vect_cntl;
   	
    VICIntEnClr = 0xffffffff;  // tüm interrrupt yetkileri  kapa 
    VICVectAddr = 0;          //  adresi sıfıra al  
    VICIntSelect = 0;          //  0 kısmı seç 

    for ( i = 0; i < VIC_SIZE; i++ )
    {
	vect_addr = (DWORD *)(VIC_BASE_ADDR + VECT_ADDR_INDEX + i*4);  // adres alanını belirle 
	vect_cntl = (DWORD *)(VIC_BASE_ADDR + VECT_CNTL_INDEX + i*4); // kontrol alanını belirle 
	*vect_addr = 0;	   // adresi sıfırla
	*vect_cntl = 0;    // kontrolü sıfırlar 
    }

    VICDefVectAddr = (DWORD)DefaultVICHandler;     
    return;
}