Для реализации моей задачи мне нужны математические функции такие как квадратный корень и всякие тангенсы-арктангенсы, однако у меня не получается их использовать.
$ msp430-elf-gcc -Os -mmcu=msp430f5529 -Xlinker -Map=firmware.map -lm -o firmware.elf sensors.c uart.c main.c i2c.c
/tmp/cccKoQwX.o: In function `sensors_poll':
sensors.c:(.text+0x306): undefined reference to `atan2'
collect2: error: ld returned 1 exit status
Как можно заметить, я не забыл указать опцию -lm компилятору. Также в исходнике присутствует #include <math.h> (а в math.h, которая идёт в комплекте к mspgcc есть определение atan2). Компилятор используется из этого пакета: https://aur.archlinux.org/packages/mspgcc-ti/ (у меня ArchLinux). Подобная ошибка возникает и при использовании других функций. Например, sqrt.
На сайте TI есть некая математическая библиотека для семейства MSP430x5xx и MSP430x5xx (то что мне нужно, потому что у меня ланчпад с MSP430F5529), но ссылка для скачивания ведёт на Code Composer Studio. Вероятно, эта математическая библиотека поставляется вместе с пропреритарным компилятором для MSP430, а я не хочу его использовать, потому что мне мало 16КБ кода бесплатной версии, а на платную нет денег. Да и не нужно же.
Итак, знатоки MSP430 (сама архитектура мне очень понравилась по сравнению с AVR, но при этом она проще для изучения, чем ARM, потому что не такая монструозная), что вы делаете, если вам нужна математика? Есть какие-то дополнительные опции компиляции? Или у вас есть на примете какая-нибудь сторонняя библиотека для математики, которую можно включить в свой проект?