PIC- C Hitech

Jul 18, 2005 2 Replies

Czy kto¶ wie w jaki sposób mo¿na umie¶ciæ okre¶lon± sta³± pod okreslonym adresem w przestrzeni adresowej procesora. Konkretnie chodzi mi o procesory PIC i kompilator Hitech. Zalezy mi szczególnie na umieszczeniu okreslonej warto¶ci w pamieci danych EEPROM oraz ustawieniu konfiguracji PIC-a w czasie programowania plikiem hex (bez recznego ustawiania w programie obs³ugujacym programator). W innych kompilatorach np. CCS-C sa specjalne dyrektywy do tego celu.


Pozdrawiam Adam



Nie możesz ustalić adresu poszczególnych zmiennych, możesz natomiast zmieniać adresy sekcji w czasie linkowania. Domyślnie zainicjalizowane dane eeprom (makro __EEPROM_DATA()) lądują w sekcji eeprom_data i możesz kazać umieścić jej linkerowi po jakimś wybranym adresem w pliku wynikowym. Jeśli teraz programator potraktuje dane znajdujące się powyżej adresów pamięci programu jako dane dla eeprom to wszystko powinno być zautomatyzowane. Wszystko masz opisane w dokumentacji kompilatora:

  1. Dane dla eepromu inicjalizujesz np. tak: __EEPROM_DATA(0, 1, 2, 3, 4, 5, 6, 7);
  2. A przesunięcie sekcji robisz przy pomocy parametru Psect linkera, np: picl.exe -O -12F629 -ASMLIST -Maaa.map aaa.c -L-Peeprom_data=2110h

IC-prog dla procesora 12f629 dane od adresu 2100h interpretuje jako dane dla eepromu więc w tym przypadku dane wylądują w eepromie od adresu 10h.

No nie tylko IC-prog, każdy (normalny) program wyśle te dane do EE jak będą siedzieć pod tym adresem (12F, 16F), dla 18F jest to adres 0xf00000

sword

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required