reg*_*odo 6 c gcc arm makefile
我的情况非常奇怪.每次我尝试编译我的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'
Run Code Online (Sandbox Code Playgroud)
违规代码如下所示:
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;
Run Code Online (Sandbox Code Playgroud)
我已经四处寻找,这可能是由AFAICT引起的,而不是使用LD的lgcc和lc选项.我已经解决了这个问题,但仍然存在错误.
完整的项目可以在我的github仓库找到.
如果有人能提供帮助,那将会受到极大的欢迎.干杯.
Gre*_*ill 12
ARM系列CPU没有本机整数除法指令.因此,需要通过库函数来实现除法.GCC知道这一点,并创建(在您的情况下)__aeabi_uidiv(对于unsigned int除法)的引用.
您需要链接包含此功能的相应运行时支持库.