Всем доброго времени суток!
Просьба подсказать по следующему вопросу:
Пишу драйвер PCI устройства для arm-xscale-linux Версия ядра 2.6.20
В драйвере реализуеться некий алгоритм содержащий в том числе функции работающие с float
Например:
static const float scale=16.2688;
void cc_fd(int chan, float *Fd, float *ifd)
{
long fd;
float tmp;
tmp = (*Fd) * scale + (*ifd);
fd = (long)tmp;
*ifd = (float)(tmp-fd);
reg_write(WIRG_FD_CODE(chan),fd);
}
На этапе сборки ядра с модулем имею следующий вывод
drivers/built-in.o: In function `сс_fd':
bik12.c:(.text+0xac9fc): undefined reference to `__mulsf3'
bik12.c:(.text+0xaca04): undefined reference to `__addsf3'
bik12.c:(.text+0xaca0c): undefined reference to `__fixsfsi'
bik12.c:(.text+0xaca14): undefined reference to `__floatsisf'
bik12.c:(.text+0xaca20): undefined reference to `__subsf3'
make: *** [.tmp_vmlinux1] Ошибка 1
Насколько я понимаю компановщик не находит реализацию функций работающих с float. Поддержка операций с плавующей точкой в ядре включена (NWFPE Enabled)
Буду благодарен за совет в какую сторону копать чтоб с этим разобраться. Спасибо!