我遇到了一个非常奇怪的情况。每次尝试编译我的arm项目(LPC2378,codesourcery arm-none-eabi-gcc-4.5.1),在链接时总是出现相同的错误。
/media/data/Projects/arm/uart/main.c:39: undefined reference to `__aeabi_uidiv'
/media/data/Projects/arm/uart/main.c:40: undefined reference to `__aeabi_uidiv'
违规代码如下所示:
U0DLL = ((((PLLCFG & 0x7FFF) + 1) * F_OSC) / ((((PLLCFG & (0xFF << 16)) >> 16) + 1) * ((CCLKCFG & 0xFF) + 1) * 8 * BAUD * 1)) % 256;
U0DLM = ((((PLLCFG & 0x7FFF) + 1) * F_OSC) / ((((PLLCFG & (0xFF << 16)) >> 16) + 1) * ((CCLKCFG & 0xFF) + 1) * 8 * BAUD * 1)) / 256;
我搜索了一下,发现这个问题可能是由于没有使用LD的lgcc和lc选项造成的。我已经解决了这个问题,但错误仍然存在。
完整的项目可以在我的github库中找到。
如果有人能帮忙解决这个问题,将不胜感激。谢谢。
$(LD) -o main.out startup.o target.o fio.o irq.o main.o $(LDFLAGS)
。 - Piotr Praszmo