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

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

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

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

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

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


 
Опции темы
Непрочитано 13.04.2012, 23:52  
_Артём_
Гражданин KAZUS.RU
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от ALEKSEY188 Посмотреть сообщение
Здравствуйте уважаемые! Интересует вопрос, кто как определят время выполнения участков кода, например функций. Пользуюсь Ira, в симуляторе счетчик циклов есть, через st-link ноль. В принципе пробовал перед интересуемым участком устанавливать порт, в конце сбрасывать и на частотомер, можно таймер запускать. Но это изврат!!! Может, есть проще способ?
Есть способ проще:

Код:
#define    DWT_CYCCNT    *(volatile uint32_t *)0xE0001004
#define    DWT_CONTROL   *(volatile uint32_t *)0xE0001000
#define    SCB_DEMCR     *(volatile uint32_t *)0xE000EDFC

static inline uint32_t DWT_Get(void)
{
    return DWT_CYCCNT;
}
void init_dwt()
{
    SCB_DEMCR  |= 0x01000000;
    DWT_CYCCNT  = 0;
    DWT_CONTROL|= 1; // enable the counter
}

int main(void)
{
init_dwt();

DWT_CYCCNT=0;// сброс счётчика цилов процессора
DoSome();
uint32_t cycles=DWT_CYCCNT;// чтение количества циклов


}
Реклама:
_Артём_ вне форума  
Эти 3 пользователя(ей) сказали Спасибо _Артём_ за это сообщение:
ALEKSEY188 (14.04.2012), Fangir (12.06.2015), kozeka (18.05.2012)
Непрочитано 14.04.2012, 05:12  
ALEKSEY188
Заблокирован
 
Регистрация: 14.04.2008
Адрес: Украина, совсем рядом от террористов!
Сообщений: 388
Сказал спасибо: 32
Сказали Спасибо 85 раз(а) в 62 сообщении(ях)
ALEKSEY188 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от _Артём_ Посмотреть сообщение
Есть способ проще:
Код:
#define DWT_CYCCNT *(volatile uint32_t *)0xE0001004
#define DWT_CONTROL *(volatile uint32_t *)0xE0001000
#define SCB_DEMCR *(volatile uint32_t *)0xE000EDFC
static inline uint32_t DWT_Get(void)
{
return DWT_CYCCNT;
}
void init_dwt()
{
SCB_DEMCR |= 0x01000000;
DWT_CYCCNT = 0;
DWT_CONTROL|= 1; // enable the counter
}
int main(void)
{
init_dwt();
DWT_CYCCNT=0;// сброс счётчика цилов процессора
DoSome();
uint32_t cycles=DWT_CYCCNT;// чтение количества циклов
}
То, что нужно! В железе не проверял, дома нет, но судя по документации подходит. Не понятно чего только в IRA не реализовали.
ALEKSEY188 вне форума  
Непрочитано 15.04.2012, 14:34  
pasipaka
Прописка
 
Регистрация: 21.03.2011
Сообщений: 107
Сказал спасибо: 15
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
pasipaka на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от _Артём_ Посмотреть сообщение
Есть способ проще:

Код:
#define    DWT_CYCCNT    *(volatile uint32_t *)0xE0001004
#define    DWT_CONTROL   *(volatile uint32_t *)0xE0001000
#define    SCB_DEMCR     *(volatile uint32_t *)0xE000EDFC

static inline uint32_t DWT_Get(void)
{
    return DWT_CYCCNT;

}
А для чего эта функция?
pasipaka вне форума  
Непрочитано 15.04.2012, 14:52  
Hives
Гражданин KAZUS.RU
 
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
Hives на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

для порядка
Hives вне форума  
Непрочитано 16.04.2012, 00:02  
_Артём_
Гражданин KAZUS.RU
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от pasipaka Посмотреть сообщение
А для чего эта функция?
Чтение счётчика тактов ядра.
Можно использовать как для измерения времени исполнения в программе.
_Артём_ вне форума  
Непрочитано 16.04.2012, 12:21  
pasipaka
Прописка
 
Регистрация: 21.03.2011
Сообщений: 107
Сказал спасибо: 15
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
pasipaka на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от _Артём_ Посмотреть сообщение
Чтение счётчика тактов ядра.
Можно использовать как для измерения времени исполнения в программе.
А не проще ли сразу с DWT_CYCCNT читать? И в теле программы прямой доступ юзается... Скорее всего для красоты.

Последний раз редактировалось pasipaka; 16.04.2012 в 12:37.
pasipaka вне форума  
Непрочитано 16.04.2012, 15:06  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от Hives Посмотреть сообщение
для порядка
можно было через дефайн сделать
Easyrider83 вне форума  
Непрочитано 16.04.2012, 15:23  
st__1
Заблокирован
 
Регистрация: 31.12.2011
Сообщений: 726
Сказал спасибо: 32
Сказали Спасибо 223 раз(а) в 162 сообщении(ях)
st__1 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Угу...

А ещё лучше... "плату не включать, код не заливать!"...

(типа... "из автобуса не выходить, ружья с собой не брать!")
st__1 вне форума  
Непрочитано 16.04.2012, 20:09  
AJScorp
Почётный гражданин KAZUS.RU
 
Аватар для AJScorp
 
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
AJScorp на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от Easyrider83 Посмотреть сообщение
можно было через дефайн сделать
А в чём разница для компилятора в данном случае?

Последний раз редактировалось AJScorp; 16.04.2012 в 20:15.
AJScorp вне форума  
Непрочитано 16.04.2012, 20:40  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от AJScorp Посмотреть сообщение
А в чём разница для компилятора в данном случае?
Ни в чем. Инлайн функции итак идут "в чистом виде". Это для восприятия разница есть. В данном случае, правда, спорная.
Easyrider83 вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Школа АRMрестлинга Uragan90 Микроконтроллеры, АЦП, память и т.д 54 22.08.2011 16:13
ARM Cortex M3 + Linux SiMiLya Микроконтроллеры, АЦП, память и т.д 10 17.06.2011 17:20
Помогите с STM32 - очень нужно... yakuzaa Микроконтроллеры, АЦП, память и т.д 60 04.08.2010 11:04
Как добавить поддержку для STM32 SFHK Микроконтроллеры, АЦП, память и т.д 11 18.12.2009 18:09


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


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