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

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

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

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

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

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


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

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

В случае с Cortex M0 и inline не поможет.
STM32F0 вне форума  
Непрочитано 30.10.2014, 13:23   #13
SasaVitebsk
Гражданин KAZUS.RU
 
Регистрация: 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   #14
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,621
Сказал спасибо: 115
Сказали Спасибо 810 раз(а) в 587 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Нужна функция delay на таймере для stm32f303

Цитата:
Нужна функция delay на таймере для stm32f303
Не нужна. Даже на 8-битном шлаке она не нужна. А тут вообще мегапроц
__________________
Союз Советских Социалистических Округов Северной Америки
eddy вне форума  
Непрочитано 30.10.2014, 14:19   #15
_Артём_
Гражданин KAZUS.RU
 
Регистрация: 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   #16
SasaVitebsk
Гражданин KAZUS.RU
 
Регистрация: 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   #17
_Артём_
Гражданин KAZUS.RU
 
Регистрация: 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   #18
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   #19
SasaVitebsk
Гражданин KAZUS.RU
 
Регистрация: 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   #20
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, время: 11:50.


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