裸跑程序链接错误undefined reference to `__divsi3',怎么解决?
我编写了一个2440下面的PWM的裸跑测试程序,控制蜂鸣器,然后在链接时出现如下错误:
arm-linux-gcc -c -o pwm.o pwm.c
arm-linux-gcc -c -o main.o main.c
arm-linux-ld -Ttext 0x00000000 -o pwm.a head.o init.o serial.o pwm.o main.o
pwm.o(.text+0xe0): In function `Buzzer_Freq_Set':
: undefined reference to `__divsi3'
make: *** [pwm] Error 1
下面列出Buzzer_Freq_Set的代码:
void Buzzer_Freq_Set(U16 c)
{
//设置GPB0即TOUT0作为PWM输出
GPBCON &= ~3;
GPBCON |= 2;
TCFG0 &= ~0xff;
TCFG0 |= 15;
TCFG1 &= ~0xff;
TCFG1 |= 2;
TCNTB0 = (PCLK>>7)/c;
TCMPB0 = TCNTB0>>1; // 50%
//disable deadzone, auto-reload, inv-off, update TCNTB1&TCMPB1, start timer 1
TCON &= ~0x1f;
TCON |= 0xb; //clear manual update bit
TCON &= ~2; //clear manual update bit
}
如果把上面红色那行的c修改成具体的数值,就不会有这样的错误,请问在不修改c为具体数值时,怎么解决这个链接的错误。