Перейти к содержанию
    

juvf

Свой
  • Постов

    1 584
  • Зарегистрирован

  • Посещение

  • Победитель дней

    1

juvf стал победителем дня 13 марта

juvf имел наиболее популярный контент!

Репутация

10 Хороший

Информация о juvf

Контакты

  • Сайт
    Array
  • ICQ
    Array

Посетители профиля

6 905 просмотров профиля
  1. мне не надо. я для 10 байт выделю 10. Да, это просматривается. Просто ещё бывает, что разработали контроллер для одной задачи, а потом смогли его использовать в другой. а потом в 3-ей.... а потом в 100-ой. Обычно, при таком подходе нет издержек на разработку нового железа, нет издержек на расширение элементной базы...
  2. памяти для ТЗ хватает. кому-то не хватает .... чего-то, поэтому кому-то приходится городить память 12.8 раз больше требуемой задачи.
  3. вы вообще о чем говорите? какое внешнее ОЗУ SPI? Есть железо собранное. Есть задача - написать ПО для этого железа. Выделяйте для 10 байт - массив в 128 байт. По другому не умеете - делайте как умеете.
  4. на всякий случай, я цифру 128 написал от балды, это лишь для примера было.
  5. смотрю.... 12,5%. Это во первых, во вторых - А сколько будет в ОЗУ этих ваших RxPacketMemory? один? два? или 700 по 1024 байт?. В третих - дело не только в ОЗУ. Вот сейчас у меня задача регистрировать пакеты в флешь/фрам. Или я там сохраню мелких пакетов за год, или жирных за час? В третих... ну поставите вы вместо какого нить МК мелким ОЗУ пушку, с 1 Gb ОЗУ.... напишите код... а в этой системе есть датчик на мелком PIC. И? Для PIC будете новый код писать? и т.д. и т.п. Так вот этим и занимаемся.
  6. а с какой цифры начинается много? лично для меня и 128 бит много. Нужно массив в 10 байт - выделяем 128. 👍 А потом почему-то памяти для какого нибудь регистратора не хватает или канал передачи в 1 Gb не прокачивает. 1024/128 = 8. +хидер, +кс, как итог максимально 7 пакетов в такой буфер влезет.
  7. структура в с++ это уже костыльно. Зачем в с++ в этом случае структура? коль вы выехали из деревни, так и бросьте деревенские привычки переехали в с++, так и пишите на с++, пишите классы.
  8. ну допустим, в основном, 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++.
  9. Вся вишенка CRC. Если CRC не в конце, то ..... Так это понятно из структуры TxRS485. А вы о каких протоколах говорите? О текстовых?
  10. ни каких указателей в протоколе передачи данных нет. Данные по указателю улетают. Не указатели, а данные. Мне кажется задача действительно тривиальная. Свой класс-обёртка к указателю данных (без std::*). Легковесно и тривиально.
  11. плюсую #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;
  12. Потому что компилятор не сможет установить правильный тип для этих параметров при вызове функции. Если вы вызовете эту функцию с определенным типом A, компилятору не будет известен тип B, потому что он не указан явно в аргументах функции. И, следовательно, компилятор не сможет сгенерировать соответствующий код для типа B. Вы потом сделаете вызов int asd; func(asd); компилатор сгенерирует func(int). А какой тип будет В?
  13. Моё цитирование говорит, что jcxz речь ведёт про электротранспорт. Весь мой пост - это обращение к ТС. Прочитайте весь мой пост, а не одну строчку. Замените слово "Вы" на "Вы, dimir,".
  14. Я процитировал jcxz-а. Я обращался к dimir-у, процитировал jcxz-а. Я хотел процитировать не кого попало, а именно jcxz и не кому попало а именно топикастеру, Что не так? jcxz привел пример про электротранспорт. dimir стал говорить в ответ про какой-то карбюратор. Я dimir-у процитировал jcxz-а, показав ему dimir-у, что jcxz говорить об электротранспорте. В чем ко мне претензия? Что не так? тс, разбери любую мышку старую мышку с шаром (или с не очень старую с центральным колёсиком). Там эти колёсики... и там же ИКашками можно разжиться.
×
×
  • Создать...