Do you have a question? Post it now! No Registration Necessary
Subject
- Posted on
IAR 3.20C for AVR и sprintf
- 12-07-2004
- Dmitry Gromov
December 7, 2004, 4:38 pm

Hello, All!
Замучала меня одна непонятка. Вот коротенький кусок кода для Меги32,
иллюстрирующий суть проблемы.
void main(void)
{
char str[10];
float a14%.4;
.
некоторые команды, никак не затрагивающие вышедекларированные переменные
.
b=sprintf(str,"%.1f",a);
.
дальше некоторые команды
.
.
.
.
}
Так вот, что в дебаггере, что в железе, выполнение команды sprintf приводит
к сбросу.
Чего я только не перепробовал, крутил всячески форматтерами printf в
настройках компилятора, менял библиотеки CLIB, DLIB, все равно ничего не
получилось.
Мож кто знает где собака порылась? И где мне стоит порыться?
With best regards, Dmitry Gromov. E-mail: snipped-for-privacy@deletethis.newmail.ru
Замучала меня одна непонятка. Вот коротенький кусок кода для Меги32,
иллюстрирующий суть проблемы.
void main(void)
{
char str[10];
float a14%.4;
.
некоторые команды, никак не затрагивающие вышедекларированные переменные
.
b=sprintf(str,"%.1f",a);
.
дальше некоторые команды
.
.
.
.
}
Так вот, что в дебаггере, что в железе, выполнение команды sprintf приводит
к сбросу.
Чего я только не перепробовал, крутил всячески форматтерами printf в
настройках компилятора, менял библиотеки CLIB, DLIB, все равно ничего не
получилось.
Мож кто знает где собака порылась? И где мне стоит порыться?
With best regards, Dmitry Gromov. E-mail: snipped-for-privacy@deletethis.newmail.ru

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, Юрий.
DG> Так вот, что в дебаггере, что в железе, выполнение команды sprintf
DG> приводит
DG> к сбросу.
DG> Чего я только не перепробовал, крутил всячески форматтерами printf в
DG> настройках компилятора, менял библиотеки CLIB, DLIB, все равно ничего не
DG> получилось.
DG> Мож кто знает где собака порылась? И где мне стоит порыться?
Увеличить размер стека.
Еще лучше - отказаться от использования printf - слишком много ресурсов
ей надо.
WBR, Юрий.

IAR 3.20C for AVR и sprintf
Доброго здоровья, 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
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

IAR 3.20C for AVR и sprintf
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
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

Re: IAR 3.20C for AVR и sprintf
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
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
Site Timeline
- » Глюки IAR C for AVR 3.10C
- — Next thread in » Microcontrollers (Russian)
-
- » Заземление ВЧ сигнала?
- — Previous thread in » Microcontrollers (Russian)
-
- » По моему это гениально
- — Newest thread in » Microcontrollers (Russian)
-
- » il galvanometro
- — The site's Newest Thread. Posted in » Electronics Hobby (Italian)
-