Hi-Tech Değişken Tanımlama Problemi.

Başlatan mihri, 20 Mayıs 2010, 21:45:45

mihri

Merhaba.

Hi-Tech'te tanımladığım int tipindeki değişkenler derleyici tarafından yok sayılıyor. Derleyici hata ya da uyarı vermeden derliyor fakat değişkenle bir işlem yapmaya çalıştığımda hiçbir işlem yapmıyor. Böyle bir problemle karşılaşan oldumu daha önce? Disassembly penceresinden aldığım görüntüde "asd" değişkeninin içeriğinin arttırılması gerekiyor ama bu işlemi yapan bir kod yok.

"Eppur si muove!"

mihri

Gül gibi CCS varken ne diye Hi-Tech ile uğraşıyorum ki bende.  :)
"Eppur si muove!"

z

Sorunun cevabi bu mu bilmiyorum.

Bazi akilli derleyiciler programda laf olsun diye tanimlanmis uzerinde islem yapilsa da hic bir yerden kullanimaylan degiskenleri  kaldirip atarak optimizasyon yapiyor.

Belki  Hi-Tech de akillidir.

Anlamasi kolay, yok edilen degiskenin icerigini portlardan birinden disari vermeyi dene.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Erol YILMAZ

@mihri,
Hi-tech in en son versiyonlarını hiç aydınlık görmüyorum.
Haberin olsun :)

Bir eski versiyon ile dene...

orhanc

Bu resim yerine asıl kodunu koysan da incelesek daha faydalı olur ?
i'm doing nothing... Giddy Up  http://www.drorhan.com

PROTECH_

Alıntı yapılan: bunalmis - 21 Mayıs 2010, 13:29:20
kullanimaylan degiskenleri  kaldirip atarak optimizasyon yapiyor.

Belki  Hi-Tech de akillidir.


hocam orda zaten işlem yapmış, 
mihri hocam mplab ide kullanıyor sanırım. hi-tech i mplab ile kullanınca problemli oluyor en azından ben kullandığım süre içerisinde hep böle saçma sapan hatalar il karşılaştım.
bazen bakıyorsun #define direktiflerini algılamıyor  bazen değişkenleri vs...

ama mplab yerine hitechin idesini kullananlardan bi şikayet duymadım bu güne kadar
Multi-Core ,RTX,ThreadX, FreeRTOS, MODBUS  RTOS - Electronic-Hardware -- BERLIN

z

Alıntı YapHocam orda zaten işlem yapmış. 

Hayır demek istediğim öyle değil.

Diyelimki A diye bir değişken tanımladın. Ardından A=0, A=A+1 vs işlemler yaptın fakat programın hiç bir yerinde A yı alıp ta bir yerde kullanmadın.

Bu durumda A değişkeni ve üzerinde yapılan işlemlerin bulunduğu satırlar derleyici tarafından kaldırılıp atılıyor.

H-Tech bunu yapabiliyormu bilmiyorum. Delphi yapıyor.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

XX_CİHAN_XX

Evet aynen @bunalmis hocamın dediği gibi oluyor aynı şey benimde başıma geldi.
çözüm için ya sözkonusu değişkeni volatile olarak tanımlayarak o değişken için optimizasyonu devre dışı bırakacaksınız
yada laf olsun diye başka bir değişkene atama yaparak değişkenin yok sayılmayacak bir değişken olduğunu derleyiciye bildireceksiniz.
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.

orhanc

#8
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en535448

Hitechin derleyicisinin o tarz  özellikleri varmış

Omniscient Code Generation:

Optimizes the size of each pointer variable in your code based on its usage
Reduces overhead required for interrupt context switching
Removes unused functions and variables
Automatically handles memory banking without requiring special qualifiers
Automatically analyzes user assembly and object code files
Eliminates the need for many non-standard C qualifiers and compiler options
Automatically detects and implements printf features required by program and eliminates unused features
Omniscient Code Generation™ is available in HI-TECH C® PRO compilers for PIC10/12/16/18/32 MCUs. A HI-TECH C Standard compiler for dsPIC® DSCs and PIC24 MCUs is also currently available, with OCG optimizations features to be implemented by the third-quarter of 2009.

Other HI-TECH C Compiler Features:

Integrates into MPLAB® IDE and fully compatible with all Microchip debuggers and emulators
Integrates into Eclipse™-based IDE, HI-TIDE™
Fully ANSI-compliant
Includes Library source - for standard libraries and sample code for I/O drivers
Includes macro assembler, linker, preprocessor, and one-step driver
Runs on Windows, Linux and Mac OS X

http://www.htsoft.com/news/070309_Whitepaper-OmniscientCodeGeneration_FINAL.pdf
i'm doing nothing... Giddy Up  http://www.drorhan.com