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

    

esaulenka

Свой
  • Публикаций

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

  • Посещение

Репутация

0 Обычный

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

  • Звание
    Профессионал
  • День рождения 25.01.1983

Информация

  • Город
    Маськва

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

6 581 просмотр профиля
  1. Наверное, не все эти мегабайты - в ОЗУ? :-) RAM - начиная с нуля и до 64к, флеш и прочие SFR - могут быть дальше. По факту, у младших камней они также укладываются в 64 к, но ядро, в теории, умеет работать и с бОльшими объемами памяти.
  2. Как работает DMA в STM32?

    У меня прямо перед носом reference от STM32F4. И там слова "карусель" нет, есть раздел Arbiter. И там всё просто: у кого выше приоритет (или меньше номер стрима при равных приоритетах) - тот и первый. Другой вопрос, что я использую DMA с низкозагруженными каналами (UART на десятках-сотне кбит/с, SPI с сотней байт и т.д.), и о приоритетах даже не думаю - запас получается на порядки: пока DMA ждёт освобождения высокоприоритетной периферии, он может обслужить низкоприоритетную. Вот когда мне захочется затолкать что-то большое в периферию с собственным FIFO (что там у STM'ок есть? Только USB с ethernet'ом?) или использовать режим memory-to-memory, вот тогда придётся думать...
  3. Keil MDK-ARM ошибка: L6236E

    Варнинг был? Был. Следует считать любой (ну, почти любой) варнинг как предупредительный выстрел.
  4. Таня, нарисуйте, пожалуйста, Вашу схему. Я не понимаю, как включить интегратор и как его обнулять. Ну то есть вот так: https://www.silabs.com/documents/public/user-guides/efm32gg-stk3700-ug.pdf (стр. 12). Таня не одобряет :-) А проект у Вас очень интересный, спасибо. Подробности публиковали?
  5. Тут бы с требованиями определиться, какой ток и с какой точностью хочется измерять. Потому что счётчик заряда - это либо недешёвая battery management system (и фиг его знает, как оно заработает без собственно battery), либо не совсем простая аналоговая схемотехника (Подскажите, кстати, где обсуждалось. Я сходу не нашёл). А усилитель шунта есть готовый, за три копейки. Кстати, дурацкий вопрос. Если параллельно шунту повесить конденсатор, не получим ли мы эрзац-интегратор? При шунте в сотню Ом даже какие-то сносные значения емкости получаются...
  6. Если переводить более точно, то там сказано AFR0 и AFR1 ;-) По Вашей логике, требование "не включайте несколько ремапов для одного порта" должно касаться AFR0, AFR3, AFR7. И подобное требование вроде бы отсутствует в даташитах на другие камни, хотя организация ремапа там такая же. Я, во всяком случае, не нашёл. В общем, кажется мне, это косяк с копипастой (неизвестно откуда). :-)
  7. Изолированный программатор

    Это косяк в обозначениях. Тут вход TDO используется как SWO (он находится на той же ноге разъема).
  8. Keil MDK-ARM ошибка: L6236E

    Разговоры "вот раньше-то, молодёжь нынче не та" - это к семёнычу и его клонам, пожалуйста. То, что раньше человек с небольшими знаниями и достаточной мотивацией мог поморгать лампочкой на PIC'е, а сейчас запускает какой-то веб-сервер на распберри... Ну ок, это не хорошо, не плохо - это просто сейчас так есть. Библиотеки - это хорошо. Хорошие библиотеки - вообще замечательно! Писать LwIP, операционку с нуля - можно. Иногда даже нужно. Но далеко не каждый неначинающий сделает это хорошо. Я вот недавно начал ковыряться с блютус-стеком в Nordic (сейчас приоритеты задач поменялись, и оно опять отложилось). Написать подобное в какие-то разумные сроки в принципе невозможно. Остаётся только вариант брать и использовать, благо, в отличие от того же HAL'а, оно мелко порезано на отдельные модули с достаточно подробно описанным API, и никто не мешает подсовывать в нужные места свои модули.
  9. Keil MDK-ARM ошибка: L6236E

    Одна проблема - она не очень для начинающих. Т.е. знания "как работает ядро" нужны, когда делаешь (дорабатываешь) ОС или ловишь хитрый хардфолт. Но первоначальные вопросы - как поморгать диодиком или выплюнуть в UART "hello world" - там не освещаются. Точнее, в русском переводе есть приложение - описание периферии каких-то TI Luminary (никогда не читал эту часть), но толку от него в плане освоения STM немного... О-о, дело Мартина живёт :-) Я отлично помню, как изучал 32-битники по книжке https://perswww.kuleuven.be/~u0068190/ARM7/lpc-ARM-book_srn.pdf И имхо про ST-шные библиотеки. Да, они огромные, неоптимальные и не всегда удобные (точнее - почти всегда неудобные). Но для быстрого старта - проверить работоспособность какого-нибудь USB - вполне вариант. Опять же - это стало худо-бедным стандартом, лучше обращаться за помощью на форум не с просьбой "я тут написал 10 тыщ строк, найдите ошибку", а "вот стандартный пример, я его меняю вот в этом месте, и всё ломается так и вот так". Хотя о чём это я... обычно все сообщения "я что-то сделал (не скажу что), и оно само сломалось" :-) И да, надо быть всегда готовым, что где-то там в середине библиотеки закопана пакость, и она обязательно стрельнет в самый неподходящий момент. В продакшене у меня все драйвера написаны моими руками, и крайний - не безвестный MCD team, а лично я. Но для экспериментов - покатит...
  10. Да, очевидно, что это сумма. Хорошо видно при сравнении разницы (арифметической) между двумя похожими пакетами. Следите за руками: Пакет: 02 6c 31 30 30 30 30 03 39 45 Команда: l1 Параметры: 0x00 0x00 Контрольная сумма: 0x9E Считаем: ( 0x02 + 0x6c + 0x31 + 0x30 + 0x30 + 0x30 + 0x30 + 0x03 (весь пакет без контрольной суммы) + 0x9E (контролька) ) % 256 == 0 Что такое 0x55 в конце, не знаю. Это точно не подтверждение от второго блока (линия-то одно- или двупроводная?) ?
  11. Keil MDK-ARM ошибка: L6236E

    Видимо, вариант cmsis для тех, кто не хочет использовать HAL. Почему эта менюшка не предупреждает "так всё сломается"... Ну, увы... В embedded есть очень много способов выстрелить в ногу...
  12. Запись во FLASH.

    Справедливости ради, на большинстве STM (из того, что лично трогал - F1, F2, F4) запись во флеш останавливает всё выполнение из неё. Т.е., если не считать "подвисания" всего камня, никаких проблем нет. Функция записи, как и многочисленные вектора прерываний - во флеше. И про размер записи. На первых сериях было строго 16 бит за раз (откуда история про выравнивание источника? пофиг же). На F4 есть настройка, сколько писать - 1, 2, или 4 байта.
  13. Мне почему-то казалось, что у Вас есть опыт общения с автоэлектриками. Большинство - люди простые, на аккумуляторе написано "плюс" и "минус" - значит, так и есть. Ноль вольт - это когда всё выключено :-) Изменить это нельзя, только смириться... А проблема, кажется мне, решается не "полярными транзисторами", а банальным резистором подтяжки между +12 и входом. Осциллограмму входного сигнала в живой машине нагуглить не удалось, но по описанию на L497 искра формируется при переходе управляющего сигнала из единички в ноль.
  14. Словоблудие - вся эта тема, к сожалению. Потому что hacker_fox только ближе к середине сказал, что у него не NAND, не FRAM и не SD, а NOR. Возможность записывать что угодно и куда угодно (только 1->0, разумеется), довольно мелкий размер стираемого сектора, гарантия от производителя, что данные не побьются - с одной стороны (в сравнении с NAND). Необходимость делать-таки FTL (или заметно урезать функционал) - с другой стороны (в сравнении с SD). Какие тут цифры могут быть, я не очень понимаю. Сначала определяемся с хотелками, потом начинаем сравнивать (с цифрами, да) хоть сколько-то похожие предметы. Единого списка "что должна делать ФС" тоже не существует. Читать должна. Возможно, писать. Возможно, форматировать под себя диск. Возможно, обеспечивать какие-то средства отказоустойчивости. Непосредственно процедурами обмена с носителем должен заниматься драйвер. Управлять динамической памятью должна ОС (если ФС нужна такая память). Кофе должна варить кофеварка. Но что-то я сомневаюсь, что выше написано хоть что-то новое. Опять словоблудие...
  15. Тёплое с мягким сравнивать - не очень большой смысл. Это разные FS, и применяться должны в разных условиях. Сколько памяти будет потреблять FAT + FTL ? И про фразу "littlefs не имеет исправления ошибок" хотелось бы подробности услышать. Не обрабатывает ecc ? А что, это ФС должна делать, не драйвер?