- gd32vf103: обнаруженные странности klen(3300 знак., 02.11.2019 23:23 - 03.11.2019 00:02, MCU, полностью)
- MCU ultra-low power consumption of 47.14μW at a operating frequency of 200MHz. Статья февральская, но увидел только сейчас - General(02.11.2019 17:33, MCU, ссылка)
- Один том UBI может располагаться на нескольких Flash устройствах (MTD)? Правильно ли я понимаю, что поверх UBI, в принципе, может использоваться любая файловая система? - blackprapor(28.10.2019 18:53, MCU, полностью)
- Прошу помощи pls - Есть драйвер LED матрицы микросхема IS31FL3731 вроде все запустил точки высвечиваю, но не могу заставить включить режим blink для каждой точки. Может кто нибудь с ней работал? - Make_Pic(26.10.2019 14:31, MCU, полностью)
- На dsPIC33 делал отличный 6-битный мегагерцовый синус, но такое возможно еще только на немногих TMS320F283хх - входная частота PWM Time Base порядка 1 ГГц, частота ШИМ при 6-битном разрешении - 15 МГц, такштаа тиньки и прочие хмеги с кортексами MBedder(11 знак., 15.10.2016 00:18, MCU, полностью)
- FreeRTOS (ну или просто "не посикс" ОС) - целесообразность... POV_(859 знак., 17.10.2019 23:11,
, MCU, полностью)
- BTW, у FreeRTOS есть posix-подобная обертка. - LightElf(22.10.2019 11:17)
- "Не нравится - не ешь !" (c) Простите, не выспался и нервный с утра. Мне проще с таск-свитчерами (ИМХО до ОСи оно не доросло). По сути вопроса - есть несколько изделий а FreeRTOS, и на упоминавшейся ниже CrossWorks-овской CTL. 3-5 процессов, не Сидоргек(251 знак., 21.10.2019 08:16)
- В моем случае - два и более чужих долгоиграющих пакета (GUI + FS), которые должны шевелиться параллельно. Если такой пакет один, то автоматы в прерывания, и ОС не нужна. - VLLV(18.10.2019 10:38)
- Делал пяток подходов за 20лет.Для себя сделал вывод , ЭТО нужно только для разделения труда нескольких программеров одного большого проекта.Причем они должны быть больными на голову и не суметь сами среди себя выделить ведущего который родит PlainUser(387 знак., 18.10.2019 07:19)
- Может капают, чтобы можно было параллелить разработку и исключить/уменьшить "фактор автобуса"? - Dingo(18.10.2019 06:10 - 07:08)
- Выскажу ещё раз: FreeRTOS сырая недоделка, смысла особого, без реализации ряда перечисленного (см. ниже) не имеет и, хуже того, наоборот вносит существенные ограничения для программиста. Если бы стояла задача выбрать ОС для МК, то я бы скорей fk0(12815 знак., 18.10.2019 02:15, ссылка)
- Для простого связывания большого количества разнородных задач, что ускоряет -> удешевляет разработку. Многим лень писать нормальный конечный автомат и они пихают ось просто чтобы писать что-то типа: evgeniy1294(59 знак., 17.10.2019 23:44)
- IAR 8051 10.10.1 глючный компилятор (int и long типы, printf) для Cypress CY7C68013A sladkoejka(1955 знак., 29.06.2018 11:55 - 02.07.2018 18:42, MCU, полностью)
- Всем привет, подниму тему. kuzulis(1697 знак., 18.10.2019 14:29)
- Ну так чо, вышел пак с исправлениями? На прошлый твой багрепорт они за 2 дня обернулись :) - Codavr(07.07.2018 11:06, ссылка)
- А что скажет уважаемый KEIL? - seryy(03.07.2018 15:16)
- Корректный код генерируется в обоих случаях Bill(2501 знак., 03.07.2018 08:04 - 08:12)
- Обнаружил интересное различие в коде который не работает и коде, который работает. Вот сам код примера: sladkoejka(2434 знак., 05.07.2018 13:49 - 14:00)
- Удивительно что он вообще такой добрый, ваш оптимизатор. Ну кто же счетчик в delay делает не volatile? - Petrovich(05.07.2018 13:57,
)
- а зачем его volatile делать, если это локальная переменная и никто кроме локального кода её менять не может? sladkoejka(427 знак., 05.07.2018 14:06 - 14:11)
- без volatile оптимизатор без проблем может выкинут цикл - 0men(05.07.2018 14:36)
- Volatile более сложный объект, чем кажется. Впрочем, большинство здешних обитателей его освоило - Petrovich(05.07.2018 14:15,
)
- в чём сложность? Кстати, проверил под симулятором. Оба варианта (с INC R6 и без него) работают одинаково и дают абсолютно одинаковую задержку. Что с volatile, что без. Но с volatile задержка в 2.28 раза больше. При этом вариант, где код начинается sladkoejka(79 знак., 05.07.2018 14:42)
- Вот по этоой статье учились поколения :) Petrovich(58 знак., 05.07.2018 14:50,
)
- Ничего нового в этой статье нет. Насчет использования volatile в циклах - это очень неудачный совет. Лучше использовать какое-либо полезное действие в теле цикла (например NOP). И вот почему. sladkoejka(1041 знак., 05.07.2018 15:02 - 15:06)
- Сравнивайте Bill(3498 знак., 05.07.2018 16:24)
- Что сравнивать? В вашем примере ошибка - вы закоментили вызов __no_operation(). Без этого вызова цикл должен быть удалён. То, что с volatile не удаляет - это результат плохой оптимизации. Мозгов у компилятора не хватает чтобы отследить, что sladkoejka(667 знак., 05.07.2018 17:19)
- Я не о зависаниях. Я - о недостаточной "сообразительности" компилятора. - Bill(05.07.2018 18:04)
- "То, что с volatile не удаляет - это результат плохой оптимизации" 0men(471 знак., 05.07.2018 17:36)
- Прочитайте вашу цитату из стандарта внимательнее. В ней речь идёт об "объекте, который может быть модифицирован". В случае-же с локальной переменной volatile, никто её модифицировать не может, время её жизни ограничено временем выполнения функции. sladkoejka(420 знак., 05.07.2018 18:09 - 18:13)
- Вы не до конца перевели фразу. 0men(320 знак., 05.07.2018 18:21)
- Это фантазии, ничего подобного там не написано. Вы что-то прочитали между строк? - SciFi(05.07.2018 18:11)
- это не фантазии, а то что написано в стандарте. Читайте внимательнее, вы видите "may be modified in ways unknown to the implementation or have other unknown side effects"? Локальная переменная ограничена областью видимости по стандарту и никому sladkoejka(248 знак., 05.07.2018 18:23)
- Тогда было бы написано так: "An object that has volatile-qualified type may be modified in ways unknown to the implementation or have other unknown side effects. When that is the case, any expression referring to such an object shall be SciFi(131 знак., 05.07.2018 18:27)
- Тем не менее, компиляторы удаляют код volatile указателей на не volatile данные, которые были удалены оптимизатором. И такое поведение признано соответствующим стандарту. Однако в вашей интерпретации такое удаление недопустимо, т.к. указатель sladkoejka(24 знак., 05.07.2018 18:50)
- Ссылку в студию. Если от объекта берётся адрес, и он реально используется, не надо удалять такой объект. - SciFi(05.07.2018 19:41)
- Вам лень открыть компилятор и попробовать? Почему я должен это делать за вас? sladkoejka(121 знак., 06.07.2018 15:03)
- Нещитово. Приведение к типу volatile - это совсем не создание объекта типа volatile. Попробуйте так: int x = 123; int *volatile y = &x; y = y; - SciFi(06.07.2018 15:11)
- Попробовал - результат тот-же самый, компилятор полностью удаляет код, вместе с объектом указателя, помеченного как volatile. См. скриншот. Дальнейшие изыскания предлагаю проводить самостоятельно. sladkoejka(06.07.2018 15:21)
- Вы попробовали не тот код, который я написал. Зачем так делать? Ну и, согласно информации по ссылке, это таки вражеский компилятор. SciFi(726 знак., 06.07.2018 15:36, ссылка)
- В вашем примере происходит модификация данных помеченных как volatile. Компилятор в этом случае не может быть уверен, что эту модификацию данных никто не увидит и она ни на что не повлияет. Поэтому код удалять не будет. sladkoejka(06.07.2018 15:48 - 15:53)
- Как пример, чтение внешней памяти может использоваться для сброса сторожа - замешивается на дешифраторе адрес и строб RD, а с выхода получаем сигнал сброса. Если указатель на volatile, то компилятор не должен оптимизировать обращение. Хотя Vit(261 знак., 06.07.2018 16:24)
- тут тоже согласен, для контроллеров это критично, поэтому даже чтение через volatile указатель удалять не стоит. Однако если volatile помечена локальная переменная, не являющаяся указателем, то её можно удалять. Т.к. хранится локальная переменная sladkoejka(95 знак., 06.07.2018 18:14)
- тут тоже согласен, для контроллеров это критично, поэтому даже чтение через volatile указатель удалять не стоит. Однако если volatile помечена локальная переменная, не являющаяся указателем, то её можно удалять. Т.к. хранится локальная переменная sladkoejka(95 знак., 06.07.2018 18:14)
- Дык в этом весь смысл и есть - отключается оптимизация обращения к данным помеченным как volatile, если же к ним обращения нет, то код вполне может выпиливаться. - =AlexD=(06.07.2018 16:01)
- Вот в другом компиляторе ничего не удаляется даже в вашем первом примере Bhg2(31 знак., 06.07.2018 15:26, ссылка)
- читайте до конца - или иметь другие неизвестные побочные эффекты - 0men(05.07.2018 18:25)
- локальная переменная доступна только внутри тела функции и только на время её выполнения. Если эта функция ничего не делает и никак не влияет на данные доступные другому коду, её можно спокойно удалять вместе со всеми volatile локальными sladkoejka(174 знак., 05.07.2018 18:32)
- фраза про побочные эффекты означает, что разработчик лучше знает, что делать компилятору. Компилятору нужно ничего не трогать. Стандарт об этом прямо говорит. Все ваши разделение на локальные и глобальные это только ваши фантазии, в стандарте 0men(22 знак., 05.07.2018 18:46)
- не нужно ничего выдумывать. Логика стандарта проста. Если объект никому не доступен, его можно удалять для оптимизации, т.к. это никак не повлияет на поведение системы. volatile действует только на данные, которые могут быть кому-то потенциально sladkoejka(65 знак., 05.07.2018 18:56)
- Это ты просто рафинированный программист, который тупо смотрит на код, и делает какие-то свои выводы, исходя из абстрактной вычислительной системы в вакууме. В реальной жизни у микропроцессора есть всякие там шины памяти, кеши, ПДП и пр. вещи, =AlexD=(486 знак., 06.07.2018 08:23 - 08:48)
- А чё спорить-то, сделайте иначе бомж(178 знак., 05.07.2018 22:49)
- Интересное вышло обсуждение. Ранее не задумывался, но мне близка позиция Сладкоежки. Эффект от исполнения кода наступает лишь в двух случаях: Nikolay_Po(1136 знак., 05.07.2018 22:11)
- логика стандарта совсем иная - если переменная имеет квалификатор volatile, то действия с этой переменной не подлежат оптимизации и должны быть представлены кодом как есть. Ни каких слов про доступнай, область видимости и жизни в стандарте нет - 0men(05.07.2018 19:00)
- компилятор НИКОГДА не удалит цикл с volatile переменной. Более того, он никогда не соптимизирует такой цикл - 0men(05.07.2018 15:18)
- Ну уж нет. Если он удалит переменную volatile, то это будет вражеский компилятор (хотя всякие бывают, конечно). Но тут __no_operation() убирает необходимость в volatile, потому что __no_operation() "вызывает побочные эффекты", т.е. не может быть SciFi(72 знак., 05.07.2018 15:06)
- while( n-- > 0 )!!! тоже самое, но без мутотени... while(n--) - seryy(05.07.2018 13:56)
- только размещается этот "корректный код" по некорректным адерсам (в таблицу векторов). Вследствии чего при заливке в реальный девайс такой "корректный код" глючит или вообще не работает. (как повезет, если LJMP неудачно ляжет в таблицу векторов, sladkoejka(24 знак., 03.07.2018 10:10)
- В начале 2000-х я нашел баг в ихнем компилере. Настрочил багрепорт, Codavr(188 знак., 30.06.2018 16:31 - 01.07.2018 13:19)
- Ну так посмотрите сгенерированный код. Какие проблемы? - Bill(01.07.2018 06:55)
- 1. Проверить в настройках проекта какой именно printf formatter выбран. Мелкий может не понимать %i (не уверен, но не удивлюсь). LightElf(77 знак., 30.06.2018 11:57)
- 1. a55ku(446 знак., 29.06.2018 14:06,
)
- Случайно наткнулся PCA9511A - Hot swappable I2C-bus and SMBus bus buffer. Любопытный чип, может пригодиться. Evgeny_CD(17.10.2019 16:19, MCU)
- Nuvoton готовится выкатить очередную стопку камушков на ядре 8051. Мало ног, куча интейфейсов, качественные генераторы без кварца. Даташитов пока нет, но общая информация уже присутствует, как и BSP под кейл и иар. - LightElf(08.01.2019 08:10, MCU, ссылка, полностью)
- H2'19 наступил, но пока что-то старшие ML51 не выкатили... - Evgeny_CD(17.10.2019 15:49)
- [ML51] -> залегли на ditect --> Самое интересное начинается с ML51PB9AE и старше - у него 2ch DMA (только коммуникационные интерфейсы) и внутренняя опора. Evgeny_CD(43 знак., 25.04.2019 23:36, ссылка, ссылка)
- датаШыта и мануал лежат на сайте. - Evgeny_CD(15.01.2019 22:31)
- Еще одна стопка - M031/M032. - CADiLO(09.01.2019 11:03, ссылка)
- Первичный анализ. Интересное сочетание фич. Evgeny_CD(981 знак., 08.01.2019 21:03)
- Чудесные камни! Можно вспомнить молодость и поговнокодить на asm! Или SDCC таки освоить наконец! MSOP10 чудо! - Evgeny_CD(08.01.2019 13:53)
- Предварительный даташит на временном обменнике - скиньте в будку или еще куда где не потрут. Нажимать кнопочку посмотреть файлы и потом качать. Ну и MSOP10 у них интересные, наши клиенты кто на PIC10/PIC12 сидели уже поскидывали заявки на образцы. - CADiLO(08.01.2019 13:40 - 13:42, ссылка)
- Спасибо! Идеальный периферийный контроллер класса "умная пыль": быстрый SPI и DMA, Voltage range: 1.8 V to 5.5 V. Надеемся, что цены будут, скажем, $0.2 в опте от 1к штук. - Evgeny_CD(08.01.2019 13:29)
- 12-bit, 500 kSPS SAR ADC со встроенным DMA приятно дополняют набор фич. - Evgeny_CD(08.01.2019 13:31)
- Как вариант использования. На выходе DC-DC ставим этого таракана в MSOP-10, и он через цифровой изолятор передает на первичку ток и напряжение с темпом, скажем, 200 ksps каждый параметр. Просто тупо в лоб оцифрованные значения по SPI. Evgeny_CD(52 знак., 10.01.2019 01:53)
- В самом деле, что они за частой АЦП гонятся, если МК медленный? Почему бы для таких МК не сделать и АЦП тоже медленный (типа 50 Гц), но с разрядностью не хуже 16 бит? Можно даже с оверсамплингом, если тот хардверный. Скажем, для контроля за Ксения(67 знак., 08.01.2019 20:46)
- А что 8051-е ядро успеет сделать с этими выборками? Запомнить? Так оперативки мало. Усреднить? АЛУ у 8051 весьма посредственное, не? lloyd(52 знак., 08.01.2019 14:35)
- +1 - Codavr(08.01.2019 14:29)
- У Nuvoton'а есть мерзкая привычка вставлять цифру 51 куда ни попадя. Например, серии M051 и Mini51 имеют архитектуру Cortex M0, а вовсе не 51-ю. После этого я перестала понимать, на каком ядре их очередной камушек. - Ксения(08.01.2019 13:16)
- А этим Nu-link'ом кто-то пользовался? Нормальная отладка? - VLLV(08.01.2019 08:47)
- "Вытаскиваем ПО из запароленного микроконтроллера Renesas M16C" -> - Evgeny_CD(27.09.2019 17:54, MCU, ссылка, полностью)
- Здравствуйте, товарищи, нет ли примера кода для MSP430 на си, для чтения-записи в I2C EEPROM память. У меня MSP430FR2355 и AT24CM02, навярняка будет пример под что то другое, но я адаптирую. Заранее спасибо! - MSP_olux(08.10.2019 16:52,
, MCU)
- Подскажите коллеги, стоит задача развернуть WEB интерфейс, где надо отображать несколько показаний с датчиков, если с датчиками все достаточно просто достаточно любой 8 битной машинки, то на чем сейчас кошерно решить задачу подключения МК к сети PeterD(104 знак., 27.09.2019 17:37, MCU, полностью)
- Мы сделали на stm + wiznet Klever(83 знак., 30.09.2019 19:03)
- Stm32f107 + недорогой PHY. Фриртос + uIP. У микроайпи в комплекте скрипт на перле. Скармливаешь ему сайт. Он компилирует в сишник с сайтом. Драйвер я взял из яровского примера. - Vesago(30.09.2019 13:25)
- PIC18F67J60 (все семейство xxJ60) имеет MAC and 10BASE-T PHY - т.е снаружи нужен только транс. Или PIC16/PIC18 + ENC28J60, Стек TCP/IP lite в конфигураторе кода. Запускается за 5 минут с перекурами - Илья(30.09.2019 10:48, ссылка)
- Иногда можно как бы без сети. RNDIS. Vit(94 знак., 28.09.2019 08:12)
- uIP заметно проще. и для него тоже примеры есть - Mahagam(27.09.2019 19:11)
- У LwIP есть встроенный web-сервер, так что бери любой контроллер, на который есть порт этого TCP/IP стека. - evgeniy1294(27.09.2019 17:44)
- Там есть разные факторы. 1) Себестоимость железа кому-то важна, кому-то нет. 2) Глубина погружения в программизм кого-то пугает, кого-то нет. 3) Потребляемый ток, габариты и т.д. 4) Что-то ещё?.. - SciFi(27.09.2019 17:44)
- Себестоимость важна, в сети гуляет связка Atmega и моста микрочипа SPI-Eternet, смущает древность сего решения. - PeterD(28.09.2019 12:07)
- У нас STM32F107RC + KSZ8081RNA. Не знаю насчёт самого дешёвого, но точно не самый дорогой вариант. Этот МК нужен по другим причинам, так что вписались хорошо. И да, lwip с его же веб сервером, без ОС, порт свой. - SciFi(28.09.2019 15:14)
- есть ещё SPI-Ethernet на W5500. сам юзаю KSZ8851SNL. бывали от Silabs CP2200/1, но они NRND. но это не самое дешевое. - Vit(28.09.2019 14:00, ссылка)
- Да, собственно, чего смущаться? Это действительно самое дешевое решение. Применяю в своих железках. Корейский W7500P, увы, похоже, так и не взлетел... - Гудвин(28.09.2019 12:23)
- [Cypress Excelon F-RAM 8Mbit SPI 1015 циклов] Только вышли, цены $30 в мелком опте mouser, но дыркоустойчивость впечатляет. Только Renesas MRAM -> заявляет круче, там и с объемами хорошо. Evgeny_CD(25.09.2019 01:16, MCU, ссылка, полностью)
- разбираюсь со стандартами jedec в частности регистром SFDP и возник вопрос: в этом регистре содержаться опкоды стирания секторов и быстрых чтений. А опкодов записи страницы, чтения и тд нет. Эти команды вообще стандартны для всех spi nor? Если да, abivan(30 знак., 24.09.2019 09:41, MCU)
- к вопросу о RISC-V, GD32VF103, итд... подсобрал тулсы riscv32imac-kgp-elf, можно попробывать! klen(8043 знак., 03.09.2019 10:25 - 10:37, MCU, полностью)