- posted
18 years ago
PIC- C Hitech
- Vote on answer
- posted
18 years ago
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:
- Dane dla eepromu inicjalizujesz np. tak: __EEPROM_DATA(0, 1, 2, 3, 4, 5, 6, 7);
- 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.
- Vote on answer
- posted
18 years ago
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