Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: IEN mit HighTec gnu166 Kategorie: Progr. Assembler, TaskingTools, OS (von norbert r - 10.12.2002 13:30)
Als Antwort auf IEN mit HighTec gnu166 von hannes - 10.12.2002 1:16

> hallo allerseits
>
> ich benutze den gnu compiler für C16x microcontroller von hightec mit dem beispiel zur c-programmierung von Eric Hospel (aus dem ASM bereich).
>
> alles funktioniert bestens, bis auf das einschalten der interrupts:
> SET_SFRBIT(ien)
> [ #define SET_SFRBIT(NAME)   __asm__ volatile ("bset "#NAME"") ]
> lässt das programm einfach anhalten(also wahrscheinlich abstürzen)
>
> selbiges gilt (irgendwie logischerweise) für SET_SFRBIT(psw.11)
> [psw.11 == ien]
>
> nicht aber für CLR_SFRBIT(ien)
> oder zB SET_SFRBIT(p1L.0) etc.
>
> ist an IEN irgendwas besonders? oder hat jemand eine idee was hier schief läuft?
>
> danke
> hannes
>


> PS:
> danke @ andre (und wer sonst noch so beteiligt ist/war) für die beste(wenn auch einzige ;) CC2 site.
>
>

hallo!

ich hatte mich auch erst kürzlich mit diesem problem beschäftigt.
ich wollte den rücksprung zum  C2-programm realisieren, aber offensichtlich
konnten nach(und während) dem ausführen der C-Routine keine interrupts
mehr ausgeführt werden. das system hing sich immer auf.
Ich fand heraus, dass der assemblercode der in der ctr0_167.s steht
dafür verantwortlich ist. Dort werden wahrscheinlich die interrupt-pointer gelöscht
(initialize dpps) .wenn alles bis auf den aufruf der C-Routine stehen lässt,
funktioniert es! dann braucht man die interrupts auch gar nicht erst ausschalten.

auÃ?erdem hab ich den aufruf der C-Routine so gestaltet, dass die interrupts nicht
"gestört" werden.so kann man auch ohne weiteres zurück springen.
zum C2-Programm springen kann

das steht jetzt bei mir in der crt0_167.s:

.text
start:
pop r1 @workaround für VM-Bug
  pop r1
jmps SEG:_main,SOF:_main

wenn man die main-funktion nun verlässt kommt man wieder in das c2-programm
jetzt kann man auch beliebig oft die interrupts aus und einschalten,ohne dass das
programm abstürzt!


    Antwort schreiben


Antworten:

Re: IEN mit HighTec gnu166 (von hannes - 10.12.2002 17:51)
    Re: IEN mit HighTec gnu166 (von norbert r - 10.12.2002 20:47)