C++ ile ISA slot yada PCI slot kontrolu

Başlatan XX_CİHAN_XX, 13 Temmuz 2006, 12:09:56

XX_CİHAN_XX

Arkadaşlar C++ veya bu ıs ıcın uygun baska bır dil ile ISA slotata veya PCI slotta bulunan bir I/O kartını kontrol edebılırmıyız (mümkünse C++ ile) Böyle bir kontrol için örnek gösterebileceğiniz bir kaynak veya bilgi varsa çok sevinirm. 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.

z

Normalde ISA yada PCI busa erişim son derece kolaydır.

C ile

outportb(adr,data);
dat=inportb(adr);

yada C içinde yada yalın asm ile

herhangi bir registere yazmak için

mov dx,port_adr
out dx,al


yada herhangi bir register içeriğini okumak için

mov dx,port_adr
in al,dx

Ancak, protected modda bu komutlar yasaklı komutlardır ve işletim sisteminin sadece kendisi kullanılabilir.  Dolayısı ile port erişiminde işletim sistemi ile sizin yazılımınız arasında aracı olacak özel bir dll yada sürücüye ihtiyacınız var.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

XX_CİHAN_XX

Hocam ozaman sanırım dos ortamında kullanılabılır.Windows ortamında işletim sistemi izin vermiyorsa Qbasic gibi dos ortamında olusturulacak programlama ile doğrudan erişim mümkün olabilr diye düşündüm.Doğrumudur?
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.

z

Win 98 de dahil olmak üzere altta kalan işletim sistemlerinde yukarıda verdiğim komutlarla PC içinde at koşturabilirsiniz.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

HAKKITANIR

bunalmis,
Demişki ;

Ancak, protected modda bu komutlar yasaklı komutlardır ve işletim sisteminin sadece kendisi kullanılabilir. Dolayısı ile port erişiminde işletim sistemi ile sizin yazılımınız arasında aracı olacak özel bir dll yada sürücüye ihtiyacınız var.

Ben burada yanlış değilsem yazılan PCI bus kontrol komutlarıyla PCI slottaki kartın kullanılabilmesi için ekstra bir yazılım gerektiğini anlıyorum.
Bu XP den önce kullanılan C programlarını şimdi XP altında kullanmaya
çalıştığımızda  ortaya çıkıyor.XP NT tabanlı olduğu için bunu yapıyor.Port güvenliği üst noktada tutuluyor.
Günümüzdeki XP altında çalışan ve XP işletim sistemi varken yazılan C programlarında böyle bir sorun yok ilgili başlık dosyasını veya sistem using alanını kullanarak bu problem çözülüyor.
Derleyici yinede hata veriyorsa C kodlarının yazıldığı (PCI bus'ı kontrol için) editörün içindeki birtakım ayarlamalarla ekstra bir driver yazılıma ihtiyaç duyulmadan sorun halloluyor.İster console aplication isterse windows form larıyla çalışın.

bunalmis 'in yazdığı C ile PCI bus kontrol komutlarıda PCI bus'ın ilk ortaya çıktığı yıllardan beri C programlarında kullanılıyor.Buna ANSI C ve TurboC de dahil.

Burada olay PCI slota takılacak kartta bitiyor.Böyle bir kart tasarlayıp-imal edip kullanan varmı?Mesele bu.Biz PCI bus'ı istediğimiz kadar C ile kontrol edelim ortada bizim yaptığımız bir kart yoksa neye yarar.Mevcut kartların zaten driver'i üstünde geliyor vede kullanımları basit oluyor.Ama fiyatları çok yüksek.Bir de fiyatından ziyade benim işimi görmüyorlar.Daha çok Endüstriyel otomasyon için PLC ye benzer bir şey oluyorlar.

Ben 1 aydır PCI I/O kart tasarlamayı bilen varmı yardımlaşalım diye habire forma mesaj atıyorum.Bir Allah'ın kuluda çıkıp varbe hadi yapalım demiyor.Mesajı okuyan istemediğin kadar çok ama karşı cevap yazan bir tek kişi bile yok.Tamam ben kimseyi eleştirmek gibi bir konumda değilim ama böyle bir yere varamayız.Mesajları okuyan geçiyor.Cevap arama......!

NOT:bunalmis'in PCI bus kontrol komutları kullanılmakla beraber PCI bus'ta birde IRQ dediğimiz (dışsal interrupt kesme komutlarıda olması gerekiyor) onları araştırıyorum.Ulaştığımda forma eklerim.

Saygılarımla.