Keil kurulum ve kullanımı hakkında tartışmalar

Başlatan bunalmis, 15 Ekim 2011, 14:51:51

ilhan_mkp

pcyi formatladım keil4.60 yeniden kurdum
st-link-v2 driverinide kurdum  hala eski versiyon diyo daha yeni versiyonu yok bunun sitesinde ne varsa kuruyom hala keil bana yokuş yapıyo  :'(

z

Aynı şeyden mi bahsediyoruz emin değilim. Keil, Stlink için bana da, eski versiyonu kullanıyorsun yenisini yüklermisin dedi. Hee dedim. Kendini yeniledi.

Makine internete bağlı değilse  bağla bir de öyle dene.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

pisayisi

#197
Bazan sanırım keil den firmware update yapılsada benzer sorun devam edebiliyor. Öncelikle update yapın stlinki, olmaz ise aşağıdaki linkten en alttan stlink driveri indirin,

http://www.st.com/internet/evalboard/product/251168.jsp

STLinkUSBDriver.dll dosyasını keili kurduğunuz dizinde \ARM\STLink alt dizinine atın. Bu altdizine ST-LinkUpgrade.exe dosyasını da atarak bu doosya üzerinden upgrade yapmayı deneyin...

Murat

ilhan_mkp

hocam sorunu çözdüm debug ve utulities altında st-link debugger seçtiğimiz yerleri  st-link deprecated version olarak değiştirdim
şu an debug yapabiliyorum sorunum çözüldü yardımcı olanlara çok ama çok teşekkür ederim.
bu vesileylen pcyide formatladım  ;D

subram

#199
keilda hata vermeye başladı.
Alıntı YapNo Algorithm found for: 08000000H - 080003ABH
Erase skipped!
bunu çözdüm ama bu seferde alttaki progremleri aynısını veriyor. Ne yaptıysam çıkamadım işin içinden?

Alıntı yapılan: camby - 24 Temmuz 2012, 18:58:53
Merhaba Arkadaşlar,

C , Keil ve ARM'da yeniyim , Başlıkları okuyorum. Fakat bu başlıkta çözümlerini bulamadığım sorunlarım var :

1 - Programın chip'e atılamaması sorunu vardı bunu 2 post yukarıdaki aykerme'nin söyledikleri ile aştım. Bunun chip'i belirttiğimiz halde oraya eklenmemiş olması ilginç , siz her seferinde bunu yapıyor musunuz acaba ben mi yanlış bir şey yaptım proje oluştururken ?

(Resim gizlendi görmek için tıklayın.)


1.2 - Benzer olarak ilk sayfalarda bunalmış hocanın verdiği dosyada ise Option Target1 kısmında ST-Link Debugger yerine ST-Link(Deprecated Version) seçili. Bu durumda da settings ile ayarlara girilemiyor. Bu dosya ile ( içinde wav. dosyası olan deneme dosyası) derleme sorunsuz yapılıyor fakat debug'a girmediğim sürece kodlar chip'in içine atılamıyor. Bu projeyi sorunsuz çalıştıranlar var sanırım bende neden olmuyor anlamadım.


2 - Option'dan sorunsuz bir şekilde kullandığım ST-Link Debugger ile derleme yapabiliyorum. Program olarak keil kullanım yazısının sonundaki kodları aynen kullandım. Program main kısmına girmiyor , fakat SystemInit altındaki kodlar sorunsuz işleniyor.

(Resim gizlendi görmek için tıklayın.)



Debug yaptığımda da durum aynı , SystemInit kısmındaki işlemleri adım adım çalıştırabiliyorum , son adımda da kit üzerindeki ledler yanıyor. Ardından yeni ilerleme olmuyor , program Run modundan çıkmadan aşağıdaki gibi takılıyor.

(Resim gizlendi görmek için tıklayın.)


Run modunda kaldığı sırada startup kodundaki 178. satırda kalıyor. Run modunu durdurup adım adım gitmek istediğimde de program 190. satırdan çıkmıyor.

Bu sorunları nasıl çözebilirim?




----------------------------------

Edit :

- Orjinal blinky dosyasının içene kod yazarak birşeyler yaptığımda sorunsuz çalışıyor.
http://www.elektronark.org  Türkiyede Elektronik Kültürünü Değiştirmeye Geliyoruz

ilhan_mkp

Alıntı yapılan: gerbay - 18 Eylül 2012, 19:22:31
startup_stm32f4xx.s  dosyanızın içinde FPU yu initialize etmeniz ya da keil ın proje ayarlarından FPU yu disable etmeniz gerekiyor

en iyisi 2 satır kod yazıp FPU yu initialize etmek;

startup_stm32f4xx.s dosyanızda muhtemelen kırmızı kısımlar yok, ilave edin düzelir..

; Reset handler
Reset_Handler    PROC
                 EXPORT  Reset_Handler             [WEAK]
        IMPORT  SystemInit
        IMPORT  __main

                 ;FPU settings
                 LDR     R0, =0xE000ED88           ; Enable CP10,CP11
                 LDR     R1,[R0]
                 ORR     R1,R1,#(0xF << 20)
                 STR     R1,[R0]


                 LDR     R0, =SystemInit
                 BLX     R0
                 LDR     R0, =__main
                 BX      R0
                 ENDP



gerbay hocam bu sorunun çözümünü bu msjda yazmıştı.

subram

hocam ne gariptir ki bende işe yaramadı bu yöntem.
http://www.elektronark.org  Türkiyede Elektronik Kültürünü Değiştirmeye Geliyoruz

ilhan_mkp

fpu keilden kapatilincada sorun kalmayacagina dair bir rivayet var ama bir deneyin ne olacak

subram

çözdüm hocam, şöyle yaptım

1)keilin örneklerinden çalışan startup dosyasını benim projeye kopyaladım
2)@gerbay hocamın verdiği kodu startup ekledim, sorun çözüldü.
http://www.elektronark.org  Türkiyede Elektronik Kültürünü Değiştirmeye Geliyoruz

camby

o dosyayı da KEIL klasorunun içinde bulunan ile değiştirirseniz her seferinde KEIL onu ekleyecektir projelere.

HexfeT

#205
Discovery kitim yeni geldi  ve forumdaki dersleri takip ederek çalışmaya başladım. Hazır örnek kodları yüklediğimde sorunsuz çalışmasına rağmen kendim proje oluşturduğumda sorunsuz derlenmesine rağmen "HardFault handler" da takılıp çalışmıyordu. Örnek proje ile kendi projemi aynı anda açıp ayarlar arasında ne fark var diye baktığımda yeni oluşturulan projede Configure flash tools/Target altındaki "Use Micro LIB" kutusunun işaretli olmadığını gördüm. İşaretleyip kodu yeniden derleyince sorun ortadan kalktı.


subram

Alıntı yapılan: camby - 20 Ocak 2013, 22:40:09
o dosyayı da KEIL klasorunun içinde bulunan ile değiştirirseniz her seferinde KEIL onu ekleyecektir projelere.
hallettim o işi ;)

bu şekilde debug yapabiliyor musunuz? startup dosyasında aşağıdaki kod olmadan.
  ;FPU settings
                 LDR     R0, =0xE000ED88           ; Enable CP10,CP11
                 LDR     R1,[R0]
                ORR     R1,R1,#(0xF << 20)
                STR     R1,[R0]
http://www.elektronark.org  Türkiyede Elektronik Kültürünü Değiştirmeye Geliyoruz

camby

Alıntı yapılan: subram - 20 Ocak 2013, 23:54:46
hallettim o işi ;)

bu şekilde debug yapabiliyor musunuz? startup dosyasında aşağıdaki kod olmadan.
  ;FPU settings
                 LDR     R0, =0xE000ED88           ; Enable CP10,CP11
                 LDR     R1,[R0]
                ORR     R1,R1,#(0xF << 20)
                STR     R1,[R0]



Bu şekilde FPU ayarları olmadan debug yapabiliyorum, Ancak :

ST lib dosyalarını kullanıyorum , system_init() , system_stm32f4xx.c altından çağırılıyor. System_init'in başlangıcı şu şekilde :

void SystemInit(void)
{
  /* FPU settings ------------------------------------------------------------*/
  #if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
    SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2));  /* set CP10 and CP11 Full Access */
  #endif


sanırım burada FPU ayarları yapılıyor. Hatta Gerbay hocamın gösterdiği kodların C hali.

Daha önceden ST LIB dosyalarını kullanmıyordum ama şimdi kullanıyorum.

Kullanmadığım programlarda da kitin blinky dosyası içindeki .s dosyası ile idare ediyordum.

Özet : Şu anki kombinasyon , orjinal startup.s dosyası ve , stlib System dosyası.

HexfeT

#208
Alıntı yapılan: subram - 20 Ocak 2013, 23:54:46
hallettim o işi ;)

bu şekilde debug yapabiliyor musunuz? startup dosyasında aşağıdaki kod olmadan.
  ;FPU settings
                 LDR     R0, =0xE000ED88           ; Enable CP10,CP11
                 LDR     R1,[R0]
                ORR     R1,R1,#(0xF << 20)
                STR     R1,[R0]


Startup dosyamda bu kod yok ve debug çalışıyor.

z

Bir ara sormuş ve yanlış hatırlamıyorsam ErsinErce cevaplamıştı.

Keilde işlemcimin RAM'ında istediğim adres aralığındaki verileri diske yazmak istiyorum.

Malesef cevabı bulamadım.

mesaj birleştirme:: 16 Mart 2013, 22:59:34

Neyse Keil help de index kısmına save yazınca çıktı.

Örneğin Ramın 0...100 aralığını diske ram.txt olarak yazmayı isteyelim.

Save ram.txt 0x20000000,0x20000100

Satırın başında ve sonunda ayıklanması gereken karakterleri unutmayın.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com