2016-08-05 3 views
0

Ich schrieb eine Barebone-Progran-Vorlage in XC8 (1.37), die ich verwende, um neue GLCD-Funktionen für die 18F-Familie zu entwickeln und zu testen. Die Programmierung erfolgt über ein PICkit3. Da ich den Code mehrmals schnell umprogrammieren muss, ist es wirklich wichtig, dass die Programmierung so schnell wie möglich ist. Tipically, ist die Codegröße um 2K und es dauert weniger als 10 Sekunden zu programmieren, Everiything ist gut, bis ich eine Schriftart Tabelle verwenden müssen, wie folgt definiert:XC8 erstellt Fonttabellen von oben ROM

const char font8[] = {.... 

Jetzt, mit nur $ 400 Bytes hinzugefügt, die Compiler platzieren Sie die Tabelle am Ende des ROM und die Programmierung von 64K Speicher dauert mehr als 1 Minute.
Gibt es eine Möglichkeit, dies zu vermeiden?

Ich habe versucht, den Speicherbereich in den MPLABX-Optionen manuell zu begrenzen, aber das ist lästig und ein wenig unsicher (manchmal wird ein Teil des Codes abgeschnitten).

Antwort

0

Vor einiger Zeit musste ich einen Code für die Emissionsprüfung schreiben, wo ich Daten zwischen extremen Enden des RAM kopieren musste. Dazu musste ich die genauen Speicheradressen angeben. Sie können auch das Konstrukt der C-Erweiterung __at() verwenden. http://ww1.microchip.com/downloads/en/DeviceDoc/50002053F.pdf#page=27

int scanMode __at(0x200); 
const char keys[] __at(123) = { ’r’, ’s’, ’u’, ’d’}; 
int modify(int x) __at(0x1000) { 
    return x * 2 + 3; 
} 
Verwandte Themen