Например TDA7294

Форум РадиоКот • Просмотр темы - Stm32 с чего начать изучение...
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Ср мар 11, 2026 11:22:47

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


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



Начать новую тему Ответить на тему  [ Сообщений: 1149 ]     ... , , , 53, , , ...  
Автор Сообщение
 Заголовок сообщения: Re: Stm32 с чего начать изучение...
СообщениеДобавлено: Вт фев 17, 2026 19:35:22 
Вымогатель припоя
Аватар пользователя

Карма: 2
Рейтинг сообщений: 19
Зарегистрирован: Пн сен 15, 2025 08:43:23
Сообщений: 519
Откуда: Маленький СССР посреди шариатской республики
Рейтинг сообщения: 0
А я вот с утра, пока ждал будильника, подумал: а как вы, любители ртосей, решаете проблему аллокаторов?
Ведь в "младших" ARMянах нет возможности отобразить "кусочную" память на линейную виртуальную. Соответственно, выделять можно только целыми кусками, без разрывов. А это в итоге приведет к тому, что sbrk перестанет работать, т.к. кончатся целые куски нужного размера!

_________________
Windows must die!


Вернуться наверх
 
 Заголовок сообщения: Re: Stm32 с чего начать изучение...
СообщениеДобавлено: Вт фев 17, 2026 20:10:19 
Встал на лапы

Зарегистрирован: Пн фев 16, 2026 17:30:02
Сообщений: 133
Рейтинг сообщения: 0
Статическое распределение памяти на этапе компиляции - и никаких проблем! Требование MISRA выполняется. В этом смысле РТОС не отличается от обычной системы.


Вернуться наверх
 
 Заголовок сообщения: Re: Stm32 с чего начать изучение...
СообщениеДобавлено: Вт фев 17, 2026 21:15:11 
Вымогатель припоя
Аватар пользователя

Карма: 2
Рейтинг сообщений: 19
Зарегистрирован: Пн сен 15, 2025 08:43:23
Сообщений: 519
Откуда: Маленький СССР посреди шариатской республики
Рейтинг сообщения: 0
Rapra, однако, бывают и любители аллокаторов. Зачем их тащить в МК - не понимаю, но как-то ведь тащат!

_________________
Windows must die!


Вернуться наверх
 
 Заголовок сообщения: Re: Stm32 с чего начать изучение...
СообщениеДобавлено: Вт фев 17, 2026 21:22:55 
Ум, честь и совесть. И скромность.
Аватар пользователя

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

Добавлено after 3 minutes 41 second:
По поводу аллокаторов: работа со строками стандартными libc-функциями при статическом распределении памяти порождает большой расход памяти на промежуточные буферы... И борьба с этим, порой, страшнее динамического выделения стандартными же функциями.

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

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


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
 Заголовок сообщения: Re: Stm32 с чего начать изучение...
СообщениеДобавлено: Ср фев 18, 2026 07:06:44 
Сверлит текстолит когтями

Зарегистрирован: Вт ноя 19, 2019 06:10:18
Сообщений: 1282
Рейтинг сообщения: 0
linux_rulezz писал(а):
Зачем их тащить в МК - не понимаю

У меня ПЛК исполняет задачу пользователя. Априори не известно, сколько потребуется памяти для буферов запросов, например, по Модбас, которые будет делать программа пользователя. Поэтому при старте МК у ОС запрашивается, например, 2К ОЗУ, размещением данных в которых управляют мои переопределённые new/delete. Поскольку формат данных известен, то получается работать внутри этих 2К без утечек памяти.


Вернуться наверх
 
 Заголовок сообщения: Re: Stm32 с чего начать изучение...
СообщениеДобавлено: Ср фев 18, 2026 08:40:50 
Вымогатель припоя
Аватар пользователя

Карма: 2
Рейтинг сообщений: 19
Зарегистрирован: Пн сен 15, 2025 08:43:23
Сообщений: 519
Откуда: Маленький СССР посреди шариатской республики
Рейтинг сообщения: 0
Поскольку формат данных известен, то получается работать внутри этих 2К без утечек памяти.

А как бороться с фрагментацией и отсутствием виртуального линейного адресного пространства?

_________________
Windows must die!


Вернуться наверх
 
 Заголовок сообщения: Re: Stm32 с чего начать изучение...
СообщениеДобавлено: Ср фев 18, 2026 09:25:28 
Сверлит текстолит когтями

Зарегистрирован: Вт ноя 19, 2019 06:10:18
Сообщений: 1282
Рейтинг сообщения: 0
linux_rulezz писал(а):
А как бороться с фрагментацией и отсутствием виртуального линейного адресного пространства?

Я же выше написал, что формат данных известен, плюс соответствующий подход к организации хранения, поэтому не возникает утечки памяти, вызванной её фрагментацией.


Вернуться наверх
 
 Заголовок сообщения: Re: Stm32 с чего начать изучение...
СообщениеДобавлено: Ср фев 18, 2026 09:37:21 
Ум, честь и совесть. И скромность.
Аватар пользователя

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

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

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


Вернуться наверх
 
 Заголовок сообщения: Re: Stm32 с чего начать изучение...
СообщениеДобавлено: Ср фев 18, 2026 10:37:27 
Сверлит текстолит когтями

Зарегистрирован: Вт ноя 19, 2019 06:10:18
Сообщений: 1282
Рейтинг сообщения: 0
ARV писал(а):
так?

Нет.
Открываю описание языка:
Код:
struct имя_структуры
{
    тип1 имя_поля1 : ширина_поля1;
    тип2 имя_поля2 : ширина_поля2;
    //..............
    типi имя_поляi : ширина_поляi;
}

Где здесь про 4 байта?
Пишу:
Код:
struct
{
   short
      a:2,
      b:3;
}
packed_structure;

У g++ нет возражений.


Вернуться наверх
 
 Заголовок сообщения: Re: Stm32 с чего начать изучение...
СообщениеДобавлено: Ср фев 18, 2026 11:39:29 
Ум, честь и совесть. И скромность.
Аватар пользователя

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

Где здесь про 4 байта?
нигде. если я не ошибаюсь, структура с битовыми полями пакуется в размер int по умолчанию, или кратно этому размеру. если активировать packed - тут я уже путаюсь, но в опциях AVR-GCC была возможность принудительно паковать в байт.

как в 32-битных системах - не знаю. просто мне нужно описать битовые поля для 16-битного доступа МК.
Код:
typedef struct{
  bool fld1 : 1;
  bool fld2 : 1;
} my_struct;

// нужно чтобы sizeof(my_struct) == 2

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

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


Вернуться наверх
 
 Заголовок сообщения: Re: Stm32 с чего начать изучение...
СообщениеДобавлено: Ср фев 18, 2026 11:47:49 
Сверлит текстолит когтями

Зарегистрирован: Вт ноя 19, 2019 06:10:18
Сообщений: 1282
Рейтинг сообщения: 4
ARV писал(а):
просто мне нужно описать битовые поля для 16-битного доступа МК.

А я вам что показал? Или спецификацию языка не читали?
Код:
struct
{
   short
      a:2,
      b:3;
}
packed_structure;

Или не знаете размер short?


Вернуться наверх
 
 Заголовок сообщения: Re: Stm32 с чего начать изучение...
СообщениеДобавлено: Ср фев 18, 2026 12:27:49 
Ум, честь и совесть. И скромность.
Аватар пользователя

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

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

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


Вернуться наверх
 
 Заголовок сообщения: Re: Stm32 с чего начать изучение...
СообщениеДобавлено: Ср фев 18, 2026 12:41:12 
Сверлит текстолит когтями

Зарегистрирован: Вт ноя 19, 2019 06:10:18
Сообщений: 1282
Рейтинг сообщения: 0
хм... я ожидал, что все биты всех полей будут просуммировны и впихнуты в размер int независимо от размеров типов самих полей...

Такое выравнивание включают для ускорения доступа. Если этого не делать, то компилятор вставляет дополнительный код для извлечения таких данных.


Вернуться наверх
 
 Заголовок сообщения: Re: Stm32 с чего начать изучение...
СообщениеДобавлено: Ср фев 18, 2026 12:44:59 
Ум, честь и совесть. И скромность.
Аватар пользователя

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

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

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


Вернуться наверх
 
 Заголовок сообщения: Re: Stm32 с чего начать изучение...
СообщениеДобавлено: Ср фев 18, 2026 12:51:03 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1443
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4613
Откуда: Планета Земля
Рейтинг сообщения: 4
Медали: 1
Получил миской по аватаре (1)
Код:
// нужно чтобы sizeof(my_struct) == 2

Код:
#pragma pack(push, 2)

typedef struct{
  bool fld1 : 1;
  bool fld2 : 1;
} my_struct;

#pragma pack(pop)


Вернуться наверх
 
 Заголовок сообщения: Re: Stm32 с чего начать изучение...
СообщениеДобавлено: Ср фев 18, 2026 13:06:54 
Сверлит текстолит когтями

Зарегистрирован: Вт ноя 19, 2019 06:10:18
Сообщений: 1282
Рейтинг сообщения: 0
То есть мой вопрос в итоге сводится к следующему: по умолчанию структура пакуется в минимальное количество байт или для этого надо какие-то опции включить?

Не забывайте, что ещё есть линковщик, у которого есть свои настройки по выравниванию. Ваше
Цитата:
// нужно чтобы sizeof(my_struct) == 2
будет выполняться, но данные в памяти могут занимать гораздо больше.


Вернуться наверх
 
 Заголовок сообщения: Re: Stm32 с чего начать изучение...
СообщениеДобавлено: Ср фев 18, 2026 13:18:02 
Ум, честь и совесть. И скромность.
Аватар пользователя

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

если нужны настройки - то какие именно?

мне важно, чтобы при обращению к массиву моих структур по индексу я не переписывал соседние структуры, и чтобы между структурами массива не было "дыр" из неиспользуемых байтов (т.к. в эту область памяти данные пишутся побайтно).

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

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


Вернуться наверх
 
 Заголовок сообщения: Re: Stm32 с чего начать изучение...
СообщениеДобавлено: Ср фев 18, 2026 13:21:41 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1443
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4613
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
tonyk писал(а):
будет выполняться, но данные в памяти могут занимать гораздо больше.
Думаю, ARV, имеет в виду выравнивание по 16-ти битам, а не заботится о занятой памяти.


Вернуться наверх
 
 Заголовок сообщения: Re: Stm32 с чего начать изучение...
СообщениеДобавлено: Ср фев 18, 2026 13:28:31 
Ум, честь и совесть. И скромность.
Аватар пользователя

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

да, именно. у меня эти "структуры" читаются и пишутся в виде регистров модбас (16-битных), а драйвер модбаса имеет к ним доступ в виде линейного массива 16-битных ячеек. поэтому мне крайне важно, чтобы ни при каких обстоятельствах между регистрами не появились дырки, и чтобы ни при каких обстоятельствах моя программа не стала писать туда по 32 бита за раз, только по 16.

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

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


Вернуться наверх
 
 Заголовок сообщения: Re: Stm32 с чего начать изучение...
СообщениеДобавлено: Ср фев 18, 2026 13:30:10 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1443
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4613
Откуда: Планета Земля
Рейтинг сообщения: 4
Медали: 1
Получил миской по аватаре (1)
ARV писал(а):
да, именно. ....
Тогда #pragma pack


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

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


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

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


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