Pull to refresh
73
Karma
55.1
Rating
Алексей @Neoprog

Инженер-программист

  • Followers 125
  • Following

Пишем драйвер виртуального EEPROM для STM32F030

Например какие? Я чаще сталкивался с нехваткой функционала, чем с проблемами языка (не смог вспомнить с какими именно).

МВД РФ: страна готова к введению электронных паспортов, их начнут выдавать в Москве с 1 декабря

идентифицировать себя удаленно

кража такого документа может иметь гораздо больше негативных последствий, чем утеря бумажного паспорта

Надеюсь оставят выбор между бумажным вариантом и цифрой. Я прям вот почему-то ощущаю новую волну финансовых махинаций с приходом цифровых паспортов.

Пишем драйвер виртуального EEPROM для STM32F030

А зачем он там? С/С++ прекрасно справляются с задачами в этой области. Пока нет ощущения нехватки чего-либо, по крайней мере у меня. Это мое субъективное мнение.

Пишем драйвер виртуального EEPROM для STM32F030

Под состоянием bad имеется ввиду, когда страницу дотерли до дыр (циклы записи исчерпаны)?

Вообще сейчас в голову пришла идея каким-то образом копировать не целые страницы, а хранить диффы в виде "адрес - дифф" (разумеется блоками). Это как минимум позволит не перетирать страницы при каждом чихе. Нужно будет подумать

Пишем драйвер виртуального EEPROM для STM32F030

выделить чуть больше страниц и сделать аналог выравнивания износа

Конечно, почему бы и нет. Всё зависит от того, на сколько толстый FLASH и сколько объема можно пожертвовать.

Я не стал усложнять текущий пример, хотел сделать его максимально простым. Выравнивание износа можно прикрутить как надстройку для текущего драйвера. Сделать это достаточно просто.

Пишем драйвер виртуального EEPROM для STM32F030

Самый сок в том, что я только сейчас о нем узнал :) В целом подходы похожи (а есть ли другие?). Мне нужно больше времени разобраться в нем, возможно получится улучшить мой вариант

Но что-то мне подсказывает, что 3 состояний будет недостаточно. Я пытался уложиться в меньшее количество и в некоторых моментах возникали неоднозначности -- поэтому у меня их больше

Пишем драйвер виртуального EEPROM для STM32F030

Нет. Проверено экспериментально и в Reference Manual об этом сказано.

The Flash memory interface preliminarily reads the value at the addressed main Flash memory location and checks that it has been erased. If not, the program operation is skipped and a warning is issued by the PGERR bit in FLASH_SR register. The only exception to this is when 0x0000 is programmed. In this case, the location is correctly programmed to 0x0000 and the PGERR bit is not set.

Изначально я так и хотел -- обойтись словом. Я вот прям помню, что встречал где-то FLASH с возможностью сбросов отдельных битов, но не в этом случае

Пишем драйвер виртуального EEPROM для STM32F030

Согласен. Внешняя микросхема всегда предпочтительнее в этом случае. Но всё же бывают случаи, когда нет места для нее. Я сталкивался с подобной ситуацией, когда делал миниатюрное устройство, там каждый мм был на счету. Решал задачу логгирования данных.

Да и к тому же использование 2 страниц увеличивает количество циклов, но в итоге приведет к смерти сразу 2х страниц. Перспективы печальны.

Пишем терминальный сервер для микроконтроллера на С

Я физически выдернул провод во время ввода команды, куда УП посылать? Соответственно сервер об этом не узнает

Пишем терминальный сервер для микроконтроллера на С

Наверное стоит написать почему я пришел с этим убеждениям. Раньше я использовал HAL, но в новом проекте у меня перестал работать USART. Я потратил много времени на отладку и оказалось, что в HAL не правильно вычислялся baudrate (подробностей не помню, было давно).

После этого я соскочил с него.

Пишем терминальный сервер для микроконтроллера на С

Я кайфую с этого :) Причем это отличный способ разобраться в деталях как все работает. Не люблю HAL и прочие нагромождения. LL разве только, но это просто обертки.

Микроконтроллеры программирую только в своих хобби проектах и их не нужно портировать на другие процы.

Это лично мои убеждения. В больших проектах писать драйвера на регистрах излишне, но тут можно и развлечься :)

Пишем терминальный сервер для микроконтроллера на С

Ух, большое спасибо за ссылки, не попадались мне при поиске. Отличный источник хороших идей

Почему у нас такое жёсткое лицензионное соглашение

Как старый еврей старому еврею - а что вы хотели за 30 рублей?

То, что написано после "ЧТО МЫ ПРЕДЛАГАЕМ? (за 30 рублей)". Меня как клиента не должно волновать сколько там кВт нагорает. Так же там есть "На тарифе присутствует ряд технических ограничений." и там только лимит на диск установлен, не на CPU.

Хе-хе, а Вы в России хоть раз видели честную рекламу без обещаний, текстов мелким шрифтом и так далее?

Очень хотелось бы без этого всего, но реально такова...

Разработка hexapod с нуля (часть 3) — кинематика

Попробуйте сделать свой без 18 приводов, посмотрим на его мобильность :)

Разработка hexapod с нуля (часть 11) — стабилизация

гигантский while(true).

Это который в main? Внутри ОС такой же цикл.

Поддерживать такие проекты наверное не очень удобно.

С этим нет проблем

А вы не думали использовать ОС 

Чтобы подрыгать сервоприводами? Для светодиодов тоже ОС ставить?

Разработка hexapod с нуля (часть 11) — стабилизация

Могу предположить что следующий шаг будет в сторону ARM

Он там был изначально -- сначала SAM3X8E, сейчас STM32F373.

Разработка hexapod с нуля (часть 11) — стабилизация

Под слоеным пирогом я понимаю вот это

это ужасно. Для первого прототипа сойдет, но не для последующих и тем более для конечного продукта.

Мой прототип вообще был ужасен в плане эргономики и технологичности :)

Разработка hexapod с нуля (часть 11) — стабилизация

Ну не знаю, зависит от производительности процессора, который выбрать. Да и я бы не стал делать гексапод на DSP или FPGA -- излишняя сложность, там не нужна такая производительность.

Операционка и тем более ПК тут избыточны. Операционки хорошо подходят для реализации высокоуровневой логики (той же навигации). Думать о том, как там работает I2C или DMA процессора во время реализации алгоритма построения маршрута...мне бы не очень хотелось :)

Микроконтроллер на 72МГц спокойно вытаскивает весь текущий функционал с запасом. У меня есть знакомый, который решил реализовать гексапода на FPGA, вот наблюдаю что из этого получится.

Я надеюсь, что не потерял нить беседы, возможно я о чем-то другом написал, не о том что Вы имели ввиду

Разработка hexapod с нуля (часть 11) — стабилизация

По сути это не полноценный робот. Сейчас это просто шестиногая платформа, которая выполняет команды с более высокого уровня. А в качестве этого высокого уровня может выступать все что угодно.

AIWM -- сейчас реализуется только WM часть, AI часть потом :)

Разработка hexapod с нуля (часть 11) — стабилизация

Я пока не думал в этом плане, для этого нужно математический движок подготовить.

Первое что приходит в голову -- лидар. В рамках помещения отлично подойдет. Для открытой местности...а нужно ли это? Там АКБ на 20 минут, далеко все равно не уйдет.

Для определения препятствий можно использовать камеру, которая уже в нем есть. 20 FPS должно хватить с запасом

Я даже не знаю нужна ли навигация в нем. В целом это реализуемо. Нечего не мешает поставить в него RPI с какой-нибудь нейронной сетью и так же по WIFI управлять им, как я сейчас с телефона.

Information

Rating
91-st
Location
Тульская обл., Россия
Works in
Registered
Activity