Pull to refresh
2
0
Send message

Zynq 7000. Загрузка Embedded Linux на SoC через JTAG с помощью XSCT

Level of difficultyEasy
Reading time11 min
Views4.1K

Учитывая, что я очень давно занимаюсь отладкой и запуском самых разнообразных проектов связанных с Zynq 7000 — со временем количество итераций перезапуска при проведении отладки увеличивалось пропорционально сложности проекта. Когда я только начинал осваивать разработку под Zynq, то каждый раз закидывал новый образ на microSD карту. Это было очень медленным процессом и требовало от меня постоянно подключать/отключать карту. После этого я освоил сетевую загрузку через Ethernet и TFTP, заменяя файлы по сети и проверяя результат после перезагрузки.

Впоследствии, изучив вопрос связанный с типами загрузки, я обнаружил, что есть альтернативный способ загрузки платы через интерфейс JTAG, который впрочем может оказаться единственным доступным, если на плате нет microSD и Ethernet.  

Вот как раз вопросы связанные с тем, как произвести загрузку по JTAG я бы хотел осветить в этой статье. Всем кому интересно — добро пожаловать под кат. 

Читать далее
Total votes 45: ↑45 and ↓0+59
Comments12

Как одним движением сжечь 10000$ и получить удар током

Reading time14 min
Views107K

Представим себе в сущности довольно-таки заурядную ситуацию: у вас сломался сетевой источник питания. Вы берете в руки мультиметр и измеряете напряжение на входе и выходе источника. На входе у вас честные 230 В переменного тока из розетки, а на выходе по нулям. Вы знаете, что ваш источник питания – импульсный, и вы в курсе про то, что транзисторами источника управляет ШИМ-контроллер, который очень легко идентифицируется на плате.
На столе у вас стоит новенький осциллограф Tektronix DPO 7254 или какой-нибудь LeCroy WavePro 7300A ценою более 10000$, и вы решаете посмотреть с его помощью сигналы ШИМ-контроллера, чтобы диагностировать его исправность или неисправность. На щупе осциллографа написано, что его максимально допустимое напряжение равно 1000 В, это с хорошим запасом больше напряжения в розетке. Непосредственно на самом осциллографе рядом с разъемами для подключения щупов написана цифра 400 V, кроме того, у вас щуп с делителем 1:100, что тоже вселяет уверенность, что все будет в порядке. Вы включаете осциллограф и пробуете подключить его щуп к плате источника питания, однако, как только вы касаетесь щупом осциллографа платы источника питания, проскакивает искра и раздается громкий ба-бах. Экран вашего новенького осциллографа безжизненно потухает, сам осциллограф не реагирует ни на какие кнопки, а комнату заполняет характерный запах сгоревшей электроники. Что же произошло? Почему сгорел осциллограф и как такого избежать? Обо всем этом читайте под катом.
Читать дальше →
Total votes 100: ↑97 and ↓3+137
Comments218

Где скачать научную статью легко и доступно?

Reading time1 min
Views94K

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

Однако стоимость одной статьи от платных издателей может составлять 150 долларов, что не так уж и мало по сравнению с размером стипендии студента.

Здесь собраны совершенно бесплатные ресурсы, где вы можете найти интересующую Вас научную статью.

Читать далее
Total votes 89: ↑89 and ↓0+89
Comments26

Embedded Linux в двух словах. Второе

Reading time25 min
Views33K

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

В предыдущей части рассматривалось создание базовой системы, не выполняющей каких-либо полезных действий, но демонстрирующей, на своем примере, один из способов сборки подобных систем.

В этой части речь пойдет о таком инструменте автоматизации как Buildroot, о создании драйверов согласно современным веяниям драйверостроения, и реализации функционала, анонсированного в первой части, в виде отправки смайлов в топовый чат, широко известного в узких кругах, сайта,  в соответствии с командами от смайл-пульта.

Читать далее
Total votes 25: ↑24 and ↓1+31
Comments19

Сотрудничество с самозанятыми: преимущества и «подводные камни»

Reading time7 min
Views24K

Численность зарегистрированных плательщиков налога на профессиональный доход (НПД) в феврале 2021 года достигла 1,7 млн человек. На практике плательщиков НПД обычно называют самозанятыми, хотя в законодательстве и нет такого термина. Расскажу о плюсах и минусах сотрудничества с самозанятыми для бизнесменов.


image


Зачем бизнесменам работать с самозанятыми


Основная причина — снижение обязательных платежей, а точнее говоря, их «обнуление» для заказчика.

Читать дальше →
Total votes 16: ↑11 and ↓5+14
Comments44

Осциллограф в браузере

Reading time4 min
Views16K

Отрисовка графиков в реальном времени




Одно время я работал в компании, которая разрабатывала бесконтактные датчики, как на фото. И при установке этих датчиков, надо было правильно сориентировать антенну (белая штука на фото). И выглядело это так: один человек на объекте, где-то в Сибири, на морозе крутит антенну, а другой в Питере, в офисе, не видит того человека, но видит графики на мониторе. И вот они как слепой с глухим пытаются поставить антенну, один по графикам, по телефону говорит, что надо антенну повернуть, а другой пытается понять в какую сторону её крутить. Звучит как бред, правда? Но так и было.

Когда я это всё увидел, понял, что получать графики надо локально и прямо здесь и сейчас наблюдать всю картину, чтобы один и тот же человек видел сигнал и крутил антенну. И понял: надо пилить веб-интерфейс для этой железки. Опыта веб-разработки ноль, значит заодно и поучимся.
Total votes 31: ↑27 and ↓4+39
Comments30

Интеграция в проект LVGL графической библиотеки для микроконтроллеров

Reading time4 min
Views34K
LVGL — Light and Versatile Graphics Library также известная как LittleVGL.


Библиотека поддерживает большое количество микроконтроллеров, таких как STM32, ESP32 и другие. Мне пока удалось запустить полноценную демо программу на ESP32 и STM32f429 Discovery. Библиотека открытая, поддерживает большое количество графических элементов с Dark and Light темами. Распространяется под MIT license. Можно свободно использовать даже в коммерческих продуктах. Можно посмотреть интерактивное Online Demo без установки на устройство
Total votes 39: ↑39 and ↓0+39
Comments56

C2x: будущий стандарт C

Reading time7 min
Views40K


Я ловлю в далёком отголоске,
Что случится на моём веку.
(«Гамлет», Борис Пастернак)

Признаться, пишу на чистом C я не так уж и часто и за развитием языка уже давно не слежу. Но тут произошло два неожиданных события: С вернул себе звание популярнейшего языка программирования по версии TIOBE и случился анонс первой за долгие годы действительно интересной книги, посвящённой этому языку. Поэтому я провёл несколько вечеров за изучением материалов о C2x — следующей версии C.


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

Читать дальше →
Total votes 107: ↑107 and ↓0+107
Comments155

Почему JavaScript пожирает HTML: примеры кода

Reading time18 min
Views27K
Веб-разработка постоянно развивается. В последнее время стал популярным один тренд, который в основном противоречит общепринятому представлению о том, как нужно разрабатывать веб-приложения. Некоторые возлагают на него большие надежды, а другие испытывают разочарование. У каждого на это есть свои причины, которые в двух словах объяснить достаточно трудно.



Код веб-страницы традиционно состоит из трех разделов, каждый из которых выполняет свои обязанности: HTML-код определяет структуру и семантику, CSS-код определяет внешний вид, а JavaScript-код определяет его поведение. В командах с участием дизайнеров, HTML / CSS разработчиков и JavaScript-разработчиков это разделение получается естественно: дизайнеры определяют визуальные элементы и пользовательский интерфейс, разработчики HTML и CSS размещают эти визуальные элементы на странице в браузере, а JavaScript-разработчики добавляют взаимодействие с пользователем, чтобы связать все вместе и «заставить это работать». Каждый может работать над своими задачами, не вмешиваясь в код остальных двух категорий разработчиков. Но все это справедливо для так называемого «старого стиля».
Читать дальше →
Total votes 24: ↑21 and ↓3+30
Comments26

Конечный автомат (он же машина состояний) на чистом С

Reading time5 min
Views129K
Почти каждый микроконтроллерщик сталкивался с громадными switch-case и мучительно их отлаживал.
И много кто, начиная писать реализацию какого-либо протокола, задумывался как написать её красиво, изящно, так чтобы через месяц было понятно что ты имел в виду, чтобы она не отжирала всю память и вообще какала бабочками.
И вот тут на помощь приходят машины состояний, они же конечные автоматы (те самые которые используются в регулярных выражениях).

Собственно через регулярные выражения я к ним и пришёл.
Читать дальше →
Total votes 51: ↑48 and ↓3+45
Comments50

Опытное производство электроники за минимальный прайс

Reading time10 min
Views59K
Привет, Хабр!

Почитал я некоторые ранее опубликованные статьи о том, как жить славному молодцу, перед которым встала задача спаять 10-50-100 устройств из резисторов и микросхем, и взгрустнул, ибо во всех в них советы были даны если не вредные, то и не сильно полезные.


А вот, например, совет держать включённый паяльник за ручку — полезный!

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

  • регулярно надо делать 5-10-50-100 плат с SMD-компонентами
  • по возможности быстро
  • по возможности дёшево

Если вы можете позволить себе — что по срокам, что по деньгам — услуги «Резонита» или «Компэла» (сотрудничающего, впрочем, с «Резонитом») по сборке модулей под ключ, то текст ниже в общем и целом не для вас. Однако, на практике даже в достаточно крупных компаниях люди, занимающиеся опытными образцами, часто собирают их сами — потому что это занимает пару дней вместо недели, потому что всегда можно на ходу что-то подправить, потому что не надо бегать между начальством и бухгалтерией со счетами и актами… В мелких же вопрос упирается попросту в деньги.

Тем более, что в наше время базовое оборудование, позволяющее делать подобные вещи достаточно быстро и достаточно дёшево, доступно даже любителю-одиночке.
Читать дальше →
Total votes 170: ↑167 and ↓3+164
Comments413

Качество воздуха в доме зимой

Reading time4 min
Views86K
image

Зимой воздух в помещении хуже всего. Духота, сухость. Работает отопление, проветривать часто нельзя, потому что замерзнешь. Особенно актуально, когда дома есть маленькие дети.
Как соблюсти баланс? Возможно ли это?

В статье я приведу цифры и расчеты. А еще свой вариант решения проблемы и устройство, собранное для этого. Кому интересно, прошу под кат…
Читать дальше →
Total votes 64: ↑60 and ↓4+56
Comments411

Книга “Электричество шаг за шагом” от Рудольфа Свореня

Reading time17 min
Views58K


Сегодня день информатики, и кто-то возможно помнит первые уроки по информатике в школе, и свой первый учебник “Основы информатики и вычислительной техники” (1990 год):

Открыть

В числе авторов этого учебника был — Р.А. Сворень.

Про легендарного человека — Рудольфа Анатольевича Свореня мы делали серию публикаций (раз, два), и в том числе про его замечательную книгу “Электроника шаг за шагом”, про то как она изменила жизнь людей. Изначально была озвучена идея переиздания этой полюбившийся многим книги (на данный момент мы собрали почти 2000 заявок от людей, кто ждут переиздание).

Книги Рудольфа Анатольевича обладают удивительным качеством — изложение материала настолько доступно и понятно, от простого к сложному, что всё становится “по полочкам” и по окончании книги люди действительно начинают осознанно и самостоятельно разбираться в предмете.

Есть хорошие новости — в ближайшее время готовится к выходу из печати новая книга “Электричество шаг за шагом” — на КДПВ — картина из неё. Эта картина показывает то цельное восприятие мира, что было у Рудольфа Анатольевича — и “электричество” для него был важным фрагментом Картины Мира, про который он хотел так же рассказать.

Книга “Электричество шаг за шагом” ещё не поступала в продажу (хотя была готова в 2012 году), и у вас есть возможность купить книгу — сделать предзаказ.

Подробности под катом.
Читать дальше →
Total votes 31: ↑31 and ↓0+31
Comments16

Оптимизация энергопотребления STM32: практическое руководство

Reading time19 min
Views55K
Привет, Хабр!

В сети довольно много статей про работу микроконтроллеров STM32 в энергоэффективных устройствах — как правило, это устройства на батарейном питании — однако среди них прискорбно мало разбирающих эту тему за пределами перечисления энергосберегающих режимов и команд SPL/HAL, их включающих (впрочем, та же претензия относится к подавляющему большинству статей про работу с STM32).

Тем временем, в связи с бурным развитием умных домов и всевозможного IoT тема становится всё более актуальной — в таких системах многие компоненты имеют батарейное питание, и при этом от них ожидаются годы непрерывной работы.

Восполнять данный пробел мы будем на примере STM32L1 — контроллера весьма популярного, достаточно экономичного и при этом имеющего некоторые специфические именно для этой серии проблемы. Практически всё сказанное будет также относиться к STM32L0 и STM32L4, ну и в части общих проблем и подходов — к другим контроллерам на ядрах Cortex-M.



Практический результат должен выглядеть примерно так, как на фотографии выше (и да, о применимости мультиметров и других средств измерения к подобным задачам тоже поговорим).
Читать дальше →
Total votes 95: ↑92 and ↓3+89
Comments95

Моё разочарование в софте

Reading time11 min
Views390K

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


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

Для примера, современные автомобили работают, скажем, на 98% от того, что физически позволяет нынешняя конструкция двигателя. Современная архитектура использует точно рассчитанное количество материала, чтобы выполнять свою функцию и оставаться в безопасности в данных условиях. Все самолёты сошлись к оптимальному размеру/форме/нагрузке и в основном выглядят одинаково.

Только в программном обеспечении считается нормальным, если программа работает на уровне 1% или даже 0,01% от возможной производительности. Ни у кого вроде нет возражений.
Total votes 505: ↑474 and ↓31+443
Comments2474

Куча различных способов считывания битов

Reading time27 min
Views40K
image

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

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

Это звучит достаточно просто, и в каком-то смысле так и есть. Первый источник проблем заключается в том, что эта операция будет активно использовать кодеки — и да, она будет ограничена вычислениями, а не памятью и вводом-выводом. Поэтому нам нужна не просто рабочая, но и эффективная реализация. И по дороге мы столкнёмся со множеством других сложностей: взаимодействия с буферизацией ввода-вывода, обработка конца буфера, тупиковые ситуации в битовых сдвигах, определённых в C/C++ и в разных архитектурах процессоров, а также другие особенности битовых сдвигов.

В этом посте в основном сосредоточусь на множестве различных способов реализации считывателя; по сути, все рассмотренные здесь техники аналогично применимы и к записывающей части, но я не хочу удваивать количество вариаций алгоритмов. Их и так будет достаточно.
Читать дальше →
Total votes 32: ↑31 and ↓1+30
Comments4

Как я осилил английский

Reading time13 min
Views349K
Всем привет. Я – айтишник «за 30», и я люблю английский язык. Так получилось, что на протяжении многих лет английский никак не хотел полюбить меня. Перед вами живой пример человека с «плохой памятью», «неспособностью к языкам», богатейшим опытом неудачного изучения английского как на курсах, так и самостоятельно, упущенными из-за незнания языка шансами и возникшими на этой почве комплексами. Все, что можно было сделать в изучении иностранного языка плохо, я попытался сделать еще хуже. Не смотря на все это, перед вами история с хэппи эндом, которая, верю, поможет кому-то избежать глупых ошибок, сэкономить время, избавится от иллюзий и предрассудков по поводу изучения нового языка с около нулевого уровня.
Читать дальше →
Total votes 155: ↑151 and ↓4+147
Comments256

Криптография русского крестьянина

Reading time5 min
Views34K

Какая связь есть между умножением методом русских крестьян и современной криптографией? В отличие от обычно изучаемых процедур умножения, его можно запросто адаптировать под вычисление степеней, а не произведений; и в некоторых криптосистемах требуется вычисление именно степеней.

Должен сразу признаться, что статья не будет посвящена тому, как русским крестьянам удавалось обмениваться информацией втайне от своих помещиков.

Умножение методом русских крестьян


Если вы не знали о нём раньше, то это довольно любопытный подход к умножению, который не требует запоминания таблиц умножения — для него достаточно способности удваивать и делить пополам целые числа. Не очень понятно, как он относится к русским крестьянам: похоже, так же, как «датская сдоба» к Дании. Этот метод был известен ещё древним египтянам, которые явно жили намного раньше русских крестьян.

Общее описание метода просто, но не слишком информативно. Тем не менее, давайте начнём с него.
Читать дальше →
Total votes 80: ↑79 and ↓1+78
Comments15

Использование произвольных DataFlash 25-й серии вместо дорогих конфигураторов FPGA Altera без дополнительной аппаратуры

Reading time7 min
Views11K
Из любого описания на популярные FPGA известно, что для хранения их конфигураций используются специальные микросхемы – конфигураторы. В комментариях меня поправили, что потихоньку набирают популярность и FPGA, где это не требуется, но пока многие делают разработки именно на классике, где нужен конфигуратор, и с этим надо считаться. Например, для Altera Cyclone используются микросхемы EPCS. Ниже схема от типичной макетной платы с кристаллом семейства Cyclone IV. На ней мы видим конфигуратор EPCS16. Всё бы ничего, но традиционно эти конфигураторы достаточно дороги, поэтому хотелось бы использовать что-нибудь подешевле.

Подробности в длиннющем тексте ниже. Если же очень интересно, но лень читать так много букв, то можно упростить задачу, посмотрев подробное 20-минутное видео.

Читать дальше →
Total votes 29: ↑27 and ↓2+25
Comments23

Information

Rating
Does not participate
Registered
Activity