Поздравляем Dingo с днём рождения!
- [MIL-STD-1553] Сводный системный - Evgeny_CD(07.05.2020 14:46, dao, полностью)
- Тема выравнивания пошла. Объясните плз, почему в проекте ARM
выравнивание происходит по границе 8 байт? 32 бита. Если надо,
картинку отладчика положу. - VLLV(30.04.2020 17:11, dao, полностью)
- Вклинюсь тут со своими шурушками. Звepoящep(465 знак., 05.05.2020 17:46)
- В документации на stm32h750vb Figure 3. STM32H750xB bus matrix BlackMorda(48 знак., 05.05.2020 11:10)
- Выравнивание на N это размещение данных или кода по адресам кратным
N. Это производится а) для скорости, потому что невыравненные
данные/код требуют больше циклов чтения шины. Для ускорения доступа
собственно ядра, и для ускорения пред-загрузки линии кэша. б)
некоторые RISC архитектуры не способны читать память по
невыравненным адресам вообще, т.е. в них "ячейками памяти"
считаются WORD'ы размером в ширину шины - 2 или 4 или даже 8 байт.
Hardware unaligned acccess появился RxTx(198 знак., 30.04.2020 18:47)
- Во! Вот и у меня была проблема, решил ее чужим способом. Как - сам
не знаю. Но замечательно работает. Вот чего я такого сделал??? Лaгyнoв(677 знак., 30.04.2020 18:17)
- Что значит "всё выравнивание"? Выравнивание каждого типа данных
зависит от его alignas свойства. У всех разное. Если речь про
new/malloc -- потому, что таков BIGGEST_ALIGNMENT (который
применяется, когда тип не пойми какой). Например, из-за векторных
значений для FPU, или просто потому, что в ABI так прописано. fk0(104 знак., 30.04.2020 17:38)
- если 32 бита разделить на 8 байт, получается в байте 4 бита...
может все таки "выравнивание происходит по границе 4 байт". А по
существу выравнивание - опция компилятора. - IBAH(30.04.2020 17:28)
- для начала структуру покажи - abivan(30.04.2020 17:17)
- Показываю. Последнее поле в структуре 1 байт, расположен со
смещением 5170-49d0 = 7a0 = 1952. Какой должен быть размер
структуры? 1956, логично? А вот ни хрена, 1960. VLLV(1 знак., 30.04.2020 17:45, картинка)
- Размер структуры растягивается до значения его alignas которое
определяется всеми полями в совокупности. Это нужно, чтоб можно
было адресовать массивы структур как v[i] = (char*)v +
i*sizeof(struct). Если бы у тебя sizeof() давал честный размер, то
как бы ты работал с массивами? fk0(70 знак., 30.04.2020 18:18, ссылка)
- Если в структуре есть 64-разрядное поле, то она вся должна иметь
такое выравнивание. Ну и размер, кратный 8 байтам. Одна из причин
для такого размера -- массив структур. - SciFi(30.04.2020 18:02)
- 1. С какого перепуга, если ядро не читает 8 байт за раз, а только 4
байта? 2. Не очень понятен процесс компиляции, в одном файле с этим
типом нет массива структур, в другом есть массив структур - как они
договариваются? - VLLV(30.04.2020 18:09)
- А какая связь вообще с байтами? Ты знаешь как оно внутри работает?
Может найтись масса неочевидных причин, почему иметь "некруглые"
адреса сложно. Пусть и читает по 4 байта за раз, но чтоб по 4 байта
считать длинное значение, long long, long double, вектор, и
обработать его последоательно нужно уметь вычитывать его отдельные
части. И куда проще это делать с выравненного адреса -- потому, что
достаточно правильным образом замаскировать младшие биты адреса, а
с fk0(723 знак., 30.04.2020 18:26)
- Вроде бы в EABI такое записали. Иногда ссылаются на LDRD, STRD.
Можно ещё сослаться на Cortex-M7 и 64-разрядную шину AXI. В общем,
при желании причины найдутся. - SciFi(30.04.2020 18:09)
- uint64_t в структуре есть? - abivan(30.04.2020 18:02)
- Подробности не помешали бы. - SciFi(30.04.2020 17:16)
- Еще один вопросик по JS: Создаю динамически в JS скрипте HTML
страницу c полем ввода : Гyдвин(508 знак., 04.05.2020 00:49, dao, полностью)
- В openocd нормально заработала поддержка программаторов xds110 и
xds200, а также флеш-драйверов под cc13xx. Теперь с камнями
семейства simplelink можно работать через ванильный openocd, сборку
от TI можно выкинуть. evgeniy1294(151 знак., 01.05.2020 03:20, dao, полностью)
- PVS-Studio ищет баги в исходниках Embox. - Toчкa oпopы(01.05.2020 20:25, dao, ссылка, полностью)
- [JerryScript] 64 KB of RAM and less than 200 KB of flash. ECMAScript 5.1
standard compliance. Engine supports on-device compilation, execution and provides
access to peripherals from JavaScrip - Evgeny_CD(26.04.2020 03:52, dao, ссылка, ссылка, полностью)
- Возможно, в этой задачке - самая мякотка ООП: Это задачка на курсах
по Java. Вроде умом понимаю что и как работает, а сэрдцем принять
не могу :) Argon(789 знак., 26.04.2020 10:26 - 11:55, dao, ссылка, полностью)
- I had a problem, so I've decided to use Java. Now I have
ProblemFactory... - lloyd(26.04.2020 16:12)
- "Мякотки ООП" тут нет. 1 "класс на классе и классом погоняет" -
идеология Java, которая строится вокруг понятия класса (единица
трансляции .class), это базовая единица языка. 2. Это исключительно
учебный пример автор которого слишком увлёкся и родил монстра. 3.
Для Java это говнокод. Если такой говнокод встретится в продакшн,
код должен быть переписан, а его автор (если он регулярно порождает
такое) выпизжен на мороз. - RxTx(26.04.2020 15:55)
- Чужой код на ООП обычно противно разбирать :), но приятно, когда
пишешь на нем сама. - Kceния(26.04.2020 14:33)
- В данном случае ничего не делают , но могут. Но что-то в коде не
того. Идентификация инстанции в фильтре по типу
ad.getVehicleTypeByPurpose().equals(vehicleType) и надо городить
огород с передачей параметра при фильтрации пустого класса данного
типа. И есть еще и enum VehicleAllTypes по которому можно и
определить тип но надо привязать класс к enum. framer(380 знак., 26.04.2020 13:50)
- А у них нет нормальных человеческих примеров? Чтобы сразу стало
понятно, что голый Си - г-но, а ООП - круто и полезно. Обязательно
вот эта дебильная хрень с рекламой автомобилей? Или это курсы для
креаклов? - SciFi(26.04.2020 11:41)
- Никто не говорит, что голый Си говно, но действительно есть случаи,
когда хочется плюсов (про яву говорить не буду, я её не знаю). И
здесь есть хорошо известная методическая проблема: примеры в
учебниках должны быть достаточно простыми, иначе суть обсуждаемого
вопроса потонет в деталях, но простые примеры на самом деле не
требуют тяжёлой артиллерии. В результате некоторые думают, что в
любой непонятной ситуации нужно городить иерархию классов, но это
не так, во всяком случае йцyкeн(9 знак., 26.04.2020 12:41)
- Все остальные примеры слишком просты для переворота сознания ) - Argon(26.04.2020 11:43)
- Классы которые ничего не делают, включая пустые определения
структур -- нужны для определения нового, отличного от других типа.
Потому, что где-то в коде потом что-то может делаться по-разному в
зависимости от типа. Кстати с этим связана такая запутывающая
особенность, что в C++ ключевое слово typedef на самом деле не
определяет новый тип, а лишь создаёт алиас (другое имя) для уже
существующего другого типа. А выражение вида "struct X {};"
определит новый тип X. - fk0(26.04.2020 11:18)
- Надо понимать, что класс -- это не структура. Применительно к C++
мне больше нравится слово тип. Тип -- это сущность существующая
преимущественно в момент компиляции и обладающая некоторыми
свойствами, в машинном коде она превращается в функции и структуры
в конечном счёте, а то и вовсе ни во что не превращается, если все
вычисления проделаны при компиляции. Тип на самом деле это очень
легковесная конструкция. Это лишь абстракция служащая для
определения отношений между fk0(1609 знак., 26.04.2020 11:13)
- отношусь к этому прозаичнее - у этих ООП "голые" структуры моветон
(слыхал и здравые толки почему, но это отдельный вопрос), а даже
если хочется структуру, пусть константную, то выпилить её из класса
можно более-менее удобно, если она там уже структура, а этим никто
не заморачивается. пихается в класс обычно как собачка
прогуливается - кустик увидела и пометила:). плюс если наследуешь,
а потом добавляешь свойства и методы, то удобнее. например, в
данном случае Vit(371 знак., 26.04.2020 11:01)
- Насчет жабы ничего сказать не могу, а в С++ введение типов
позволяет делать шаблонную магию, переопределяя поведение даже для
объектов нулевого размера. То есть оперативки это не ест, зато
вводит отдельную сущность на уровне языка. Но тут главное не
перестараться: шаблонный код генерится заново для каждого типа,
поэтому иногда вводят специальный базовый класс и реализацию
завязывают на него, иначе будет как у
boost::container::small_vector<T, size_t>, где для векторов lloyd(39 знак., 26.04.2020 10:47)
- нужно сделать макрос для упаковки структур #define CC_PACK(x)
....... abivan(121 знак., 30.04.2020 09:59, dao, полностью)
- Вопрос русской кодировки. Сейчас у меня в передаваемых на почту
файлах через GSM везде Win-1251. Человек открывает на компе - нет
проблем. А вот в мобильнике постоянно глюки. И если в айфоне я вижу
при открытии в Numbers вариант смены кодировки и Кириллик Виндовс
всё исправляет, то в андроидных так и не нашел. Юникод? Неохота два
байта, раздувается файл. UTF-8? Это реально поможет в мобильниках?
Что за кодировка по умолчанию в Андроиде? Есть еще варианты? - Лaгyнoв(29.04.2020 08:40 - 22:33, dao, полностью)MBedder
- utf8. - Гyдвин(29.04.2020 08:42)
- Pairphone, Jackpair, передача кодированной речи через узкополосный
канал (в т.ч. через модем работоспособный поверх GSM-кодека),
криптотелефония. Сводный системный топик. keywords: MELP,
GSM-06.10. - fk0(29.04.2020 19:19, dao, полностью)
- Господа, расскажите по типизацию в С. Если с помощью typedef
создать два новых типа TYPE1 и TYPE2, идентичных например int, они
будут разными? Компилятор обязан показать разные типы? Что теория
говорит? - VLLV(29.04.2020 10:43, dao, полностью)
- gd32vf103: выполнил обезжиривание кода rv-link/longan-nano,
пришлось переделывать китайский код. меня попросили дать бинарь для
rv-link/longan-nano ... klen(691 знак., 26.04.2020 15:02, dao, ссылка, ссылка, полностью)
- Сводный системный топик :)) "Разработка ПО для промышленных
установок" IBAH(476 знак., 25.04.2020 15:33, dao, полностью)
- поддержу, тема крайне интересная и необъятная, особенно интересны
структурные схемы - LordN(26.04.2020 09:34)
- ПО промышленных установок обычно собирается как из конструктора:
SCADA, среда разработки для ПЛК, драйверы для обмена с
оборудованием или OPC-сервера. С одной стороны, там устоявшиеся
подходы, с другой в зависимости от масштаба и серьезности задачи
вариаций много. Журнал событий обычно уже реализован в SCADA, надо
только разобраться как использовать, изредка бывает и на уровне
ПЛК, когда ПЛК сильно интегрирован с конкретной SCADA. Базы
рецептов могут быть на уровне ПЛК, могут AlexG(654 знак., 26.04.2020 08:33)
- Я тормоз или у нас не обсуждалось светлое опенсорцное будущее uC/OS
(uC/TCP-IP, uC/USBH и тыды)? LightElf(28 знак., 25.04.2020 22:37, dao, ссылка, полностью)
- «Будущее программирования — вовсе не кодинг», — Крис Ванстрат, CEO
в GitHub. Там про WEB, но подход универсальный - Evgeny_CD(25.04.2020 18:19, dao, ссылка, полностью)