EasyHID USB 18f2550 Similasyonda Fazla CPU Kullanımı

Başlatan ceyhun.topcuoglu, 05 Aralık 2014, 18:27:16

ceyhun.topcuoglu

İyi günler;

Daha yeni yeni USB haberleşme işine başladım uzun araştırmalarım ve denemelerimin sonunda HID ile haberleşmede karar kıldım ve EasyHID programı ile hazır bir usb protokolü oluşturarak sadece gönderilen ve gelen bilgileri işlemek gerekiyor.

İlk denemelerimi 18F4550 ile denedim, Analog okuma, DAC entegresi ile analog çıkışlar, dijital I/O okuma gönderme vs. işlemleri sorunsuz yapıyordum.
Bir de 18F2550 ile deneme yapmak istedim fakat simülasyonda Aşırı CPU kullanımı sorunu ortaya çıktı. Yine iletişim gerçekleşiyor istediğim bilgilerin ulaşmasında bir problem yok fakat aşırı CPU kullanıyor ve 2-3 kez simülasyonu kapatıp açınca Sanal Makina mavi ekran veriyor ve resetliyor.( Virtual USB gerektiği için 32 bit XP kurulu bir sanal makina kullanıyorum ).

Microcode Studio' da mevcut olan EasyHID Wizard ile oluşturduğum pic programında ( Pic Basic ) hiç bir değişiklik yapmadan hexi pice attığımda bile bu Fazla CPU sorunu beliriyor.

Resim :


Pic Programı :

' ************************************************************
' * Auto generated EasyHID file. PBP 2.60 and above          *
' ************************************************************

' include the HID descriptor
include "DESCUSBControl.bas"

DEFINE OSC 20
DEFINE LOADER_USED 1

trisb=%00000000 

USBBufferSizeMax   con 8  ' maximum buffer size
USBBufferSizeTX    con 8  ' input
USBBufferSizeRX    con 8  ' output

' the USB buffer...
USBBuffer        Var Byte[USBBufferSizeMax]
USBBufferCount   Var Byte

Din              VAR BYTE
Dout             VAR BYTE

' ************************************************************
' * main program loop - remember, you must keep the USB      *
' * connection alive with a call to USBService every couple  *
' * of milliseconds or so...                                 *
' ************************************************************
usbinit ' initialise USB...
ProgramStart:
   gosub DoUSBIn 
   
IF USBBUFFER[1]= 81 THEN
   DOUT=USBBUFFER[2]              'Bilgisayardan pic'e Dijital çıkış verisi
   if DOUT=10 then toggle portb.0
   if DOUT=20 then toggle portb.1
   if DOUT=30 then toggle portb.2
   if DOUT=40 then toggle portb.3
   if DOUT=50 then toggle portb.4
   if DOUT=60 then toggle portb.5
   if DOUT=70 then toggle portb.6
   if DOUT=80 then toggle portb.7
ENDIF

   
   DOUT=PORTB                                         
   usbbuffer[1]=82                     
   usbbuffer[2]=DOUT              'Pic'den bilgisayara dijital çıkış geri bildirim
   gosub DoUSBOut
   goto ProgramStart 
   

   

' ************************************************************
' * receive data from the USB bus                            *
' ************************************************************
DoUSBIn:
   USBBufferCount = USBBufferSizeRX              ' RX buffer size
   USBService                                    ' keep connection alive
   USBIn 1, USBBuffer, USBBufferCount, DoUSBIn   ' read data, if available
   return
   
' ************************************************************
' * wait for USB interface to attach                         *
' ************************************************************
DoUSBOut:
   USBBufferCount = USBBufferSizeTX              ' TX buffer size
   USBService                                    ' keep connection alive
   USBOut 1, USBBuffer, USBBufferCount, DoUSBOut ' if bus available, transmit data
   return


ceyhun.topcuoglu

Sorunun kaynağı çok büyük bir ihtimal Virtual USB.
Simülasyonu Durdurmadan önce Pic' e Reset atıyorum ve durduruyorum. Mavi ekran hatası olmuyor.
Fazla CPU kullanımı haberleşmede veya çalışmada hiçbir sorun teşkil etmiyor. ( Simülasyonda böyle Devreyi yapınca da bir sorun olacağını düşünmüyorum )
Programlama hatası olarak düşündüğüm için Pic Basic bölümünde açmıştım. Konu taşınabilir.

mesut25

arkadaşlar bu dosyayı ındırıp derleme yaptım mıcrocode studi artık çalışmıyor ne yaptıysam çalışan programım açılmıyor nasıl bırşey anlamadım sildim kurdum olmadı

mesut25

#3
acıl yardım pc yenı kurmaya başlamıştım çözümü bilen var mı  aynı anda iki kere açılıyor görev cubugunda görebılırsınız açılan program hata verıp kapatamıyorsun

nurim

Alıntı yapılan: mesut25 - 11 Mart 2015, 16:11:29
arkadaşlar bu dosyayı ındırıp derleme yaptım mıcrocode studi artık çalışmıyor ne yaptıysam çalışan programım açılmıyor nasıl bırşey anlamadım sildim kurdum olmadı

"Moderatöre rapor et" işlemini, yayınlanan devrelerin çalıştırılması ile ilgili olarak kullanmayınız."
Bu tür sorular için forum sayfalarınızı kullanınız.
Kolay Gelsin
nurim

mesut25

ben bunun bir virüs oldugu için uyarmak istedim programı  mahfetti

mesut25

#6
galiba virüs gibi bir şey bu

mesut25

#7
Alıntı yapılan: nurim - 12 Mart 2015, 01:04:26
"Moderatöre rapor et" işlemini, yayınlanan devrelerin çalıştırılması ile ilgili olarak kullanmayınız."
Bu tür sorular için forum sayfalarınızı kullanınız.

virüs oldugu için yada mıcrocode programı  çökertigi için yazdım

ceyhun.topcuoglu

Merhabalar
Sorunun kaynağı simülasyondan kaynaklanıyormuş. Devreyi kurdum ve sorunsuz çalıştırdım.

Alıntı yapılan: mesut25 - 12 Mart 2015, 10:40:06
virüs oldugu için yada mıcrocode programı  çökertigi için yazdım

Eski bir konuyu hortlatmak istemezdim fakat hakkımda kötü bir itham yapılmış. Eğer bir pbp dosyasına (Tamamen hex kodlarının sıralı dizilimi olarak basit bir dosya türü olan txt ile aynı mantıkda sadece uzantısı pbp olan dosyadan (Microcode studio dosyalarından bahsediyorum) virüs inject edecek kapasitede olsaydım emin ol onu bu yol ile yaymazdım.Ayrıca bu bir yardım konusu dosya paylaşımı değil. Virüs iddialarına gelince;
Hiçbir zaman VirüsTotal tarzı online scanner sitelerine güvenmem ve asla bunu bir referans olarak da paylaşmam. Ancak anubis isecleab veya malwr tarzı Online Binary scanner sitelerinin zararlı yazılım analiz sonuçlarını paylaşırım fakat bu dosya bir win32 dosyası olmadığı için buralarda analiz edemedim. Tek bir yol kalıyor HexWorkshop ile incelemek.Sende bu ithamda bulunmadan bahsettiğin pbp dosyasınıı HexWorkshop ile açıp incelersen herhangi bir yerinde MicroCodeStudio da gördüğün kodlardan farklı birşeyle karşılaşmazsın(Bunun için herhangi bir bilgiye gerek yok). Aksine ilk satırda dosyanın EasyHID tarafından MCS 2.60 için derlendiğini görebilirsin.

İlk satırdaki kod;
' * Auto generated EasyHID file. PBP 2.60 and above          *..'


Dosyayı .exe formatına çevirip olydbg ile de inceleyeyip zararlı kodların olmadığını gösterecektim ama dosyada tek bir satır win32 uygulamalarına ait bir kod bulunmadığı için olydbg'ye bile atamadım. Sen gelmiş burada bana virüslü dosya paylaşmışsın diyorsun. Lütfen yorunlarınızı silin veya aksini bana ispatlayın.

Buda tek çare olan Virüs Total sonucu.
https://www.virustotal.com/tr/file/c4b9fd2f5e16aaff8b040159e54467c378c6899bf49f73e1e36961ec520a7642/analysis/1438808713/

Powered by EzPortal