Например TDA7294

Форум РадиоКот • Просмотр темы - STM32 новичку в ARM что к чему
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт июл 10, 2025 03:42:36

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 8826 ]     ... , , , 212, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт авг 03, 2018 16:37:17 
Вымогатель припоя
Аватар пользователя

Карма: 7
Рейтинг сообщений: 58
Зарегистрирован: Чт янв 20, 2011 09:07:08
Сообщений: 674
Откуда: Пермь
Рейтинг сообщения: 0
Заново сгенерируйте проект Кубом - у вас заголовок отклеился :-)

_________________
Никакая контра не уйдёт от нас


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт авг 03, 2018 23:24:46 
Друг Кота

Карма: 38
Рейтинг сообщений: 618
Зарегистрирован: Пн апр 06, 2015 11:01:53
Сообщений: 3092
Откуда: москва, уфа
Рейтинг сообщения: 0
из-за одного заголовочника перегенерировать проект, серьезно?)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Сб авг 04, 2018 04:09:33 
Вымогатель припоя
Аватар пользователя

Карма: 7
Рейтинг сообщений: 58
Зарегистрирован: Чт янв 20, 2011 09:07:08
Сообщений: 674
Откуда: Пермь
Рейтинг сообщения: 0
что за проблемы нажать кнопку в Кубе?

_________________
Никакая контра не уйдёт от нас


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пн авг 06, 2018 10:16:32 
Друг Кота

Карма: 20
Рейтинг сообщений: 223
Зарегистрирован: Пт сен 13, 2013 13:11:31
Сообщений: 6443
Рейтинг сообщения: 0
Вот объясните мне, либо я туплю, либо стм-ы, либо кто-то еще. :)

Дано: RM0091, стр. 741, описание регистра USARTx_ICR. Из описания явствует, что регистр работает только на запись. Запись единицы в конкретное битовое поле приводит к тому, что сбрасывается соответствующий бит в регистре статуса USARTx_ISR. Пишем в один регистр, биты сбрасываются в другом. Запись нуля ничего не меняет и ни к каким результатам не приводит. До этого момента все просто, понятно и логично. Непонятки начинаются с приложения А.19 (стр. 984), где приводятся примеры реализации некоторых режимов работы USART. Так вот в этих чудных примерах при манипуляциях с регистром USARTx_ICR везде используются конструкции вида:

Код:
USART1->ICR |= USART_ICR_TCCF; /* Clear transfer complete flag */

В этой строчке сначала происходит считывание регистра, потом операция логического "ИЛИ" с его значением, а затем запись результата обратно в регистр. Внимание, как говорится, вопрос: нахрена читать USART1->ICR, если известно, что он работает только на запись? Причем, эти обезьяны делают так везде: и в мануле и в кодснайпетах и пр. примерах. Это, типа, такой животный рефлекс у них выработался, что раз битовая запись, то обязательно через дизъюнкцию ? По другому никак? Зла не хватает.


Вернуться наверх
 
Выбираем индустриальные и медицинские источники питания MEAN WELL в открытом исполнении

Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пн авг 06, 2018 10:27:28 
Вымогатель припоя
Аватар пользователя

Карма: 7
Рейтинг сообщений: 58
Зарегистрирован: Чт янв 20, 2011 09:07:08
Сообщений: 674
Откуда: Пермь
Рейтинг сообщения: 0
В этой строчке сначала происходит считывание регистра

Где вы видите чтение из регистра? :))
Какой в чтении смысл, если необходимо безусловно записать 1 в указанные биты?

_________________
Никакая контра не уйдёт от нас


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пн авг 06, 2018 10:30:10 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 20
Рейтинг сообщений: 648
Зарегистрирован: Пт май 31, 2013 17:14:38
Сообщений: 2081
Откуда: Украина, Винница
Рейтинг сообщения: 1
из-за одного заголовочника перегенерировать проект, серьезно?)

если код писать в местах специально отведенных, между коментариев, то перегенерация проекта кубом не затрагивает Ваш код. Если вдруг не знали.


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пн авг 06, 2018 10:38:34 
Друг Кота

Карма: 20
Рейтинг сообщений: 223
Зарегистрирован: Пт сен 13, 2013 13:11:31
Сообщений: 6443
Рейтинг сообщения: 0
Где вы видите чтение из регистра? :))

Хорошая шутка. Вам ассемблерный дамп показать или на слово поверите?

Цитата:
Какой в чтении смысл, если необходимо безусловно записать 1 в указанные биты?

Если что, именно об этом я и спрашивал.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пн авг 06, 2018 10:55:10 
Вымогатель припоя
Аватар пользователя

Карма: 7
Рейтинг сообщений: 58
Зарегистрирован: Чт янв 20, 2011 09:07:08
Сообщений: 674
Откуда: Пермь
Рейтинг сообщения: 0
Где вы видите чтение из регистра? :))

Хорошая шутка. Вам ассемблерный дамп показать или на слово поверите?

Я бы с дампа и начал.

_________________
Никакая контра не уйдёт от нас


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пн авг 06, 2018 10:59:58 
Друг Кота

Карма: 20
Рейтинг сообщений: 223
Зарегистрирован: Пт сен 13, 2013 13:11:31
Сообщений: 6443
Рейтинг сообщения: 0
Приветствую такой подход:

Код:
 835                 @ src/main.c:461:     while((USART1->ISR & USART_ISR_TC) != USART_ISR_TC) {
 836 0396 D369           ldr   r3, [r2, #28]   @ _12, MEM[(struct USART_TypeDef *)1073821696B].ISR
 837 0398 1942           tst   r1, r3   @ tmp518, _12
 838 039a FCD0           beq   .L62   @,
 839                 @ src/main.c:464:     USART1->ICR |= USART_ICR_TCCF;    // clear TC flag
 840 039c 136A           ldr   r3, [r2, #32]   @ _14, MEM[(struct USART_TypeDef *)1073821696B].ICR
 841 039e 1943           orrs   r1, r3   @ _15, _14
 842 03a0 1162           str   r1, [r2, #32]   @ _15, MEM[(struct USART_TypeDef *)1073821696B].ICR

Внимательно смотрим на строку дампа с номером 840.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пн авг 06, 2018 11:16:15 
Собутыльник Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 428
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2529
Рейтинг сообщения: 0
Это, типа, такой животный рефлекс у них выработался, что раз битовая запись, то обязательно через дизъюнкцию ? По другому никак? Зла не хватает.
Допускаю, что в каком-то чипе, ну может же быть такое, эти биты RW. Переписывать либы под каждый чип? Не индусский подход. :) Хотя, скорее всего, именно животный рефлекс. Пишите сами и с головой будет полный порядок.

Я бы с дампа и начал.
А я бы с учебника по С.


Последний раз редактировалось VladislavS Пн авг 06, 2018 11:25:28, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пн авг 06, 2018 11:25:17 
Вымогатель припоя
Аватар пользователя

Карма: 7
Рейтинг сообщений: 58
Зарегистрирован: Чт янв 20, 2011 09:07:08
Сообщений: 674
Откуда: Пермь
Рейтинг сообщения: 0
Внимательно смотрим на строку дампа с номером 840.

Век живи - век учись!
Правильнее будет писать просто
Цитата:
USART1->ICR = USART_ICR_TCCF;

_________________
Никакая контра не уйдёт от нас


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пн авг 06, 2018 11:28:32 
Собутыльник Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 428
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2529
Рейтинг сообщения: 0
Век живи - век учись!

Представляете, как будет удивлён индус, писавший это :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пн авг 06, 2018 11:44:20 
Друг Кота

Карма: 20
Рейтинг сообщений: 223
Зарегистрирован: Пт сен 13, 2013 13:11:31
Сообщений: 6443
Рейтинг сообщения: 0
Допускаю, что в каком-то чипе, ну может же быть такое, эти биты RW. Переписывать либы под каждый чип? Не индусский подход. :)

Какие либы, если разговор идет про RM ? Допущения, конечно, хорошо, но RM0091 накрывает большую часть линейки F0 и апеллировать к "какому-то чипу" здесь немного странно. Это уж не говоря про то, что название "Interrupt flag clear register" как-то не очень предполагает интересного содержимого.

Цитата:
Пишите сами и с головой будет полный порядок.

Чувствую, сегодняшний день будет обилен на сверх-ценные советы.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пн авг 06, 2018 12:04:27 
Собутыльник Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 428
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2529
Рейтинг сообщения: 0
Да ёлки-палки, все ошибаются, поржали и пошли дальше. Можно подумать, других более серьёзных ошибок в RM не бывает.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пн авг 06, 2018 12:19:19 
Друг Кота

Карма: 20
Рейтинг сообщений: 223
Зарегистрирован: Пт сен 13, 2013 13:11:31
Сообщений: 6443
Рейтинг сообщения: 0
Хорошо, обязуюсь впредь сообщать здесь лишь о тех ошибках в МК, которые угрожают неминуемой смертью всему человечеству.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пн авг 06, 2018 13:00:24 
Собутыльник Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 428
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2529
Рейтинг сообщения: 0
Ну почему же, информация нужная и полезная. Кто-то даже про оператор |= узнал из дампа. Просто к чему такие эмоции?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пн авг 06, 2018 13:08:23 
Друг Кота

Карма: 20
Рейтинг сообщений: 223
Зарегистрирован: Пт сен 13, 2013 13:11:31
Сообщений: 6443
Рейтинг сообщения: 0
Настроение, наверное, такое. Кстати, тут попутно заинтересовался, а если ли возможность в языке Си определить write-only конструкцию? Армы наворотили вот таких макросов, только непонятно, с какой целью:
Код:
#ifdef __cplusplus
  #define   __I     volatile             /*!< Defines 'read only' permissions */
#else
  #define   __I     volatile const       /*!< Defines 'read only' permissions */
#endif
#define     __O     volatile             /*!< Defines 'write only' permissions */
#define     __IO    volatile             /*!< Defines 'read / write' permissions */

Чего было тужиться, если 'write only' ничем не отличается от 'read / write' ?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пн авг 06, 2018 13:22:14 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 20
Рейтинг сообщений: 648
Зарегистрирован: Пт май 31, 2013 17:14:38
Сообщений: 2081
Откуда: Украина, Винница
Рейтинг сообщения: 0
volatile указывает компилятору что эту переменную нельзя оптимизировать (вырезать), и только. и армы тут ни при чем.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пн авг 06, 2018 13:59:24 
Друг Кота

Карма: 20
Рейтинг сообщений: 223
Зарегистрирован: Пт сен 13, 2013 13:11:31
Сообщений: 6443
Рейтинг сообщения: 0
Код писали армы (Copyright (c) 2009-2018 Arm Limited. All rights reserved), т.ч. это компилятор тут скорее ни при чем, а армы очень даже причем. Тужились изобразить то, чего не существует в природе.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пн авг 06, 2018 14:45:04 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 20
Рейтинг сообщений: 648
Зарегистрирован: Пт май 31, 2013 17:14:38
Сообщений: 2081
Откуда: Украина, Винница
Рейтинг сообщения: 0
нет. армы перестраховались от того, что компилятор порежет какую-то инициализацию/работу с областью памяти и использовали стандартный подход.
Спойлер"А зачем вообще тогда нужно ключевое слово volatile? Джеймс Канзе пишет, что задумывался volatile для работы с memory mapped IO (MMIO). Интересно он пишет, переведу кусок подробно

На уровне железа многие процессоры просто резервируют блок адресов памяти для портов ввода-вывода. Большинство процессоров имеют отдельное пространство адресов ввода-вывода, со специальными инструкциями для доступа туда, но это не универсально (на PDP-11 такого не было, например) и даже сейчас, производители железа могут предпочесть использовать для этого адресное пространство памяти, по разным причинам. Я сомневаюсь, что кто-то так делает на архитектуре 8086 - различные адресные ограничения делают это очень сложным. Я видел это на 8080, это очень частое решение на старой TI 9900. И это был единственный способ организовать ввод-вывод на наборе инструкций PDP-11, там просто не было отдельного адресного пространства ввода-вывода (Я думаю, то же самое верно и для VAX. И не забывайте, что большинство работы на С раньше проходило именно на этих двух процессорах).
Теперь рассмотрим один из первых последовательных портов, что я использовал: Intel 8051. Нормальным способом его инициализации было записать 0 три раза в порт управления. Если у вас MMIO, то код на С мог бы выглядеть примерно так:

unsigned char* pControl = 0xff24 ;
*pControl = 0 ;
*pControl = 0 ;
*pControl = 0 ;

Что прекрасно работало на всех компиляторах С. Но вы можете себе представить, что могла бы с этим сделать сама простая оптимизация. По этой причине и нужно было ключевое слово volatile, чтобы сказать компилятору не оптимизировать."
http://alenacpp.blogspot.com/2006/04/volatile.html
но погуглить это не наши методы.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 8826 ]     ... , , , 212, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y