Мурик, у тебя весь код. Все читается на ура , в этом Reflector'у жЫрный плюс, за плюсы жЫрный минус.Все дело в тебе, ты привык мыслить тупыми абстракциями , мы же на уровне железа. Вообщем -садись 2. arkhnchul, ты то что стебаешься? Код элементарно читаем .
Тогда создайте из него проект, который можно скомпилировать и получить рабочую прошивку. Только не надо отнекиваться как любите это делать, иначе вам будет
dosikus писал(а):
жЫрный минус.
dosikus писал(а):
Все читается на ура
Но не компилируется. Причину думаю не нужно объяснять?
Вопрос не в том насколько сложно достать gcc 7, а в том, сколько людей бросится его искать и интегрировать в свои IDE, чтобы запустить мой код
компилять и запускать - насамделе, дело десятое. Мне было бы интересно его просто глазами посмотреть - как именно вы в своем HAL-е (надеюсь, тут не все ассоциируют общее понятие hardware abstraction layer с корявым, но созвучным HAL от ST?) используете фичи как плюсов вообще, так и плюшек, завезенных в новый стандарт C++17 (иначе для зачем вам там gcc7?).
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Все читается на ура , в этом Reflector'у жЫрный плюс, за плюсы жЫрный минус.
Хорошая читаемость - это объективный показатель, а нелюбовь к плюсам еще нужно чем-то обосновать Мне тут попадались люди которые на работе пишут на плюсах, при этом не знают что такое шаблоны, чего же ожидать от сишников, которые имеют весьма смутное представление даже о С++98, при том, что С++17 - это совершенно другой язык, а уже есть gcc 8 с элементами С++20... Понять мой код просто, но чтобы оценить его истинный потенциал нужно знать современные плюсы, иначе действительно может показаться, что на регистрах получится проще и эффективнее. Мне не кажется, я даже близко не могу такого представить Как можно переписать на С код в котором в двух строках передается два порта, два номера пина, два DMA и два таймера, а каждая из этих сущностей еще хранит дополнительную информацию? Таймер знает номер APB шины, это нужно для включения тактирования, выполнения сброса или расчета частоты, естественно он знает какие именно биты нужно включить чтобы выполнить сброс и т.д., он знает свой IRQn, не только знает какие биты присутствуют у некоторых регистров, но и выполняет соответствующие проверки. Если передать TIM14 в мой LedBlink, то получим ошибку стадии компиляции, т.к. у этого таймера нет бита отвечающего за включение TimDmaReq::Update. Это бесплатная проверка, хотя маска битов лежит в структуре, структуру создает и возвращает функция по номеру таймера, другая функция проверяет у поля этой структуры нужный бит и возвращает bool и уже enableDmaRequest() проверяет это значение и если оно false, то функция просто выбрасывается. Раз функции нет, то получаем ошибку компиляции прямо в месте ее вызова... Можно так сделать на С?
Тогда создайте из него проект, который можно скомпилировать и получить рабочую прошивку.
Когда я тебя на днях пытался склонить в сторону RTT, ты мне заявил, что RTT - это тот же semihosting только с буферизацией. Предоставь тебе полный проект, ты его позапускаешь и ожидаемо выдашь, что С++ - это тот же С, только с плюсами Так что спасибо за предложение, но я продолжу обкатывать либы на товарищах и когда решу, что они удовлетворяют моим высоким стандартам, то может быть по крайней мере часть из них пойдет в открытый доступ
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
[uquote="dosikus",url="/forum/viewtopic.php?p=3380117#p3380117"]Все читается на ура , в этом ReflectorМне тут попадались люди которые на работе пишут на плюсах, при этом не знают что такое шаблоны...
Reflector, а Вы то где работаете? Что означает Ваше "мне тут попадались люди"? Где попадались? На ЭТОМ форуме?
Ретрокомпьютер-бейдж для участников конференции Hackaday в Белграде: сбывшиеся мечты прошлого Каждый участник конференции Hackaday в Белграде получит по необычному бейджу — это будут действующие ретрокомпьютеры.
Первые ассоциации, вызываемые словами «старый компьютер» — это щёлкающая клавиатура, а также монохромный экран, зелёный или оранжевый. Что ж, 55 тактовых кнопок неплохо щёлкают, а ЖКИ хоть и полноцветный, но изображение на нём можно при желании сделать монохромным. Его разрешение — 320х240, что создаёт впечатление ЭЛТ с низким разрешением. В компьютере реализована эмуляция терминала VT100 в режиме 40 знаков на 20 строк.
На обороте платы расположена динамическая головка. Звуковая подсистема машины — трёхголосная, качество звука высокое. Спереди расположены RGB-светодиод и гребёнка для прошивки, обмена данными по шине I2C, а также просто вывода нескольких GPIO. А «рулит» всем происходящим микроконтроллер PIC32MX370F512H, которому помогает в этом двухмегабайтная микросхема флеш-памяти. Много лет назад это был бы очень хороший компьютер: тактовая частота — 48 МГц, 512 килобайт доступного пользователю дискового пространства, 128 килобайт ОЗУ. подробнее: https://geektimes.com/post/301009/?utm_campaign=301009 https://hackaday.io/project/80627-badge ... n-belgrade
статейка на geektimes Spectrum-48 против пачки сигарет, каша из топора или что может STM32F103C8T6
Цитата:
Все началось с очередной попытки бросить курить. Разбудив свою внутреннюю «жабу» в поисках поддержки, говорю ей: «Смотри, пачка моих сигарет стоит сегодня как карманный ретро-компьютер с экраном, то есть примерно $10, а когда-то давным давно, на клон синклера-48К мы всю месячную зарплату и больше месяца на сборку и отладку потратили». Она: «Вы мужики- козлы и вруны, докажи!». Пришлось поработать. Итак, исходно-расходные материалы: * «Blue pill»: STM32F103C8T6 — 20K ram 64K flash $2.06 * «Ардуино Display»: ILI9341 2.8" 320x240 с сенсорным экраном и слотом карточки $7.72 * Пищалка $0.18 * Немного кнопок (7 штук) $0.2 * Немного проводов $0.1 * Флеш карта на 64 мега (с древнего фотоаппарата), в расчет не включена * Программатор ST-LINK, не расходуется и в расчет не включен, однако тоже пару долларов стоит * Пачка сигарет — расходуется слишком быстро и каждый день -$8.37
Любит народ готовые китайские платки, вместо того чтобы взять хотя бы 103RC($1.85) у которого 64К RAM и 512К флеша, за $2.06 берется платка на 103С8 и больше половины спектрумовского ОЗУ перебирается в SPI экран и портит бордюр, кроме того вместо оптимизаций эмулятора по скорости приходится оптимизировать его по размеру, а потом автор пишет, что в планах настроить задержки для корректного звука... В оригинале у каждой команды свое время исполнения, эмуляторы в конце выполнения каждой команды ждут когда это время истечет, в этом проекте эта проверка убрана, в результате скорость заметно возросла, но теперь команда которая должна выполняться 4 такта может выполняться медленнее команды на два десятка тактов, естественно при таком подходе нормального звука быть просто не может.
ATmega4809 с Микрочип периферией (Peripheral Event System, High-Speed ADC, The Configurable Custom Logic) пошла куда предпологалось ранее. ARDUINO UNO WiFi REV2 Спойлер технические характеристики:
* MCU – Microchip ATmega4809 8-бит AVR MCU с 6 Кб RAM, флэш-памятью 48 Кб и независимая от ядра периферия (CIPs) * Связь – 802.11 b / g / n WiFi @ 2.4 ГГц модуль U-blox W102 (который также поддерживает Bluetooth 4.2 LE, но это не указано в спецификации платы) * Цифровые входы и выходы – 14, с 6 ШИМ * Аналоговые входные контакты – 6 * Программирование – Разъем ICSP * USB – 1x USB device порт * Разное – кнопка сброса, встроенный IMU (Инерционный измерительный блок) * Аппаратная безопасность – крипто-чип Microchip ECC608 * Входное напряжение – от 5 до 12 В DC через разъем типа баррель, разъем Vin или USB порт (только 5 В) * Размеры – 68.6 x 53.4 мм
Плата UNO WiFi фактически является платой Arduino UNO Rev3 с новым микроконтроллером, WiFi модулем, встроенным IMU (Инерционным измерительным блоком) и аппаратной безопасностью.
Хабр, интересная статья Реверс-инжиниринг прошивки устройства на примере мигающего «носорога». Часть 1
Цитата:
26 апреля 2018 года компания ИНФОРИОН провела конференцию для студентов МГТУ им. Баумана SMARTRHINO-2018. Специально для конференции было подготовлено небольшое устройство на базе микроконтроллера STM32F042. Этот носорожек стал главным героем мастер-класса по реверсу прошивки. К сожалению, за время, отведенное на мастер-класс, не представлялось возможным провести полное исследование прошивки, поэтому мы решили восполнить это подробным разбором в формате статьи. Надеемся, информация будет полезна не только участникам конференции, но также всем начинающим кодокопателям.
Первая часть статьи составлена по мотивам проведённого мастер-класса и рассчитана на начинающих — уделяется внимание базовым подходам к реверсу прошивок и особенностям работы с дизассемблером IDA. Вторая часть немного сложнее, в ней уделяется внимание особенностям работы устройств на базе операционных систем реального времени.
продолжение статьи Реверс-инжиниринг прошивки устройства на примере мигающего «носорога». Часть 2
Цитата:
В первой части статьи прошивка устройства была загружена в дизассемблер IDA и выполнен первичный анализ команд протокола устройства. Отдельные команды были проверены на работающем устройстве.
Во второй части будет выполнен анализ оставшихся тасков прошивки.
дык там ассеблерный проект, состоящий из одного s файла и одной инструкции. Ассемблерные стартапы находятся в стандартной поставке CMSIS. Тот же SysProgs выпускает плагин VisualGDB, который создает ARMовые проекты с сишным стартапом.
Я таки помигал светодиодом (и не только) с 0 ассемблера и без CMSIS, плагинов, дебагеров и проч. Только я, мой код и камень. Мой код все что надо инитит сам. В сорцах, объектном коде и бинаре - только мой код, ни бита кроме него (и если что, CMSIS мне не нравится). По своему прикольно.
Это не самый простой и быстрый способ освоить камень. Зато я стал "на ты" и с тулчейном и с камнем. Без непонятной магии где либо. Я хочу чтобы оно для меня в случае МК работало так. Полностью предсказуемая и понятная штука. А ртосы, TCP/IP и микропитоны мне там ни к чему.
Для таких простых вещей ассм не нужен, есть же готовые __enable_irq() и т.п....
Во первых, Си сам по себе все же не может явно выдать такую конструкцию, так что это как максимум перевод стрелок с своего кода на чужой.
Во вторых мне было интересно, катит ли arm-linux-gnueabihf тулчейн. Я им билдовал ядра Linux и все такое, но заметил что и кодогенерация для cortex-M есть. Для M3 прокатило. Но либ/стартапов для cortex M там вроде нет. И хрен с ними, заодно как раз и разобрался как это на самом деле работает. Без волшебных коробочек делающих хз что, таких же либ и прочих вещиц которые мне не нравятся.
Хабр Запускаем дисплей на STM32 через LTDC… на регистрах
Цитата:
Приветствую! Недавно для проекта потребовалось запустить дисплей, который имел интерфейс LVDS. Для реализации задачи был выбран контроллер STM32F746, т.к. я с ним уже достаточно много работал и у него есть модуль LTDC, который позволяет работать напрямую с дисплеем без контроллера. В данном случае контроллер реализован уже внутри микроконтроллера. Так же не последним доводом было то, что на данном камне есть отладка STM32F746-Disco, которая у меня была под рукой, а значит я мог начинать работу над проектом не дожидаясь пока ко мне приедет плата, компоненты и прочее.
Сегодня я расскажу как запустить модуль LTDC, работая с регистрами (CMSIS). HAL и прочие библиотеки не люблю и не использую по религиозным убеждениям, но в этом и интерес. Вы увидите, что поднимать сложную периферию на регистрах так же просто, как и обычный SPI. Интересно? Тогда поехали! ... Итог
Как видите реализация даже сложной периферии на регистрах (CMSIS) является не сложной задачей, вам достаточно понять как оно работает внутри. Конечно нынче модно разрабатывать встроенное ПО без понимания происходящего, но это тупиковый путь, если вы планируете стать инженером, а не…
Если сравнить полученный код с решением на HAL или SPL, то можно заметить, что код написанный на регистрах более компактный. Добавив где нужно пару комментариев и обернув в функции мы получаем читаемость как минимум не хуже, чем у HAL/SPL, а если вспомнив, что reference manual документирует именно регистры, то работа с использованием CMSIS является более удобной.
еще статейки на Хабре Отладочная плата STM32F4 в форм-факторе Raspberry Pi
Цитата:
Добрый день, уважаемые хабровчане! Хочу представить общественности мой проект — небольшая отладочная плата на базе STM32, но в форм-факторе Raspberry Pi. От других отладочных плат она отличается тем, что имеет совместимую с корпусами от Raspberry Pi геометрию и наличие ESP8266-модуля в качестве беспроводного модема. А также приятные дополнения в виде разъёма для micro-SD карты и стерео-усилителя. Для использования всего этого богатства я разработал высокоуровневую библиотеку и демонстрационную программу (на C++11). В статье я хочу подробно описать как аппаратную, так и программную части этого проекта.
Кому этот проект может быть полезен? Наверное, только тем, кто захочет спаять эту плату сам, так как никакие варианты даже мелкосерийного производства я не рассматриваю. Это чисто хобби. На мой взгляд, плата покрывает достаточно широкий спектр задач, которые могут возникнуть в рамках небольших домашних поделок, использующих WiFi и звук.
Как известно, совместимость с инструментарием GNU и поддержка GDB делают практически любую популярную среду разработки пригодной для отладки широкого спектра встраиваемых платформ, чаще всего бесплатно и легально. В теории.
Съезжать с Микрочипа очень не хотелось. Однако после покупки компанией Атмела, сначала прикрыли, возможно, одно из самых перспективных семейств в портфолио компании — PIC32MM, а затем и всю линейку MIPS. Стало очевидно, что в обозримом будущем переход на ARM неизбежен, а т. к. Микрочип за два года так и не интегрировал поддержку атмеловских контроллеров в свою экосистему, никаких преимуществ «Оставайтесь с нами» не давало. Скорее наоборот — скорректированная вверх ценовая политика и традиционные организационные трудности слияния компаний сделали Атмеловские АРМы менее привлекательными. Одновременно подвернулся проект, об который PIC32MZ просто споткнулся. Критическая масса была набрана.
Почему STM: широкий охват рынка, бюджетная отладка, бесплатная полнофункциональная среда SW4STM32 на базе опенсорса, ну и политический аспект — ST Microelectronics поддерживается правительством Франции как стратегический ресурс, поэтому внезапный уход с рынка или поглощение, вроде бы, не грозят.
"расширение портов" на практике начало тут: https://radiokot.ru/forum/viewtopic.php ... 3#p3375703 теперь реально "расширяем" для 20-тиножечного самого дешевого малыша STM32F030F4P6 (помним реально начинка у него внутри - как у F031). SPI у STM32F030F4P6 оказался весьма неплох (4-bit to 16-bit data size selection, Two 32-bit embedded Rx and Tx FIFOs with DMA capability и пр.). Пока без DMA: Спойлер
Сейчас этот форум просматривают: >TEHb<, Сергеj и гости: 47
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения