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

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

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

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

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

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


 
Опции темы

Нужна функция delay на таймере для stm32f303

Непрочитано 15.05.2014, 09:50  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Нужна функция delay на таймере для stm32f303

Здесь тоже можно докопаться, что функции, возвращающие значения регистров должны быть inline. ))))
Реклама:
Easyrider83 вне форума  
Непрочитано 15.05.2014, 11:46  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: Нужна функция delay на таймере для stm32f303

В случае с Cortex M0 и inline не поможет.
STM32F0 вне форума  
Непрочитано 30.10.2014, 13:23  
SasaVitebsk
Гражданин KAZUS.RUN
 
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
SasaVitebsk на пути к лучшему
По умолчанию Re: Нужна функция delay на таймере для stm32f303

Сообщение от Hives Посмотреть сообщение
кста: для подсчета тактов у камня есть спец фича, незачем таймер гробить
За работой всё некогда было посмотреть. Только сейчас руки дошли. И что же я вижу...

Действительно такая фича есть. Правда в моём stm32f407 другие наименования регистров. Но меня настораживают некоторые детали:
1. В официальном даташите на данный процессор RM0090 rev 5, есть упоминание что есть такое дело как DWT. Описания данного устройства нет. В отладчике я вижу регистры CTRL и CYCCNT.
2. В файле описания данного процессора от ST также нет упоминаний
Код:
  * @file    stm32f407xx.h
  * @author  MCD Application Team
  * @version V2.0.0
  * @date    18-February-2014
Отсюда вопрос. Стоит ли с этой штукой связываться? Я же не гирлянду на ёлочку делаю.
Вы вообще откуда данную инфу почерпнули? Это вообще можно использовать, может при этом что-то работает медленнее или некорректно. Может в следующей ревизии кристалла оно в другое место перекочует или вообще уйдёт навсегда.
SasaVitebsk вне форума  
Непрочитано 30.10.2014, 13:50  
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Нужна функция delay на таймере для stm32f303

Цитата:
Нужна функция delay на таймере для stm32f303
Не нужна. Даже на 8-битном шлаке она не нужна. А тут вообще мегапроц
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
eddy вне форума  
Непрочитано 30.10.2014, 14:19  
_Артём_
Гражданин KAZUS.RUN
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: Нужна функция delay на таймере для stm32f303

Сообщение от SasaVitebsk Посмотреть сообщение
1. В официальном даташите на данный процессор RM0090 rev 5, есть упоминание что есть такое дело как DWT. Описания данного устройства нет. В отладчике я вижу регистры CTRL и CYCCNT.
Описания нет потому что DWT - часть ядра. На Systick, к примеру, в reference manuan тоже ничего нет.

Сообщение от SasaVitebsk Посмотреть сообщение
Стоит ли с этой штукой связываться? Я же не гирлянду на ёлочку делаю.
Нормальная штука, стоит связываться.
Сообщение от SasaVitebsk Посмотреть сообщение
Вы вообще откуда данную инфу почерпнули? Это вообще можно использовать, может при этом что-то работает медленнее или некорректно. Может в следующей ревизии кристалла оно в другое место перекочует или вообще уйдёт навсегда.
Можно посмотреть в "ARM Cortex-M4 Processor Technical Reference Manual" в разделе "9.3. DWT Programmers Model"
_Артём_ вне форума  
Сказали "Спасибо" _Артём_
SasaVitebsk (30.10.2014)
Непрочитано 30.10.2014, 17:59  
SasaVitebsk
Гражданин KAZUS.RUN
 
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
SasaVitebsk на пути к лучшему
По умолчанию Re: Нужна функция delay на таймере для stm32f303

Сообщение от _Артём_ Посмотреть сообщение
Описания нет потому что DWT - часть ядра. На Systick, к примеру, в reference manuan тоже ничего нет.Можно посмотреть в "ARM Cortex-M4 Processor Technical Reference Manual" в разделе "9.3. DWT Programmers Model"
А как отнестись к тому, что в inc файле ничего нет?. Причём это CMSIS и написан он ST в сотрудничестве с самим ARM.
"Часть ядра" надо понимать в нашем случае, что адрес размещения регистров будет одинаковый для STM и для NXP, к примеру?
...
Собственно, ладно, меня практический вопрос интересует. Какой inc я должен подключить, чтобы увидеть DWT? Кто работал, отзовитесь.
PS: Просмотрел "ARM Cortex-M4 Processor Technical Reference Manual" - действительно похоже общие адреса для всех процов будут. Адреса то я и вручную пропишу. Ладно. попробую.

Последний раз редактировалось SasaVitebsk; 30.10.2014 в 18:03.
SasaVitebsk вне форума  
Непрочитано 30.10.2014, 18:32  
_Артём_
Гражданин KAZUS.RUN
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: Нужна функция delay на таймере для stm32f303

Сообщение от SasaVitebsk Посмотреть сообщение
А как отнестись к тому, что в inc файле ничего нет?. Причём это CMSIS и написан он ST в сотрудничестве с самим ARM.
Разве нет? Написан он ARM-ом, а не ST.
Вроде оно:
Код:
typedef struct
{
  __IO uint32_t CTRL;                    /*!‹ Offset: 0x000 (R/W)  Control Register                          */
  __IO uint32_t CYCCNT;                  /*!‹ Offset: 0x004 (R/W)  Cycle Count Register                      */
  __IO uint32_t CPICNT;                  /*!‹ Offset: 0x008 (R/W)  CPI Count Register                        */
  __IO uint32_t EXCCNT;                  /*!‹ Offset: 0x00C (R/W)  Exception Overhead Count Register         */
  __IO uint32_t SLEEPCNT;                /*!‹ Offset: 0x010 (R/W)  Sleep Count Register                      */
  __IO uint32_t LSUCNT;                  /*!‹ Offset: 0x014 (R/W)  LSU Count Register                        */
  __IO uint32_t FOLDCNT;                 /*!‹ Offset: 0x018 (R/W)  Folded-instruction Count Register         */
  __I  uint32_t PCSR;                    /*!‹ Offset: 0x01C (R/ )  Program Counter Sample Register           */
  __IO uint32_t COMP0;                   /*!‹ Offset: 0x020 (R/W)  Comparator Register 0                     */
  __IO uint32_t MASK0;                   /*!‹ Offset: 0x024 (R/W)  Mask Register 0                           */
  __IO uint32_t FUNCTION0;               /*!‹ Offset: 0x028 (R/W)  Function Register 0                       */
       uint32_t RESERVED0[1];
  __IO uint32_t COMP1;                   /*!‹ Offset: 0x030 (R/W)  Comparator Register 1                     */
  __IO uint32_t MASK1;                   /*!‹ Offset: 0x034 (R/W)  Mask Register 1                           */
  __IO uint32_t FUNCTION1;               /*!‹ Offset: 0x038 (R/W)  Function Register 1                       */
       uint32_t RESERVED1[1];
  __IO uint32_t COMP2;                   /*!‹ Offset: 0x040 (R/W)  Comparator Register 2                     */
  __IO uint32_t MASK2;                   /*!‹ Offset: 0x044 (R/W)  Mask Register 2                           */
  __IO uint32_t FUNCTION2;               /*!‹ Offset: 0x048 (R/W)  Function Register 2                       */
       uint32_t RESERVED2[1];
  __IO uint32_t COMP3;                   /*!‹ Offset: 0x050 (R/W)  Comparator Register 3                     */
  __IO uint32_t MASK3;                   /*!‹ Offset: 0x054 (R/W)  Mask Register 3                           */
  __IO uint32_t FUNCTION3;               /*!‹ Offset: 0x058 (R/W)  Function Register 3                       */
} DWT_Type;
Код:
#define DWT_BASE            (0xE0001000UL)                            /*!‹ DWT Base Address                   */
Код:
#define DWT                 ((DWT_Type       *)     DWT_BASE      )   /*!‹ DWT configuration struct           */
Сообщение от SasaVitebsk Посмотреть сообщение
"Часть ядра" надо понимать в нашем случае, что адрес размещения регистров будет одинаковый для STM и для NXP, к примеру?
Будет одинаковый, если производитель имплментирует этот блок. Хотя вроде его выкинуть нельзя, но мало ли...
Сообщение от SasaVitebsk Посмотреть сообщение
Собственно, ладно, меня практический вопрос интересует. Какой inc я должен подключить, чтобы увидеть DWT?
inc в смысле хидер? core_cm3.h
Код:
#define    DWT_CYCCNT    *(volatile uint32_t *)0xE0001004
#define    DWT_CONTROL   *(volatile uint32_t *)0xE0001000
#define    SCB_DEMCR     *(volatile uint32_t *)0xE000EDFC
  INLINE void DWT_Init()
  {
     SCB_DEMCR  |= 0x01000000;
     DWT_CYCCNT  = 0;
     DWT_CONTROL|= 1; // enable the counter
  }
INLINE uint32_t GetDWT()
{
    return DWT_CYCCNT;
}
INLINE void ClrDWT()
{
    DWT_CYCCNT=0;
}
_Артём_ вне форума  
Непрочитано 30.10.2014, 19:57  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: Нужна функция delay на таймере для stm32f303

SasaVitebsk, что за лажа? Забываем что было год назад? Тема активно мусировалась на элхе. С новыми CMSIS не нужно никаких плясок с дефайнами, там всё просто.
Код:
void Init_DWT(void)
{ 
  CoreDebug-›DEMCR |= CoreDebug_DEMCR_TRCENA_Msk;
  DWT-›CYCCNT       = 0;
  DWT-›CTRL        |= DWT_CTRL_CYCCNTENA_Msk; 

}
STM32F0 вне форума  
Непрочитано 31.10.2014, 11:04  
SasaVitebsk
Гражданин KAZUS.RUN
 
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
SasaVitebsk на пути к лучшему
По умолчанию Re: Нужна функция delay на таймере для stm32f303

У меня core_cm3 (точнее core-cm4) даже не подключается в проекте ...
Подключаются: stm32f4xx.h, stm32f407xx.h, system_stm32f4xx.h

STM32F0 смысл "CoreDebug-›DEMCR |= CoreDebug_DEMCR_TRCENA_Msk;" подскажите пожалуйста.

Последний раз редактировалось SasaVitebsk; 31.10.2014 в 11:18.
SasaVitebsk вне форума  
Непрочитано 31.10.2014, 11:26  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: Нужна функция delay на таймере для stm32f303

CoreDebug-›DEMCR |= CoreDebug_DEMCR_TRCENA_Msk;
тоже самое что и
SCB_DEMCR |= 0x01000000;

Всё это относится к дебагу, к трассированию в частности. Темку на элхе почитай, там всё разжёвано.
STM32F0 вне форума  
 
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FAQ (ЧаВО) по PROTEUS для начинающих и не только dosikus Proteus 221 07.03.2024 22:45
Апгрейд и комплектующие для ноутбуков mikesmith Барахолка электронных компонентов 28 17.05.2023 23:25
Книги dosikus Электронная библиотека 11242 29.12.2015 23:45
Нужна помощь попеределке asm в Си для AVR Saadov Микроконтроллеры, АЦП, память и т.д 11 01.03.2009 20:56
[Решено] Сборник перлов любителей кабельщины mikesmith Отвлекитесь, эмбеддеры! 135 14.08.2007 15:49


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.