Осваиваю PIC32, общее впечатление хорошее - микроконтроллер мощный. Одна из основных задач PIC32 в данном проекте - цифровая обработка сигналов, в частности расчет среднеквадртичного значения.
Вопрос в использовании стандартных фунций предлагаемых в С32, а именно вычисления суммы квадратов mips_vec_sum_squares32. Эта функция возвращает 32-битное значение типа INT, причем похоже, что только старшую половину 64 битного регистра умножителя-накопителя. В результате если операнды, возводимые в квдрат, небольшие по значению, то результат теряется. Если операнды путем сдвига перед выполнением функции приводить к 32 битному значению, то и в этом случае будет потеря точности. Например, при обработке 24 битных данных их квадрат будет 48-битным, а функция возвращает, как уже говорилось, только 32 битное значение, а если из него взять квадратный корень то останется всего то 16 битное значение. Что делать? Разбираться в системе команд MIPS не хочется - думаю что всю часть проекта вполне удастся реализовать на Си.