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) |