problem mit schreiben einer Powerup routine für c-compiler von hitec



  • Hallo, Ich möchte eine Powerup routine schreiben.
    Die routina selbst habe ich bereits in assembler.
    aber die einbindung im gesamt system bereitet mir gerade extreme schwierigkeiten.
    der compiler meldet immer folgenden fehler:
    Error [802] F:\@led-it-light\@Kunden\illumics\Taschenlampe\programmierung\taschenlampe\funtionierende programme\programm ohne sleep funktioniert\power ab\powerup.as; 8. ungültige Adresse hinter END Anweisung

    ich habe schon alles mögliche probiert aber leider gehts nicht.
    laut Hitec muss man nur eine datei mit dem namen Powerup.as schreiben die mit einer "goto start
    end Powerup" endet.
    beim compilierenzeigt mir das system den obigen fehler.
    [/code]
    der datei powerup.as
    processor 10F222

    global start, powerup
    powerup
    asm
    btfsc 3,7
    btfsc 6,3
    endasm
    goto start
    end powerup

    nachdem ich leider keine ahnung von c- habe brauche ich mal eine kleine erklärende hand zu diesem File.
    Der rest des Programms wird über eine c-Translator Flowcode4 erzeugt.
    zwar selbst für mich etwas umständlich könnte mann sicherlich optimieren aber für die aufgaben reicht es.
    Max

    ich hänge hier zur erklärung noch die dateui Sartup.as hin damit mann erkennen kann was ich eigentlich brauche.

    ; HI-TECH C Compiler for PIC10/12/16 MCUs V9.82
    	; Copyright (C) 1984-2011 HI-TECH Software
    	;Licensed for evaluation purposes only.
    	;This licence will expire on Thu, 11 Aug 2011
    
    	; Auto-generated runtime startup code for prelink stage.
    
    	;
    	; Compiler options:
    	;
    	; -otkl007.cof -mtkl007.map --summary=default --output=default \
    	; TKL007.p1 startup.obj --chip=10F222 -P --runtime=default \
    	; --opt=default -g --asmlist --errformat=Error   [%n] %f; %l.%c %s \
    	; --msgformat=Advisory[%n] %s --warnformat=Warning [%n] %f; %l.%c %s
    	;
    
    	processor	10F222
    
    	global	_main,start,_exit,reset_vec
    	fnroot	_main
    	psect	config,class=CONFIG,delta=2
    	psect	idloc,class=IDLOC,delta=2
    	psect	code,class=CODE,delta=2
    	psect	powerup,class=CODE,delta=2
    	psect	reset_vec,class=CODE,delta=2
    	psect	maintext,class=CODE,delta=2
    	C	set	0
    	Z	set	2
    	PCL	set	2
    	INDF	set	0
    
    	STATUS	equ	3
    	FSR	equ	4
    OSCCAL	equ	0x5
    
    	psect	reset_wrap,class=ENTRY,delta=2
    	psect	text,class=CODE,delta=2
    	psect	functab,class=ENTRY,delta=2
    	psect	init,class=ENTRY,delta=2
    	psect	cinit,class=ENTRY,delta=2
    	psect	end_init,class=ENTRY,delta=2
    	psect	clrtext,class=ENTRY,delta=2
    	psect	jmp_tab,class=ENTRY,delta=2
    	psect	strings,class=STRING,delta=2
    
    	psect	reset_vec,class=CODE,delta=2
    reset_vec:
    	ds 1	;oscillator constant would be pre-programmed here
    	psect	reset_wrap
    reset_wrap:
    	movwf	5		;calibrate oscillator
    	clrf FSR
    	; No powerup routine
    
    	psect	init
    start
    _exit
    	psect	end_init
    	global start_initialization
    	ljmp start_initialization	;jump to C runtime clear & initialization
    
    psect bank0,class=BANK0,space=1
    psect ram,class=RAM,space=1
    psect abs1,class=ABS1,space=1
    psect common,class=COMMON,space=1
    psect sfr0,class=SFR0,space=1
    
    	end	start
    

Anmelden zum Antworten