Hi, Rolf and All, There are no BUGs in SOS, you just use illegal compiler options. For proper running SOS the compiler should use optimizations. Here are extracts from the MSP-GCC docs:
r4 - frame pointer. This can be used by the compiler, when va_args function call being performed. When no such call required and optimization is turned on, this register is eliminated by stack pointer register. r5 - argument pointer. This can be used by the compiler, when long arg list call being performed. It refers to the stack position before function call. Normally, when optimization is turned on, this register usage is eliminated and arg list accessed via stack pointer register. When the optimization is ON r4 and r5 are not used, I have mailed to you a makefile that solves your problem. Check your mail. All the best ! Oleg. P.S. Sorry for the little offtopic. ----- Original Message ----- From: "Gebhardt, Rolf" <[email protected]> To: <[email protected]> Sent: Tuesday, February 11, 2003 4:05 PM Subject: [Mspgcc-users] registers in the SOS > Hi all > > Is there anyone, who has some experience with the nice SOS from Oleg Skydan? > If yes, could you tell me, why I can't use any registers in a task or > interrupt routine?! What's the problem? Have you any idea? > > > --> in the Task, at the beginning of the endless loop: > > for( ;; ) > { > > Test = 0x0001; mov #1, &0x0204 > ShiftLeft = 2; mov #2, &0x0206 > Test = Test << ShiftLeft; mov &0x0204,r15 > mov &0x0206,0(r4) <-- in r4 is the > value 0x0 ?! > mov @r4, r14 > cmp #0, r14 > jz $+8 > rla r15 > dec r14 > jnz $-4 > mov r15, &0x0204 > ShiftLeft = Test; mov &0x0204,&0x0206 > > ... > > Best regards > Rolf > > > ------------------------------------------------------- > This SF.NET email is sponsored by: > SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See! > http://www.vasoftware.com > _______________________________________________ > Mspgcc-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/mspgcc-users >
