Gönderen Konu: XC8 değişken tanımlama problemi!!!  (Okunma sayısı 464 defa)

Çevrimdışı serdararikan

  • Profesyonel Üye
  • *****
  • İleti: 1275
XC8 değişken tanımlama problemi!!!
« : 10 Temmuz 2017, 04:17:15 »
XC8 ile örneğin 1000 elemanlı bir dizi tanımlamaya çalışıyorum.bu dizinin absolute adresli olmasını istiyorum.MPLAB dan CCI modunu aktif ettim.

unsigned char Dizi[1000] __at(0x100);

şeklinde diziyi tanımlıyorum.dizi benim istediğim adresten itibaren tanımlanıyor.buraya kadar sıkıntım yok.fakat xc8 kendi kullandığı bazı değişkenleri benim dizimi tanımladığım hafıza bloğu içerisinde tanımlıyor.böyle olunca dizi içerisinde benim bilmediğim ve kontrol edemediğim değişkenler yerleşiyor.ne yaptıysam bir türlü bir çözüm bulamadım.bu gibi bir sorunla karşılaşan oldu mu?

Çevrimdışı baran123

  • Profesyonel Üye
  • *****
  • İleti: 1925
Ynt: XC8 değişken tanımlama problemi!!!
« Yanıtla #1 : 10 Temmuz 2017, 08:33:14 »
Hocam birde şunu deneyin.

Kod: [Seç]
unsigned char Dizi[1000] @ 0x100; 
« Son Düzenleme: 10 Temmuz 2017, 08:34:39 Gönderen: baran123 »

Çevrimdışı mufitsozen

  • Profesyonel Üye
  • *****
  • İleti: 1464
  • mufitsozen@gmail.com
Ynt: XC8 değişken tanımlama problemi!!!
« Yanıtla #2 : 10 Temmuz 2017, 10:03:01 »
XC8 ile örneğin 1000 elemanlı bir dizi tanımlamaya çalışıyorum.bu dizinin absolute adresli olmasını istiyorum.MPLAB dan CCI modunu aktif ettim.

unsigned char Dizi[1000] __at(0x100);

şeklinde diziyi tanımlıyorum.dizi benim istediğim adresten itibaren tanımlanıyor.buraya kadar sıkıntım yok.fakat xc8 kendi kullandığı bazı değişkenleri benim dizimi tanımladığım hafıza bloğu içerisinde tanımlıyor.böyle olunca dizi içerisinde benim bilmediğim ve kontrol edemediğim değişkenler yerleşiyor.ne yaptıysam bir türlü bir çözüm bulamadım.bu gibi bir sorunla karşılaşan oldu mu?

MCU nedir?
Dünyanın en büyük sorunu, aptallar özgüven içindeyken akıllı insanların kuşkuyla dolu olmasıdır.

Çevrimdışı serdararikan

  • Profesyonel Üye
  • *****
  • İleti: 1275
Ynt: XC8 değişken tanımlama problemi!!!
« Yanıtla #3 : 10 Temmuz 2017, 11:13:49 »
18k46k22

@ ile de denedim.sonuç aynı.float kütüphanesi içindeki bir bit değerini benim tanımladığım dizi aralığına yerleştiriyor derleyici.bunu fark ettim

Çevrimdışı mufitsozen

  • Profesyonel Üye
  • *****
  • İleti: 1464
  • mufitsozen@gmail.com
Ynt: XC8 değişken tanımlama problemi!!!
« Yanıtla #4 : 10 Temmuz 2017, 11:47:59 »
18k46k22

@ ile de denedim.sonuç aynı.float kütüphanesi içindeki bir bit değerini benim tanımladığım dizi aralığına yerleştiriyor derleyici.bunu fark ettim

Datasheet'e bakinca 0x100-0x1ff arasinda GPR var.




Dünyanın en büyük sorunu, aptallar özgüven içindeyken akıllı insanların kuşkuyla dolu olmasıdır.

Çevrimdışı mufitsozen

  • Profesyonel Üye
  • *****
  • İleti: 1464
  • mufitsozen@gmail.com
Ynt: XC8 değişken tanımlama problemi!!!
« Yanıtla #5 : 10 Temmuz 2017, 11:49:31 »
sabit adresleri kullanmakdaki amaciniz nedir? Tam olarak ne yapmak istiyorsunuz?

derlediginiz programin MAP dosyasini koyabilirmisinz?
« Son Düzenleme: 10 Temmuz 2017, 11:51:07 Gönderen: mufitsozen »
Dünyanın en büyük sorunu, aptallar özgüven içindeyken akıllı insanların kuşkuyla dolu olmasıdır.

Çevrimdışı serdararikan

  • Profesyonel Üye
  • *****
  • İleti: 1275
Ynt: XC8 değişken tanımlama problemi!!!
« Yanıtla #6 : 10 Temmuz 2017, 12:44:47 »
0x100 adresini örnek olarak verdim. ben 0x200 olarak tanımlamaya çalışıyorum.fark ettiğim olay şu xc8 bit olarak tanımlanan değişkenler için bitvars1 bitvars2... gibi 1 byte lık değişkenler tanımlıyor.işin ilginç olan kısmı bu değişkenleri kafasına göre konumlandırıyor olması.bunu farkettikten sonra bit tipindeki değişkenleri kullanmaktan vazgeçtim fakat float kütüphesinde geri dönüş tipi bit olan birkaç fonksiyon var bunları kullandığım için benim dizimin içinde olacak şekilde bitvars1 adında 1 byte lık değişken konumlandırmış. bir türlü çözemedim olayı