You're Right! I nicely prototyped the function in its header file. I only forgot to include the header file in the src file of the caller..
I'm sorry for wasting your time :)))) greets, Tjerk. -----Oorspronkelijk bericht----- Van: mspgcc-users-ad...@lists.sourceforge.net [mailto:mspgcc-users-ad...@lists.sourceforge.net]namens Dmitry Verzonden: maandag 8 december 2003 18:24 Aan: mspgcc-users@lists.sourceforge.net Onderwerp: Re: [Mspgcc-users] Faulty code looks like you're missing a function prototype which says that cpu_demand is dword. However, if you then compare 'demand' against zero after this call, the result assembly after call instruction does the right thing. cheers, ~d On Monday 08 December 2003 19:19, Tjerk Hofmeijer wrote: > Hello, > > I think I have found a bug in mspgcc: > > I'm using Windows XP > I'm using prebuilt installer msp430-toolchain-win32-20030210.exe > I use a MSP430F149 > I compile every c file with the following rule : > > %.o: %.c > msp430-gcc -g -mmcu=msp430x149 -O3 -c -I./include -o $@ $< > > > dword is defined as follows: > typedef unsigned long int dword; > > > this is the code for cpu_demand (it doesn't do anything but the > generated code is correct) > > dword cpu_demand(dword t, word taskcount, OS_Task_Specification *spec) > { > word i; > dword sum=0,tmp; > sum=0x12345678; > return (dword) sum; > } > > 000069fe <cpu_demand>: > 69fe: 3e 40 78 56 mov #22136, r14 ;#0x5678 > 6a02: 3f 40 34 12 mov #4660, r15 ;#0x1234 > 6a06: 30 41 ret > > > demand is a global variable defined as: > dword demand; > > and its location is: > 0000066c g O .bss 00000004 demand > > > What I want is to execute the following line of code: > demand=cpu_demand((dword) SHELL_PERIOD,1,(OS_Task_Specification > *)taskspec); > > This results in the following code: > > 8768: 3c 40 86 86 mov #-31098,r12 ;#0x8686 > 876c: 1d 43 mov #1, r13 ;subst r3 with As==01 > 876e: 3e 40 20 03 mov #800, r14 ;#0x0320 > 8772: 0f 43 clr r15 ; > 8774: b0 12 fe 69 call #27134 ;#0x69fe > 8778: 82 4f 6c 06 mov r15, &0x066c ; > 877c: 92 42 6c 06 6e 06 mov &0x066c,&0x066e ;src addr 0x066c > 8782: 92 52 6e 06 6e 06 rla &0x066e ; > 8788: 92 72 6e 06 6e 06 subc &0x066e,&0x066e ;src addr 0x066e > 878e: b2 e3 6e 06 xor #-1, &0x066e ;subst r3 with As==11 > > > > Since the global defined var demand resides at 0x066c > I expect that with the following prototype: > > extern dword cpu_demand(dword t, word taskcount, > OS_Task_Specification *spec); > > the value of r14 (lsw) is written at 0x066c and the value of r15 (msw) > at 0x066e > This however not the case (see code) > > If I use the global var demand afterwards the value it contains is > 0000:msw instead of msw:lsw > > Maybe I'm doing something realy stupid.... > > regards, > Tjerk Hofmeijer > t.j.hofmei...@cs.utwente.nl > > > > > > ------------------------------------------------------- > This SF.net email is sponsored by: IBM Linux Tutorials. > Become an expert in LINUX or just sharpen your skills. Sign up for IBM's > Free Linux Tutorials. Learn everything from the bash shell to sys admin. > Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click > _______________________________________________ > Mspgcc-users mailing list > Mspgcc-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/mspgcc-users -- /***************************************************************** ("`-''-/").___..--''"`-._ (\ Dimmy the Wild UA1ACZ `6_ 6 ) `-. ( ).`-.__.`) State Polytechnical Univ. (_Y_.)' ._ ) `._ `. ``-..-' Radio-Physics Departament _..`--'_..-_/ /--'_.' ,' Saint Petersburg, Russia (il),-'' (li),' ((!.-' +7 (812) 5403923, 5585314 *****************************************************************/ ------------------------------------------------------- This SF.net email is sponsored by: IBM Linux Tutorials. Become an expert in LINUX or just sharpen your skills. Sign up for IBM's Free Linux Tutorials. Learn everything from the bash shell to sys admin. Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click _______________________________________________ Mspgcc-users mailing list Mspgcc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mspgcc-users