Например TDA7294

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

Текущее время: Вт дек 23, 2025 07:26:49

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


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



Начать новую тему Ответить на тему  [ Сообщений: 8919 ]     ... , , , 429, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт мар 07, 2025 12:43:18 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2135
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18447
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
благодарю! особенно за п.4

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт мар 07, 2025 13:02:55 
Мучитель микросхем

Карма: 1
Рейтинг сообщений: 48
Зарегистрирован: Вт окт 01, 2024 15:22:33
Сообщений: 476
Рейтинг сообщения: 0
4) 32-битный процессор читает любую переменную 8-32 бита за один такт.
Определите глобальную структуру данных со своими переменными и используйте их во всех ваших файлах

Не совсем, M0+ атомарно читает любую выровненную 16/32 бит переменную.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт мар 07, 2025 14:04:47 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2135
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18447
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
ну так если я никаких указаний по выравниванию переменных компилятору не давал, он по умолчанию будет все выравнивать?

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт мар 07, 2025 14:17:05 
Мучитель микросхем

Карма: 1
Рейтинг сообщений: 48
Зарегистрирован: Вт окт 01, 2024 15:22:33
Сообщений: 476
Рейтинг сообщения: 0
ну так если я никаких указаний по выравниванию переменных компилятору не давал, он по умолчанию будет все выравнивать?

Для отдельной переменной будет, а со структурами нужно быть осторожным, тем более у M3 и выше уже поддержка невыровненного доступа есть и там даже если атрибут упаковки на структуру повесить все равно будет работать правильно.


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт мар 07, 2025 19:45:34 
Говорящий с текстолитом

Карма: -7
Рейтинг сообщений: 187
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1660
Рейтинг сообщения: 0
jcxz, вот вопрос на счет журнала EEPROM. вы настоятельно рекомендовали применять хитрое кодирование, забыл, как называется, но у меня вопрос: зачем?! ведь если просто указывать длину записи в её первом байте, можно легко проследить всю цепочку записей, а если эта длина равна 0, значит, больше записей нет.
В смысле - нет? Как такое может быть? Вы точно поняли алгоритм, который я описывал???
в чем скрытый смысл вашего подхода и какие минусы у моего?
Подумайте - что будет при вашем способе, если в момент дозаписи в журнал очередной записи, произойдёт сбой питания? Как затем будете писать в журнал новые записи?
Кодирование здесь для того же, для чего оно используется при передаче данных в системах связи - чтобы при помехе потерять один пакет, а не полностью потерять связь.

Добавлено after 18 minutes 46 seconds:
[*]нужно ли эту переменную описывать volatile?
Обязательно.
[*]для атомарного доступа есть какие-то готовые решения, или тупо использовать пару taskENTER_CRITICAL()/taskEXIT_CRITICAL()?
Непонятно что имеется в виду под атомарным доступом? Какая операция?
Простые 8-/16-/32-битные чтения и записи - на ARM атомарны. С точки зрения одного ядра CPU. Но могут занимать несколько шинных операций.
[*]если я "забуфферизирую" эту переменную в потоке, где использую, примерно так uint32_t tmp = __ATOMIC_READ(ABC); - компилятор ничего не учудит с оптимизацией tmp? в том плане, что посчитает меня тупее валенка и вместо tmp продолжит использовать ABC?
Если объявите ABC с volatile - то в этом месте скопирует её в tmp и далее будет использовать tmp.
[*]если ответ на предыдущий вопрос "компилятор может учудить", как его заставить этого не делать?
Компилятор не "чудит". Он оптимизирует. Чтобы не оптимизировал - используйте volatile.
[*]или, поскольку ARM 32-битный, чтение любой переменной этого размера всегда атомарное, и достаточно просто забуфферизировать переменную?
не всегда. Зависит от множества факторов. И "атомарное" - для кого? Для самого этого CPU или для другого bus-master на шине? Или для периферийного блока?
[*]я тупой, и вообще не в том направлении думаю?[/list]
Откройте описание системы команд ARM. там всё есть. :)

Добавлено after 1 minute 7 seconds:
4) 32-битный процессор читает любую переменную 8-32 бита за один такт.
Не факт. Зависит от множества факторов.

Добавлено after 2 minutes 30 seconds:
Не совсем, M0+ атомарно читает любую выровненную 16/32 бит переменную.
Ещё более "не совсем" - даже выровненные переменные могут читаться за несколько тактов, если они расположены в памяти, подключенной шиной с разрядностью менее 32 бит.
Также память может быть не zero-wait states. Тоже требует больше тактов. Даже внутренняя ОЗУ (некоторые её регионы) в некоторых ARM требует более одного такта для доступа.
Также память может быть занята обращением другого bus-master. CPU тоже придётся ждать.
PS: Речь не про M0+, а вообще про ARM-ы.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт мар 07, 2025 21:54:24 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2135
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18447
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Почему-то после ваших ответов становится еще менее понятно, чем до...

Добавлено after 49 seconds:
Атомарно - в рамках ртос. Т.е. пока одна задача читает, вторая внезапно не поменяет.

Добавлено after 6 minutes 52 seconds:
Можно подумать, при вашем способе записи сбой не разрушит последнюю запись и не нарушит цепочку... Ваш способ просто разновидность байтстаффинга, причем относительно "тяжелой" реализации.

Что касается вопроса о последней записи, то я вас вообще не понимаю... Вот у нас чистый журнал, только-только после первой инициализации, и мы меняем переменную... В журнал помещена запись... Потом происходит сброс, МК начинает листать записи журнала для "восстановления" переменных - разве ему не надо знать, что в журнале единственная запись?! Вот он ее прочел, допустим, 5 байт, смотрит 6-й - э там условно EOF, значит, больше записей нет. Вот это и есть пометка последней записи, оно же начало следующей, если таковая появится. Что не так-то?!

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Сб мар 08, 2025 02:54:34 
Говорящий с текстолитом

Карма: -7
Рейтинг сообщений: 187
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1660
Рейтинг сообщения: 0
Атомарно - в рамках ртос. Т.е. пока одна задача читает, вторая внезапно не поменяет.
Что такое "в рамках ртос"? Контроллер DMA - он в рамках ртос или за рамками?
Для контроллера DMA невыровненная запись CPU может быть неатомарной. Для самого пишущего CPU - атомарна. Для какой-то периферии или другого CPU - тоже может быть неатомарна.

Можно подумать, при вашем способе записи сбой не разрушит последнюю запись и не нарушит цепочку...
Последнюю запись - разрушит, всю цепочку - нет. Вроде это очевидно.
Ваш способ просто разновидность байтстаффинга, причем относительно "тяжелой" реализации.
Значит вы так ничего и не поняли. Печально. Советую ещё раз всё обдумать.
EOF, значит, больше записей нет. Вот это и есть пометка последней записи
В описанном мной журнале нет и не может быть никаких EOF. Там только есть записи, и есть пространство между записями. COBS-кодирование нужно чтобы однозначно можно было отделить байты записей от байтов пространства между записями.
Не обязательно COBS, можно другое кодирование, позволяющее экранировать часть символов. Но COBS - самое оптимальное.

PS: Не строчите сообщения одно за одним. Лучше потратьте это время на обдумывание. Там же всё примитивно и логически понятно что и для чего. А мы тут уже сколько жуём эту примитивщину...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Сб мар 08, 2025 07:38:26 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2135
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18447
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
jcxz писал(а):
Контроллер DMA - он в рамках ртос или за рамками?
в FreeRTOS есть средства работы с DMA? перестаньте отвечать на собственные вопросы, если есть желание - отвечайте только на заданные. без сферических коней в вакууме.
jcxz писал(а):
Для какой-то периферии или другого CPU - тоже может быть неатомарна.
еще раз: я написал неатомарную инструкцию a++ - где тут DMA и шины?! процессор: (1) берет значение, (2) увеличивает на 1 и (3) сохраняет значение. Между (1) и (2) и/или (2) и (3) РТОС может передать управление другому процессу, которые тоже изменяет эту переменную, и результат будет непредсказуемый. при чем тут аппаратура, строение ядра и такты шины?! если вы не понимаете, что меня волнует, лучше задайте наводящие вопросы, вместо того, чтобы улетать в заоблачные выси теории всего
jcxz писал(а):
Советую ещё раз всё обдумать.
советую еще раз объяснить
jcxz писал(а):
В описанном мной журнале нет и не может быть никаких EOF. Там только есть записи, и есть пространство между записями.
и "пространство" между записями не является признаком конца предыдущей записи, да? и как тогда ваш журнал читать, до конца всей памяти каждый раз? если нет пометки последней записи...
jcxz писал(а):
Последнюю запись - разрушит, всю цепочку - нет.
ну так и мой способ сделает ровно то же - последнюю порушит, остальные нет. если в вашем кодировании сбой изменит значение ячейки, в которой был байт, "исключенный" COBS-кодированием, ваш метод вообще неизвестно что считает из записи... в том числе и может затереть чужую память...

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пн мар 17, 2025 09:42:42 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2135
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18447
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
А есть какие-то хитрости с подключением SWD?
Странная ситуация возникла... IAR через ST-LINK не подключается к процу, говорит, таргет не найден. При этом буквально 5 секунд назад этот самый проц этим самым ST-LINK из этого самого IAR прошил. При старте прошивки вылетело окно с предупреждением об ошибке инициализации Debug-режима, дескать, Hard Fault зафиксирован, но я списал это на попытку отладить МК с пустой FLASH... МК прошился, стартанул, работает, но теперь отладчик не подключается.
И таких изделий несколько, и все ведут себя одинаково - не отлаживаются, но работают...

Что происходит вообще?! :shock:

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


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

Карма: 86
Рейтинг сообщений: 1035
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4897
Откуда: Минск
Рейтинг сообщения: 4
Возможно, в программе переназначаются (на режим GPIO, например) линии SWD, которые для дебага используются.


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

Карма: 14
Рейтинг сообщений: 383
Зарегистрирован: Пт апр 09, 2010 16:06:38
Сообщений: 1062
Откуда: Тула
Рейтинг сообщения: 0
ARV, возможно код в Option bytes устанавливает режим Read Out Protection != Level 0.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пн мар 17, 2025 15:56:58 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2135
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18447
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Возможно, в программе переназначаются (на режим GPIO, например) линии SWD, которые для дебага используются.

вроде бы нет, если верить схеме...
Andrey_B писал(а):
возможно код в Option bytes устанавливает режим Read Out Protection != Level 0
тоже как-то сомнительно...

подскажите, автономный прошивальщик от ST как называется? что-то ищу у них на сайте и не нахожу. не то ищу, наверное...

Добавлено after 7 minutes:
отбой, нашел :))) мой инглиш подвел

Добавлено after 32 minutes 20 seconds:
Что происходит вообще?! :shock:
странно, что никто не подсказал тривиальное: настроить параметры ST-LINK "Connect during reset"... Стал подключаться нормально.

Добавлено after 21 minute 39 seconds:
Возможно, в программе переназначаются (на режим GPIO, например) линии SWD
оказалось, так и есть! В программе предусмотрена "настроечная" перемычка на замыкании SWCLK на землю...

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


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

Карма: 59
Рейтинг сообщений: 1575
Зарегистрирован: Вт окт 22, 2013 04:37:23
Сообщений: 3421
Откуда: Казань
Рейтинг сообщения: 0
ARV, возможно по тому, что при работе с ST-LINK подключение "через reset" как бы само собой разумеющееся. Порой трудно сообразить, что нужно учить "дышать". Да и гуглится Ваша проблема на раз - вот Ваш случай один в один.

_________________
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезисты Ordyl Alpha 350 и AM 140.
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльная маска XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пн мар 17, 2025 16:38:57 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2135
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18447
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
smacorp писал(а):
Да и гуглится Ваша проблема на раз
всё на раз гуглится, когда знаешь, что гуглить. а когда не знаешь - получаешь такой выхлоп, в котором разбираешься по три дня, пока не поймешь, что это вообще не о том... потому и спрашиваю на форуме, но тоже эффективность не высокая.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


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

Карма: 18
Рейтинг сообщений: 433
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2556
Рейтинг сообщения: 0
В первом же ответе вижу правильную причину.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пн мар 17, 2025 20:10:57 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2135
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18447
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Мне в размышлении глубоком
Сказал однажды Лизимах:
Что зрячий зрит здоровым оком,
Слепой не видит и в очках.

Классика ж

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Вт мар 18, 2025 07:46:11 
Сверлит текстолит когтями

Зарегистрирован: Вт ноя 19, 2019 06:10:18
Сообщений: 1269
Рейтинг сообщения: 0
ARV писал(а):
всё на раз гуглится, когда знаешь, что гуглить.

Ну так изучите процедуру подключения отладчика.
Он может подключаться под reset'ом или без него, с предварительным сбросом МК или без сброса к работающему, с "железным" сбросом или софтовым. Ещё учтите, как инициализированы ноги для подключения SWD. Не помню где попадалось, но некоторым средам если не сказать, что тебе нужен SWD, так они его ноги переведут в режим аналогового ввода. Так что вариантов не много, просто нужно проверить настройки. Ну и про защиту памяти не забываем. Кстати, Куб не всегда может подключиться с платам с Али, потому что китайцы иногда полностью блокируют доступ к МК, поэтому приходится через КубПрограмматор подключиться и сбросить защиту с очисткой памяти.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Вт апр 01, 2025 10:02:06 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2135
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18447
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
опять лыжи не едут... требуется помощь зала.

Дошел до момента, когда для новой задачи FreeRTOS перестало хватать Heap. Пытаюсь заменить задачу на обработчик прерывания таймера TIM6. При помощи куба делаю настройку:
Изображение
Предполагаю прерываться каждые 10 мс.

В недрах сгенерированных исходников, а именно в файле stm32l0xx_it.c добавляю вызов своей функции:
Изображение

Ставлю брейкпоинт на обработчик, компилирую, запускаю - бряк не происходит. Задачи RTOS крутятся, а прерывание таймера не возникает. Естественно, куб все инициализации сам сделал, в исходники вставил, и я туда не лез. В принципе, все шаги инициализации через HAL делаются, в отладчике проследил.

Что я упускаю на этот раз?!

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Вт апр 01, 2025 10:08:21 
Друг Кота
Аватар пользователя

Карма: 50
Рейтинг сообщений: 1398
Зарегистрирован: Пт авг 28, 2009 21:34:30
Сообщений: 7321
Откуда: 845-й км.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Вы не упомянули, что зашли в NVIC и там это прерывание "заэнейблили"


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Вт апр 01, 2025 10:58:38 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2135
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18447
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
зашел и заэнейблил, уж этот уровень я преодолел... оказалось, еще надо принудительно таймер включить... это тоже теперь сделано... но прерываний нет

Добавлено after 35 minutes:
причем таймер считает, значение счетчика меняется. где-то прерывания запрещены, что ли... хотя в регистре разрешения битик стоит... не понимаю...

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


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

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


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

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


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

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


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