Новичок
Регистрация: 30.01.2012
Сообщений: 4
Репутация: 10
![]() |
Подскажите, кто сможет.
Работаю с МК C8051F120. Появились задачи, требующие выполнение сложного математического алгоритма за примерно 1 милисекунду. А это до сотни операций умножения/деления с плав. запятой и десятки тригонометрических операций. Пишу программы на С51. (Переходить на ассемблер - легче застрелиться))) МК разогнан до 100МГц. На текущий момент компилятор Keil обеспечивает мне при такой скорости (а это максимум для Silicon!) выполнение операций умножения/деления от 3 до 5 микросек. А тригонометрические - до 50 микросекунд!!!!! Это катастрофа для меня. (((( Включение мат.акселератора не помогает - время выполнения скомпелированных операторов Си (* / sin cos) остается то же. Может кто что посоветует? (кроме как дуло к виску))))) Спасибо, Александр. ////PS/// Может есть какие МК помощнее Silicon-а? (С реально мощной математикой) |
||
Оценка
|
Новичок
Регистрация: 06.10.2011
Сообщений: 6
Репутация: 10
![]() |
Подпрограммы компилятора и так написаны на ассемблере, поэтому особого
выигрыша не будет. Разве, что за счет выбрасывания излишнего универсализма и вызова функций четко согласованных с заданной разрядностью-точностью. Но это может 20-30%. Для сравнения цифр - видимо, самые быстрые алгоритмы на регистрах сдвига выполняют в целых: умножение 16х16=32бита за 200 тактов, а деление 32/16=16 за 300 тактов. С учетом плавучки, почти Ваши времена! Для того и существуют DSP под Гиг операций, чтобы решать Ваши задачи. К сожалению, я не знаю этой техники, но где-то там TMS320F5000, 6000 и т.п. На микроконтроллеры очень похожи Кортех-М4 (STM32F4, NXP...???) и более серьезные АРМы. |
||
Оценка
|
Обратная связь РадиоЛоцман Вверх |