При наличии эксклюзивных акций на какие либо группы товаров, привязанных к конкретной учетке вся затея поиска более выгодной цены идет лесом. Как можно решить этот вопрос? ?
Даже и без этого использование мобильного приложения вместо веб ресурса, ака умершего екаталога, выглядит странной
Кстати, сложность доступа к нужному элементу будет не O(Log2(n)), так как в дереве могут находиться лишние узлы и оно несбалансировано. В итоге в лучшем случае это O(Log2(n)) в худшем - О(n) или ещё хуже, скорее это будет где-то между ними.
Весьма странный интерфейс. По идее модулям которые используют этот драйвер не нужно знать о его внутренней структуре с его узлами и всем остальным, нужен просто адрес и данные, само собой с длиной, раз уж на си пишем.
Хорошо бы определиться с терминологией, что такое страница, сектор, блок:
Обычно в этих микрухах страница это 256 байт, как раз адресуемость по младшему байту адресного слова.
Сектор это уже минимальная область которая стирается, обычно 4 килобайта
Следовательно вопрос, что в вашем алгоритме называется страницей?
Типо того, нужно спеку читать. У нас много устройств которые логи пишут, даже не очень много логов, в итоге сдшки выходили из строя за единицы месяцев. Приходилось искать более надёжные и с алгоритмами балансировки износа. В итоге совсем от них отказались.
Описания, как и сами неприятности два и три неверны. Вот кусок текста из даташита.
The last address byte (the 8 least significant address bits, A7-A0) should be set to 0 for 256 bytes page program. If A7-A0 are not all zero, transmitted data that exceed page length are programmed from the starting address (24-bit address that last 8 bit are all 0) of currently selected page. If the data bytes sent to the device exceeds 256, the last 256 data byte is programmed at the request page and previous data will be disregarded.
Младший байт адреса должен быть нулями только для записи страницы целиком. Если не нули, то количество байт не должно быть больше чем размер страницы + офсет.
Поясню на пальцах: внутри есть буфер на 256 байт, 8 битный счетчик принятых байтов. Когда передается адрес его младший байт устанавливает офсет внутри этого буфера. Соответственно если гнать поток байтов длиннее оставшегося места, то счетчик переполняется и считает с нуля, а данные пишутся в начало буфера.
Аналогично если попытаться записать сначала страницы больше 256 байт - данные перетрутся.
Можно городить ООП: по сути все эти статичные переменные запихнуть в структуру.
Несколько SPI флэшек еще не было нужно.
Если две, то продублировать не проблема: чипселект и буфер в зависимости от адреса выбрать и чуть-чуть усложнить логику. Три - чуть сложнее, но тоже почти так же
Для хранения информации о проекте есть куча бесплатных википодобных систем.
К тому же не всё можно и нужно постить в публичных местах.
Я вас не отговариваю, пишите если нравится.
Не всё упирается в статьи на Хабре: одним это нафиг не интересно писать, у других нет времени.
ИМХО, проблемы серийных плат это проблемы производства и отк. В штучных прототипах эти вопросы легко решаются вместе со схемотехниками.
Статья же переносит проблемы с больной головы на здоровую.
Вы уверены что стоит изучать и libopencm3? имхо эта либа больше мертва чем жива
Книгу нужно читать задумываясь почему это так, а не следовать бездумно
В принципе не понятен сам посыл этих опросов. Опросы ради опросов.
При наличии эксклюзивных акций на какие либо группы товаров, привязанных к конкретной учетке вся затея поиска более выгодной цены идет лесом. Как можно решить этот вопрос? ?
Даже и без этого использование мобильного приложения вместо веб ресурса, ака умершего екаталога, выглядит странной
JLink OB стандартная штука которую многие применяют, это как и stlink на платах discovery.
О чем статья?
А при чем здесь j-link?
Да, прямое несоответствие, должно к самому широкому приводиться.
Тесты это конечно хорошо, но не видно поддержки открытия и выбора с клавиатуры?
Я бы еще попросил ссылочку на демо.
В таре куча разных приколов. Столкнулся с проектом в версии 8. Вот синтетический код с сутью проблемы:
Потому что он оценивал тип по первому множителю.
Это не обратная связь, это линия для чтения данных микросхемы. Либо предложения в абзаце перемешаны.
Почти все акронимы из таблицы нигде не встречаются в тексте.
Если обозревать, то хорошо бы ещё рассказать, про шумы, гармоники
Кстати, сложность доступа к нужному элементу будет не O(Log2(n)), так как в дереве могут находиться лишние узлы и оно несбалансировано. В итоге в лучшем случае это O(Log2(n)) в худшем - О(n) или ещё хуже, скорее это будет где-то между ними.
Весьма странный интерфейс. По идее модулям которые используют этот драйвер не нужно знать о его внутренней структуре с его узлами и всем остальным, нужен просто адрес и данные, само собой с длиной, раз уж на си пишем.
Хорошо бы определиться с терминологией, что такое страница, сектор, блок:
Обычно в этих микрухах страница это 256 байт, как раз адресуемость по младшему байту адресного слова.
Сектор это уже минимальная область которая стирается, обычно 4 килобайта
Следовательно вопрос, что в вашем алгоритме называется страницей?
А в чем сложность использования SPI nor и fatfs?
Типо того, нужно спеку читать. У нас много устройств которые логи пишут, даже не очень много логов, в итоге сдшки выходили из строя за единицы месяцев. Приходилось искать более надёжные и с алгоритмами балансировки износа. В итоге совсем от них отказались.
Поддерживаю. Но ещё бы добавил:
Далеко не каждая SDшка имеет алгоритмы для выравнивания износа. А те которые имеют стоят гораздо дороже обычного ширпотреба.
Описания, как и сами неприятности два и три неверны. Вот кусок текста из даташита.
The last address byte (the 8 least significant address bits, A7-A0) should be set to 0 for 256 bytes page program. If A7-A0 are not all zero, transmitted data that exceed page length are programmed from the starting address (24-bit address that last 8 bit are all 0) of currently selected page. If the data bytes sent to the device exceeds 256, the last 256 data byte is programmed at the request page and previous data will be disregarded.
Младший байт адреса должен быть нулями только для записи страницы целиком. Если не нули, то количество байт не должно быть больше чем размер страницы + офсет.
Поясню на пальцах: внутри есть буфер на 256 байт, 8 битный счетчик принятых байтов. Когда передается адрес его младший байт устанавливает офсет внутри этого буфера. Соответственно если гнать поток байтов длиннее оставшегося места, то счетчик переполняется и считает с нуля, а данные пишутся в начало буфера.
Аналогично если попытаться записать сначала страницы больше 256 байт - данные перетрутся.
Можно городить ООП: по сути все эти статичные переменные запихнуть в структуру.
Несколько SPI флэшек еще не было нужно.
Если две, то продублировать не проблема: чипселект и буфер в зависимости от адреса выбрать и чуть-чуть усложнить логику. Три - чуть сложнее, но тоже почти так же
Очень круто, но есть подозрение, что ножки(крепления) где тензодатчик будет не просто отлить.