Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 08.11.2014, 20:10  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: IAR Embedded Workbench

С первого взгляда!
Больше всего унылости преподносит pow. Что, трудно заменить на цикл? Там 10 в степени. В простых случаях тупо заменить на константу, тогда всё просто, легко и летает.
Реклама:
STM32F0 вне форума  
Непрочитано 08.11.2014, 21:39  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: IAR Embedded Workbench

Это тупой копи-паст.
pow выбросил, конечно.
Easyrider83 вне форума  
Непрочитано 08.11.2014, 22:34  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: IAR Embedded Workbench

Ага! Сегодняшняя неудовлетворённость с исправлениями вчера.
STM32F0 вне форума  
Непрочитано 08.11.2014, 23:00  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: IAR Embedded Workbench

Ага, спасибо, замечательно сам с собой пообщался.
Функция sprintf в MicroC прекрасно работает, но жрет аж 16к флеши!
Моя жрет 3.5к флеши, что тоже не мало.

Последний раз редактировалось Easyrider83; 09.11.2014 в 02:20.
Easyrider83 вне форума  
Непрочитано 09.11.2014, 05:59  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: IAR Embedded Workbench

И причём здесь тогда ИАР? Под STM8 в ИАРе отъедает около 1К флэша, выполняется за ~1000 тактов, что в 6 раз меньше и в 13 раз быстрее чем sprintf.
Код:
// reverses a string 'str' of length 'len'
void reverse(char *str, uint8_t len)
{
    uint8_t i = 0, j = len - 1, temp;
    
    while(i ‹ j)
    {
     temp = str[i];
     str[i] = str[j];
     str[j] = temp;
     i++; j--;
    }
}


 // Converts a given integer x to string str[].  d is the number
 // of digits required in output. If d is more than the number
 // of digits in x, then 0s are added at the beginning.
uint8_t intToStr(uint16_t x, char str[], uint8_t d)
{
    uint8_t i = 0;
    
    while(x)
    {
     str[i++] = (x%10) + '0';
     x = x/10;
    }
    
    while(i ‹ d)
    {
     str[i++] = '0';
    }

    if(i) reverse(str, i);
    
    str[i] = '\0';
    
    return i;
}


// Converts a floating point number to string.
void ftoa(float n, char *res, uint8_t afterpoint)
{
    uint8_t m = 0, i;
    uint16_t ipart, v = 1; 
    float fpart;
    
    if(n ‹ 0)
    {
      n = -n;
      m++;
      res[0] = '-';
    }
    
    if(!(uint8_t)n)
    {
      if(m)
      {
       res[1] = '0';
      }
      
        else
        {
         res[0] = '0';
        }
      m++;
    }
    
    ipart = (uint16_t)n;
    fpart = n - (float)ipart;
    i = intToStr(ipart, res + m, 0);
       
    if (afterpoint)
    {
     res[i+m] = '.';  // add dot

     for(uint8_t k = 0; k ‹ afterpoint; k++)
     {
      v *= 10; 
     }
        
     fpart *= v;
     intToStr((uint16_t)fpart, res + i + 1 + m, afterpoint);
    }
}
О красоте судить не буду, это же не баба!
STM32F0 вне форума  
Непрочитано 09.11.2014, 10:49  
woroba
Гражданин KAZUS.RU
 
Регистрация: 13.06.2005
Адрес: РК г.Павлодар
Сообщений: 866
Сказал спасибо: 99
Сказали Спасибо 216 раз(а) в 140 сообщении(ях)
woroba на пути к лучшему
По умолчанию Re: IAR Embedded Workbench

Решил обновить EWSTM8 до 1.42.3(брал в будке на сахаре). Все хорошо если бы не проблема с ST-Link, может кто знает как решить.
Ось Win7x86.
Миниатюры:
Нажмите на изображение для увеличения
Название: Debug.png
Просмотров: 54
Размер:	22.6 Кб
ID:	71541   Нажмите на изображение для увеличения
Название: Debug_log.png
Просмотров: 23
Размер:	7.1 Кб
ID:	71542  
__________________
Не ошибается лишь тот, кто ни чего не делает!
woroba вне форума  
Непрочитано 09.11.2014, 11:04  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: IAR Embedded Workbench

woroba, Снова проекты на Рабочем столе держим ?
Запусти IAR от админа ...
__________________
Осторожно , злой кот
dosikus вне форума  
Сказали "Спасибо" dosikus
woroba (09.11.2014)
Непрочитано 09.11.2014, 12:47  
woroba
Гражданин KAZUS.RU
 
Регистрация: 13.06.2005
Адрес: РК г.Павлодар
Сообщений: 866
Сказал спасибо: 99
Сказали Спасибо 216 раз(а) в 140 сообщении(ях)
woroba на пути к лучшему
По умолчанию Re: IAR Embedded Workbench

Да нет, не на рабочем. Скорее в облаке(на 1 скрине видно)
А вот от админа помогло.
В общем странно, если я в системе админ. захожу как админ, то какого оно требует еще софт запускать от админа
__________________
Не ошибается лишь тот, кто ни чего не делает!
woroba вне форума  
Непрочитано 14.11.2014, 21:49  
sergeyye
Временная регистрация
 
Аватар для sergeyye
 
Регистрация: 12.03.2005
Адрес: Москва
Сообщений: 61
Сказал спасибо: 42
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
sergeyye на пути к лучшему
По умолчанию Re: IAR Embedded Workbench

Не могу понять, как при отладке измерить время выполнения какой-либо функции. Подскажите начинающему.
sergeyye вне форума  
Непрочитано 14.11.2014, 23:12  
_Артём_
Гражданин KAZUS.RU
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: IAR Embedded Workbench

Сообщение от sergeyye Посмотреть сообщение
Не могу понять, как при отладке измерить время выполнения какой-либо функции. Подскажите начинающему.
Смотря какая архитектура...В общем случае можно запустить какой-нибудь ненужный таймер и фиксировать сколько таймер насчитает за вемя работы функции.
В частном случае (Cortex-M3/4) - есть встроенные в ядро счётчики тактов, которые IAR может использовать, а может и не использовать, если не умеет. Своих средств подсчёта времени у IAR нет.
_Артём_ вне форума  
Сказали "Спасибо" _Артём_
sergeyye (14.11.2014)
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подниму тему WinAVR vs IAR oleg110592 Микроконтроллеры, АЦП, память и т.д 5 24.10.2015 14:06


Часовой пояс GMT +4, время: 02:22.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot