IAR 3.20C for AVR и sprintf

Tue Dec 07 2004 18:38, Dmitry Gromov wrote to All:

DG> Так вот, что в дебаггере, что в железе, выполнение команды sprintf DG> приводит DG> к сбросу. DG> Чего я только не перепробовал, крутил всячески форматтерами printf в DG> настройках компилятора, менял библиотеки CLIB, DLIB, все равно ничего не DG> получилось. DG> Мож кто знает где собака порылась? И где мне стоит порыться?

Увеличить размер стека. Еще лучше - отказаться от использования printf - слишком много ресурсов ей надо.

WBR, Юрий.

Reply to
Yuriy K
Loading thread data ...

Tue Dec 07 2004 18:38, Dmitry Gromov wrote to All:

DG> b=sprintf(str,"%.1f",a); DG> Так вот, что в дебаггере, что в железе, выполнение команды sprintf DG> приводит к сбросу.

  1. Hе пользоваться IAR 3.20с. Он глючный. Пользоваться 2.28A. 2. Hе пользоваться *printf. Это очень прожорливые функции. Hаписать вывод самому. 3. Если уж пользоваться printf, то пользоваться printf_P и увеличить размер стека возвратов и стека переменных. VLV

"Evil will prevail because good is dumb" (c) Dart Weider

Reply to
Vladimir Vassilevsky

Hello, All! Замучала меня одна непонятка. Вот коротенький кусок кода для Меги32, иллюстрирующий суть проблемы. void main(void) { char str[10]; float a=14.4; . некоторые команды, никак не затрагивающие вышедекларированные переменные . b=sprintf(str,"%.1f",a); . дальше некоторые команды . . . . } Так вот, что в дебаггере, что в железе, выполнение команды sprintf приводит к сбросу. Чего я только не перепробовал, крутил всячески форматтерами printf в настройках компилятора, менял библиотеки CLIB, DLIB, все равно ничего не получилось. Мож кто знает где собака порылась? И где мне стоит порыться?

With best regards, Dmitry Gromov. E-mail: snipped-for-privacy@deletethis.newmail.ru

Reply to
Dmitry Gromov

Доброго здоровья, Dmitry!

07 Dec 04 17:59, Yuriy K написал для Dmitry Gromov:

DG>> Так вот, что в дебаггере, что в железе, выполнение команды sprintf DG>> приводит DG>> к сбросу. DG>> Чего я только не перепробовал, крутил всячески форматтерами printf в DG>> настройках компилятора, менял библиотеки CLIB, DLIB, все равно ничего не DG>> получилось. DG>> Мож кто знает где собака порылась? И где мне стоит порыться?

YK> Увеличить размер стека. YK> Еще лучше - отказаться от использования printf - слишком много ресурсов YK> ей надо.

и не забыть включить large-библиотеку вывода

WBR, Сергей. ICQ: 101347299

Reply to
Sergei Tuchinski

Hello, Vladimir! You wrote to Dmitry Gromov on Tue, 07 Dec 2004 19:02:21 +0500:

VV> 1. Hе пользоваться IAR 3.20с. Он глючный. Пользоваться 2.28A. VV> 2. Hе пользоваться *printf. Это очень прожорливые функции. Hаписать VV> выводсамому. VV> 3. Если уж пользоваться printf, то пользоваться printf_P и увеличить VV> размерстека возвратов и стека переменных.

Hу что ж. Теперь работает. Ты, также как и Yuriy K, оказался абсолютно прав. Увеличил стеки и все понеслось. Так же вы были правы и насчет написать вывод самому. Hакрапал функцию, которая раз в 10 меньше и как минимум в 2 раза быстрее чем *printf. К черту теперь printf. Огромное спасибо за подсказки.

With best regards, Dmitry Gromov. E-mail: snipped-for-privacy@deletethis.newmail.ru

Reply to
Dmitry Gromov

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.