Erfahrungsaustausch über die ICC Mailing Lists
Die ICC Mailing Lists sind ein Forum zum Erfahrungsaustausch zwischen Anwendern der ImageCraft Compilerprodukte. Die Sprache in diesem Forum ist Englisch.
Um an einer der ImageCraft Mailing Lists teilzunehmen, muß man sie zunächst abonnieren. Zu diesem Zweck - und zu allen anderen Zwecken, wie z.B. spätere Abbestellung - gibt es ein Webinterface. Die Benutzung ist dort im einzelnen beschrieben:
- icc-mot - für ICC08/ICC11/ICC12 User
- icc-avr - für ICCAVR/ICCtiny User
- icc-430 - für ICC430 User
- icc-m8c - für ICCM8C (Cypress Micro's PSoC) User
- icc-announce - Produtankündigungen/Updates (keine Diskussionsliste)
Programmiertip: Konstanten in separaten Speicherbereichen
Manchmal sollen Konstanten an einer speziellen Speicheradresse im EEPROM/Flash/ROM abgelegt werden. Um diese Konstanten vom restlichen Programmcode zu trennen, kann man ein zusätzliches Textsegment wie folgt definieren:
#pragma text:myflash
const int i = 5;
#pragma text:text
In den Compiler Options bestimmt man nun unter "Other Areas" den gewünschten Adreßbereich dieses Segments: -bmyflash:start.end
Programmiertip: Assemblerprogramme mit ICC
Natürlich kann man mit ICC auch reine Assemblerprogramme schreiben und lauffähig übersetzen. Sinnvoll wäre das z.B. bei Singlechip Anwendungen (Bootstrap Mode) im internen EEPROM des HC11E1 (max. 512 Byte!). Hier ein Beispielprogramm als Mustervorlage (ICC11):
; Blinken auf PORTA[6]
; --------------------
; Assembler Beispiel fuer ICC11 - Programm im EEPROM des HC11
; (Bootstrap Mode, RxD und TxD fuer Programmstart verbinden!)
; Achtung:
; Bei Options/Compiler/Linker "No Startup File" ankreuzen!
; (sonst sucht der Compiler nach dem Label _main)
;
PORTA = $1000
.area memory(abs)
.org $b600
loop: ldaa PORTA
oraa #$40
staa PORTA
bsr delay
ldaa PORTA
anda #$bf
staa PORTA
bsr delay
bra loop
delay: ldx #$C000
_dly1: dex
bne _dly1
rts
|