Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как отключить тип double в IAR ARM C компиляторе?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
Unomano
Я работаю над проектом с процессором AT91SAM7A3 Atmel ARM7. В нем только 32 Кбайт SRAM памяти. Я использую SRAM для хранения в моей программы во время отладки. Но в итоге я столкнулся с проблемой, что мой проект требует более 32 Кбайт. Поэтому я начал анализировать, что занимает так много памяти в проекте. At91sam7a3_flash.map файл содержит:
.text ro code 0x0010326c 0x338 DblDiv.o [4]
.text ro code 0x00103bc4 0x1f8 DblMul.o [4]
Но я не использую переменные типа double, исключительно float ( sinf(), tanf(), 3.14f ), т.к. мне достаточно точности float для моих целей.
Вопрос: Как отключить тип double в IAR ARM C компиляторе?
GetSmart
Если в расчётах используются только типы float и константы с 'f' на конце (например 0.5f) то IAR будет использовать только float. Так что ищите у себя нетипизированные вещественные константы и добавляйте к ним в конец символ 'f'.
Unomano
А может есть какая-нибудь директива компилятору типа disable_double ?
rezident
Цитата(Unomano @ Sep 10 2009, 14:38) *
Но я не использую переменные типа double, исключительно float ( sinf(), tanf(), 3.14f ), т.к. мне достаточно точности float для моих целей.
При вычислениях в плавучке промежуточный результат всегда в double вычисляется, а потом к float приводится, если это необходимо. Вроде так.
_pv
Цитата(Unomano @ Sep 10 2009, 14:38) *
Вопрос: Как отключить тип double в IAR ARM C компиляторе?

Про арм точно сказать не могу, но для авр/мсп в свойствах проекта вроде была опция "size of type <double>": 32 bit / 64 bit.
Unomano
Цитата(_pv @ Sep 10 2009, 12:40) *
Про арм точно сказать не могу, но для авр/мсп в свойствах проекта вроде была опция "size of type <double>": 32 bit / 64 bit.

Нет, такого нету.
zltigo
Цитата(Unomano @ Sep 10 2009, 10:38) *
Я использую SRAM для хранения в моей программы во время отладки.

Не маяться ерундой и не заниматься отладкой в RAM. Нежели "2+2=" отлаживать есть необходимость smile.gif, так это на худой конец в PC отлаживается, как в прочем и многое другое. Ну у а уж остальное во Flash, тем более размеры программы совсем не велики и отлаживать особо нечего.
Цитата
Вопрос: Как отключить тип double в IAR ARM C компиляторе?

Как уже писал GetSmart просто не использовать. Это официальная рекомендация производителя компилятора и она работает.
Unomano
Всем спасибо, вроде бы все дробные числа промаркировал f.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.