реклама на сайте
подробности

 
 
> IAR 5.40.0.51500 баг в sprintf @ lpc1114/CM0
GetSmart
сообщение Mar 5 2013, 23:49
Сообщение #1


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Непонятный баг в виде выпадения в HardFault из sprintf при выводе форматированного float, причём в некоторых случаях. Юзал эту версию ИАРа вместе со sprintf для LPC1768 и ни на какие грабли не попадал. Стек проверял, его достаточно, оптимизация никак не влияет. Простенький кастрированный проект прилагаю для LPC1114 (без кварца) можно потестить. Прочитал все исправленные баги в версии 6.30 и не нашёл ничего об исправленном sprintf. Хотя тот же код в 6.30 не зависает, но проверил наспех. Поэтому самому интересно в чём косяк и исправлен ли он в новых версиях ИАРа.

Код
    sprintf((char *)&buf, "started\15\12");
    sendBuf(&buf[0]);

    for (uInt i=0; i<sizeof(buf); ++i) buf[i] = 0xeb;
    float freq = 82.6046981;
    sprint_flag = 10;
    sprintf((char *)&buf, "freq1=%1.5f\15\12", freq);           // <------- тут происходит падение на HardFault
    sprint_flag = 0;
    sendBuf(&buf[0]);

    sprintf((char *)&buf, "ended\15\12");
    sendBuf(&buf[0]);


Регистры на картинке взяты из режима исключения HardFault, на котором стоит бесконечный цикл.
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
 


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- GetSmart   IAR 5.40.0.51500 баг в sprintf @ lpc1114/CM0   Mar 5 2013, 23:49
- - aaarrr   Может, UNALIGN_TRP установлен?   Mar 5 2013, 23:59
- - GetSmart   Это что такое и с чем его едят? Вообще-то я ничего...   Mar 6 2013, 00:05
|- - aaarrr   Цитата(GetSmart @ Mar 6 2013, 04:05) Это ...   Mar 6 2013, 00:18
- - Xenia   Если буфер (buf) является массивом, то char-указат...   Mar 6 2013, 00:18
- - aaarrr   Стоп, это ж M0, а он в принципе не умеет unaligned...   Mar 6 2013, 00:27
|- - Xenia   Цитата(aaarrr @ Mar 6 2013, 04:27) В случ...   Mar 6 2013, 00:30
|- - GetSmart   Цитата(aaarrr @ Mar 6 2013, 06:27) Стоп, ...   Mar 6 2013, 02:02
||- - shreck   Цитата(GetSmart @ Mar 6 2013, 09:02) Да, ...   Mar 6 2013, 02:33
|- - GetSmart   Цитата(aaarrr @ Mar 6 2013, 06:27) Стоп, ...   Mar 6 2013, 02:36
|- - aaarrr   Цитата(GetSmart @ Mar 6 2013, 06:36) Ну а...   Mar 6 2013, 09:36
- - aaarrr   ОК, согласен. Но в данном конкретном случае это к ...   Mar 6 2013, 01:23
- - shreck   Попробуйте так: Кодsprintf((char *)buf...   Mar 6 2013, 01:43
- - shmur   А какая версия printf стоит в настройках проекта? ...   Mar 6 2013, 05:35
|- - GetSmart   Цитата(shmur @ Mar 6 2013, 11:35) Попробу...   Mar 6 2013, 12:54
- - GetSmart   Встал ещё на одну граблю ИАРа 5.50. Может кто-то н...   Jul 11 2015, 11:50


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 12:15
Рейтинг@Mail.ru


Страница сгенерированна за 0.01374 секунд с 7
ELECTRONIX ©2004-2016