Hi J.C.
This is usually a command line problem. Did you compile specifying one
-mmcu= option, and link with another? You have to be consistent so both
compile and link know whether the target has a hardware multiplier.
Regards,
Steve
J.C. Wren wrote:
Missing library function? I see it in the grep, but perhaps it's not the .a
file, I dunno. This is the CVS pull from Wednesday, with a repull of
msp430-libc from today (and nothing appears to have changed).
unsigned int timerToneToFreq (int f)
{
return ((int) (((long) f * 40000) / 11719));
}
timer.o(.text+0x42c): In function `timerToneToFreq':
/home/work/utility/analog/timer.c:296: undefined reference to `__umulsi3hw'
unsigned int timerToneToFreq (int f)
{
40e: 0b 12 push r11 ;
410: 0a 12 push r10 ;
412: 09 12 push r9 ;
414: 08 12 push r8 ;
return ((int) (((long) f * 40000) / 11719));
416: 0a 4f mov r15, r10 ;
418: 0b 4a mov r10, r11 ;
41a: 0b 5b rla r11 ;
41c: 0b 7b subc r11, r11 ;
41e: 3b e3 inv r11 ;
420: 3c 40 40 9c mov #-25536,r12 ;#0x9c40
424: 0d 43 clr r13 ;
426: 02 12 push r2 ;
428: 32 c2 dint
42a: b0 12 00 00 call #0 ;#0x0000
42c: R_MSP430_16_BYTE __umulsi3hw
42e: 32 41 pop r2 ;
430: 0c 4e mov r14, r12 ;
432: 0d 4f mov r15, r13 ;
434: 3a 40 c7 2d mov #11719, r10 ;#0x2dc7
438: 0b 43 clr r11 ;
43a: b0 12 00 00 call #0 ;#0x0000
43c: R_MSP430_16_BYTE __divmodsi4
}
43e: 0f 4c mov r12, r15 ;
440: 38 41 pop r8 ;
442: 39 41 pop r9 ;
444: 3a 41 pop r10 ;
446: 3b 41 pop r11 ;
448: 30 41 ret
--John