-
Постов
1 584 -
Зарегистрирован
-
Посещение
-
Победитель дней
1
juvf стал победителем дня 13 марта
juvf имел наиболее популярный контент!
Репутация
10 ХорошийИнформация о juvf
- Сейчас Просмотр темы: Плавный переход C -> C++ под МК
-
Звание
Профессионал
Контакты
-
Сайт
Array
-
ICQ
Array
Посетители профиля
-
Плавный переход C -> C++ под МК
juvf ответил Arlleex тема в Программирование
мне не надо. я для 10 байт выделю 10. Да, это просматривается. Просто ещё бывает, что разработали контроллер для одной задачи, а потом смогли его использовать в другой. а потом в 3-ей.... а потом в 100-ой. Обычно, при таком подходе нет издержек на разработку нового железа, нет издержек на расширение элементной базы... -
Плавный переход C -> C++ под МК
juvf ответил Arlleex тема в Программирование
памяти для ТЗ хватает. кому-то не хватает .... чего-то, поэтому кому-то приходится городить память 12.8 раз больше требуемой задачи. -
Плавный переход C -> C++ под МК
juvf ответил Arlleex тема в Программирование
вы вообще о чем говорите? какое внешнее ОЗУ SPI? Есть железо собранное. Есть задача - написать ПО для этого железа. Выделяйте для 10 байт - массив в 128 байт. По другому не умеете - делайте как умеете. -
Плавный переход C -> C++ под МК
juvf ответил Arlleex тема в Программирование
на всякий случай, я цифру 128 написал от балды, это лишь для примера было. -
Плавный переход C -> C++ под МК
juvf ответил Arlleex тема в Программирование
смотрю.... 12,5%. Это во первых, во вторых - А сколько будет в ОЗУ этих ваших RxPacketMemory? один? два? или 700 по 1024 байт?. В третих - дело не только в ОЗУ. Вот сейчас у меня задача регистрировать пакеты в флешь/фрам. Или я там сохраню мелких пакетов за год, или жирных за час? В третих... ну поставите вы вместо какого нить МК мелким ОЗУ пушку, с 1 Gb ОЗУ.... напишите код... а в этой системе есть датчик на мелком PIC. И? Для PIC будете новый код писать? и т.д. и т.п. Так вот этим и занимаемся. -
Плавный переход C -> C++ под МК
juvf ответил Arlleex тема в Программирование
а с какой цифры начинается много? лично для меня и 128 бит много. Нужно массив в 10 байт - выделяем 128. 👍 А потом почему-то памяти для какого нибудь регистратора не хватает или канал передачи в 1 Gb не прокачивает. 1024/128 = 8. +хидер, +кс, как итог максимально 7 пакетов в такой буфер влезет. -
Плавный переход C -> C++ под МК
juvf ответил Arlleex тема в Программирование
структура в с++ это уже костыльно. Зачем в с++ в этом случае структура? коль вы выехали из деревни, так и бросьте деревенские привычки переехали в с++, так и пишите на с++, пишите классы. -
Плавный переход C -> C++ под МК
juvf ответил Arlleex тема в Программирование
ну допустим, в основном, 90% пакетов - это 10...20 байт. Но есть пакеты до 128 байт. Т.е. максимальный размер 128. Как это поможет? В стандратном C++ нет прямой поддержки добавления переменных после fam в структуре. гибкий массив должен быть последним членом структуры. Но компиляторы могут поддерживать расширения, позволяющие размещать дополнительные члены после fam. Например, расширение GCC "Zero-Length Array" (ZLA) позволяет добавлять дополнительные члены после гибкого массива. struct FlexFrame { Header hdr; int length; u8 data[]; // <- гибкий массив, а значит дальше можно ставить только элементы с атрибутом "гибкого положения" u32 crc; // положение этого члена "гибкое", в зависимости от объема поля data при создании структуры }; использование таких расширений делает код нестандартным и не переносимым между различными компиляторами и платформами. Лучше избегать использования таких расширений и следовать стандарту C++. -
Плавный переход C -> C++ под МК
juvf ответил Arlleex тема в Программирование
Вся вишенка CRC. Если CRC не в конце, то ..... Так это понятно из структуры TxRS485. А вы о каких протоколах говорите? О текстовых? -
Плавный переход C -> C++ под МК
juvf ответил Arlleex тема в Программирование
а так же с Little Endian и Big Endian -
Плавный переход C -> C++ под МК
juvf ответил Arlleex тема в Программирование
ни каких указателей в протоколе передачи данных нет. Данные по указателю улетают. Не указатели, а данные. Мне кажется задача действительно тривиальная. Свой класс-обёртка к указателю данных (без std::*). Легковесно и тривиально. -
Плавный переход C -> C++ под МК
juvf ответил Arlleex тема в Программирование
плюсую #include <vector> struct TxRS485 { Header hdr; std::vector<u8> bytes; u32 crc; }; Использование TxRS485 tx; tx.bytes.push_back(0x01); // добавление элемента в вектор tx.bytes.push_back(0x02); // Размер вектора может быть изменен динамически tx.bytes.resize(10); // Получение доступа к элементам вектора tx.bytes[0] = 0x11; tx.bytes[1] = 0x22; -
Плавный переход C -> C++ под МК
juvf ответил Arlleex тема в Программирование
Потому что компилятор не сможет установить правильный тип для этих параметров при вызове функции. Если вы вызовете эту функцию с определенным типом A, компилятору не будет известен тип B, потому что он не указан явно в аргументах функции. И, следовательно, компилятор не сможет сгенерировать соответствующий код для типа B. Вы потом сделаете вызов int asd; func(asd); компилатор сгенерирует func(int). А какой тип будет В? -
STM32 & PID-регулятор
juvf ответил dimir тема в Программирование
Моё цитирование говорит, что jcxz речь ведёт про электротранспорт. Весь мой пост - это обращение к ТС. Прочитайте весь мой пост, а не одну строчку. Замените слово "Вы" на "Вы, dimir,". -
STM32 & PID-регулятор
juvf ответил dimir тема в Программирование
Я процитировал jcxz-а. Я обращался к dimir-у, процитировал jcxz-а. Я хотел процитировать не кого попало, а именно jcxz и не кому попало а именно топикастеру, Что не так? jcxz привел пример про электротранспорт. dimir стал говорить в ответ про какой-то карбюратор. Я dimir-у процитировал jcxz-а, показав ему dimir-у, что jcxz говорить об электротранспорте. В чем ко мне претензия? Что не так? тс, разбери любую мышку старую мышку с шаром (или с не очень старую с центральным колёсиком). Там эти колёсики... и там же ИКашками можно разжиться.