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

adnega

Свой
  • Постов

    3 594
  • Зарегистрирован

  • Посещение

  • Победитель дней

    3

Весь контент adnega


  1. А топовый Си-проект у меня сейчас более 32 тыс. строк кода, что на выходе дает 16кБ (загрузчик) + 122 кБ (приложение) бинарных данных, что примерно соотносится "1 Си-строка в 2 инструкции". Это примерно в 20 раз по строчкам жирнее самого топового моего asm-проекта, а по трудозатратам раз в 20 с меньшей трудоемкостью.
  2. Хорошо. Но 4 кБ это порядка 2000 инструкций всего. Вряд ли там какой-то сложный функционал. У меня топовые проекты порядка 100 кБ - на asm я бы такое не осилил.
  3. Ну, если вы такие богатые... ;)) то я советую современные AVR (ATtiny10-TSHR) или "монстров", типа, mega4808 - там даже программируемая логика есть!
  4. Насчет asm vs C: у мну тьма коммерческих, сложных (от 10 тыс. строк кода) проектов на Си (местами с asm-вставками). Покажите мне проекты на asm... Я сам давным давно (с начала AVR до примерно 2010) много чего делал на avr на asm, но с Си разработкой ни в какое сравнение не идет. Самый сложный проект на avr-asm у меня был порядка 2500 строк.
  5. Да, на asm разницы нет, я именно об этом ранее и говорил. Но на Си в avr, вроде, константы во flash нужно по особому обрамлять, держать две копии функций для работы со строками из ОЗУ и flash и т.п. В Cortex-M в этом плане более Си-оринтировано. Да, те же обработчики прерываний - обычные функции, а не специально оформленные конструкции. Итого, если ТС топит за Си, то Cortex-M не разочарует.
  6. Допустим. Но использовать линейное адресное пространство на Си в Cortex-M намного приятнее AVR-овской модели памяти ;)
  7. Я тоже когда с AVR на STM32 перебрался негодовал по этому поводу. А потом понял, что сам дурак, начал делать нормальную обвязку, и ни одного мертвого STM32 уже не видел. Кста, условия для STM32 у меня далеко не тепличные, изделия выпускаются более сотни штук ежемесячно. Две недели назад, правда, дочка мощной статикой убила сенсорный выключатель, но там полетел только один канал, там нет никакой защитной обвязки, контроллер проработал лет 5 при ежедневной эксплуатации (выключатель света в комнате в квартире). Итого, если есть возможность делать правильно, то STM довольно хорошее решение. А из Тини11 (когда они только на свет появились) у меня даже дым вышел какой-то, но он до сих пор работает
  8. Не видел в 8 ногих МК сложной периферии: FMC, SDIO, Ethernet, DCMI, LTDC и т.п. (в терминах STM32F4 и выше) Основное время уйдет на изучение не ядра, а сложной периферии. В большеногих корпусах задействовано много сложной периферии, и отдельная проблема все со всем подружить. Согласитесь, что в 8 ногом корпусе вы это все изучать не будете.
  9. Для задач уровня "8 ногий soic" понятие "изучать" как-то громко звучит. Да, какое-то время уйдет на настройку среды и инструментов, но ядро и периферию изучать... пару дней достаточно. Я советую для таких задач тот же ATtiny10-TSHR - мелкий/дешевый/пятивольтовый. Если хочется изучать, то Cortex-M - изучай и кайфуй, но 5В - редкость. Я в качестве рабочей IDE пользуюсь Eclipse - для AVR/Cortex-M/SIM800/ESP32/MinGW/Python в Windows (основной) и Ubuntu (в попытках переехать). Важно понимать: если вы asm-кодер, то AVR будет норм; если Си - то только Cortex-M. Если ваши задачки могут решиться на уровне arduino, то пользуйтесь arduino (ногодрыг, АЦП, последовательный порт, ШИМ).
  10. Что насчет: "Вывод CMD (PD2) не должен быть OD? У вас PP. "
  11. Вывод CMD (PD2) не должен быть OD? У вас PP.
  12. Тогда проверьте частоты: инициализация, вроде, порядка 400 кГц, а чтение можно хоть 48 МГц (вроде).
  13. А что насчет питания карты? Какое оно? Есть ли ключик для "power cycle"?
  14. Инициализация может занимать до секунды. Попробуйте другие карточки, других производителей.
  15. У меня есть: - Universal Serial Bus Specification Revision 2.0 April 27, 2000; - Universal Serial Bus Class Definitions for Communications Devices Revision 1.2 November 16, 2007; - Universal Serial Bus Communications Class Subclass Specification for PSTN Devices Revision 1.2 February 9, 2007. Этого достаточно или рекомендуете еще что-то? Читал. Круто все и довольно глубоко все поясняется, но в стиле "делай раз, делай два", а мне нужно что-то типа спецификаций/стандартов. Говорят, для ST-MCU могут выдать VID/PID. Мне бы хватило стандартного для VCP, но наверное нужно каким-то требованиям по функционалу удовлетворять. Как появится время - попробую этот вопрос решить.
  16. r2axz, видно, что вы в теме USB очень хорошо разбираетесь. Какую бы вы посоветовали литературу для изучения USB и CDC в частности? Меня в первую очередь волнует вопрос: может ли мое устройство CDC, подключенное к хосту, узнать открыт ли порт на хосте сейчас? При открытии я получаю пачку GET_/SET_LINE_CODING, SET_CONTROL_LINE_STATE, по которым могу сконфигурировать UART и т.п. Но при закрытии порта вообще никаких пакетов не приходит. Или открытие/закрытие порта - это головная боль на уровне приложений, а драйвер всегда все принимает? И еще момент насчет VID/PID от ST: кто-нибудь получал официальное разрешение на их использование в своих изделиях?
  17. В старой версии SDK, говорят, много проблем было. Я сам долгое время не мог гарантировать работу esp8266 даже на своей прошивке. Просто, библиотечная функция либо возвращала бред, либо не возвращала управление вообще. Больше всего напрягало, что с течением времени модуль вроде как забывал таблицу ARP и переставал то ли отправлять, то ли принимать пакеты - нужна была постоянная активность. Не знаю как сейчас с этим - слышал пофиксили, но сам дотошно не разбирался и не тестировал.
  18. Рекомендую обновить прошивку. Кста, у вас модуль с каким объемом памяти? Нужно на стороне ESP8266 включить DHCP-клиента для STA-режима. В некоторых роутерах есть логи - можно их посмотреть. Посмотреть какие регионы выбраны для WiFi на стороне роутера и на стороне esp8266. Ну, и питание, антенна...
  19. Можно собрать такого программируемого робота на дискретной логике. Справа вверху 4 светодиода направлений (белый вверху, два желтых по бокам, красный внизу); верхняя кнопка запускает блок ИНАЧЕ. Пока кнопка не нажата выполняется команда из блока "ТО", при нажатии последовательно выполняются команды из блока ИНАЧЕ (1-2-3), но желтым проводом последовательность можно прервать на команде 2 или 3 (рядом с переключателем есть соответствующие штырьки). Есть тактовый сигнал (такт подается с нижней кнопки или со встроенного генератора 1Гц). Пока тактовый сигнал в 1 выполняется действие с соответствующей группы DIP-переключателей. Сдвоенный переключатель управляет двумя моторами (соответственно левый и правый). Если переключатель вверху, то мотор крутит колесо вперед; если внизу, то назад. Когда тактовый сигнал в 0 - моторы останавливаются. Рядом с каждым переключателем есть светодиод активности (зеленый у блока ТО, желтый у блока ИНАЧЕ). Делая разные сенсоры, можно заставить робота следовать по линии, находить выход из несложного лабиринта, при встрече с препятствием отъезжать и разворачиваться. Это более сложный робот, но работающий на простейших принципах. Есть 4 датчика, для них задается таблица истинности (16 значений), в каждой ячейке которой задана определенная команда. Таблицу можно задавать по WiFi, можно получать значения датчиков и углы поворота колес (есть энкодеры) тоже по WiFi. ПО на ПК рисует маршрут движения робота с достаточной точностью. Еще один из режимов работы описал в предыдущем посте. Есть и прямое управление колесами. Корпус робота выполнен из воздушного пластилина в форме какого-то жука-паука.
  20. Год назад мы с дочкой принимали участие в Робоштурме. Собрали программируемого робота на логических микросхемах только (генеретор, счетчик, мультиплексор, дешифраторы...). Родителей удалили, а с детьми беседовали члены комиссии в закрытой аудитории. Я так понял, что они поняли, что она не может это понимать, т.к. ее похвалили, но конструкцией никто не интересовался, продемонстрировать работу тоже не дали. Конечно, многие пришли туда за бонусами к поступлению в ВУЗ, а мы же за чистым фаном. После окончания официальной части, к нам подходило несколько человек, и они очень удивлялись, что девочка-первоклассница понимает, что такое двоичная логика, но 99% это не интересует.
  21. Не думаю, что архитектуру ПК стоит изучать. Уверен, что архитектура шагнула далеко вперед со времен MS-DOS и стала настолько сложной, что никакого времени не хватит ее постичь. Лучше начать с того, что даст ощутимый результат сразу, и в то же время замотивирует изучать дальше. Ребенку проще и понятнее написать "light.on(Color.RED)", а не "*(0x400800b4) = 1". Я в 99% случаев пишу (работаю) на Си, но там очень много особенностей и ограничений. Это как изучать математику по калькулятору. В Питоне все проще, понятнее, много библиотек, работает на разных платформах - пишешь алгоритм, а код. Базовые конструкции практически любого языка присутствуют. Можно сначала линейный код писать. Затем в задачах, которые в цикл сворачиваются, показать что такое цикл и как он упрощает жизнь и т.д. и т.п. Я сам Питон только с лета начал изучать, но уже много где с ним столкнулся: декодеры для DSLogic (сейчас для своих нужд написать декодер не составляет труда), скрипты KiCAD (надеюсь, позволят еще сильнее реализовать автоматизацию сквозного проектирования), для обработки логов/текстовых файлов теперь использую Питон (раньше все делал на Перле), программируемые блоки LEGO (спайк, инвентор, даже старичок ev3) могут выполнять программы на микроПитоне, черная пилюля может работать с микроПитоном.
  22. Сейчас модно STEAM - это не только программирование, а весь комплекс сопутствующих дисциплин.
  23. Python очень рекомендую. Для 12-13 лет самое то. Я дочке в 7 лет показал avr-asm в машинных кодах, но это исключительно со взрослым. Самостоятельно она довольно быстро разобралась со Scratch. Flowcode чем-то напоминает Scratch, но Scratch в разы удобнее - можно со смартфона пальцем программировать. Плюс большая коллекция всего, чтобы сделать анимацию, игру и т.п. У известного производителя конструкторов есть целое подразделение для образовательных целей. Насколько я понял, сейчас они пришли к схеме: Scratch 3.0 для начинающих, а для продвинутых Python.
×
×
  • Создать...