Flashlink mini pdf что это
Что такое Flashlink? Популярное
Технология Flashlink связывает контроллер СХД с SSD-диском и устанавливает между ними алгоритм взаимодействий для того, чтобы добиться максимальной производительности и надёжности.
Large — Block Sequential Write
Объясним на примере Huawei Dorado V3. Алгоритм записи основан на концепции “out-of-space”, то есть каждый новый цикл записи-перезаписи данных происходит в новой ячейке диска. Таким образом Dorado V3 формирует данные в stripe с параметрами рейда. Когда stripe заполняется, он записывается на диск.
У такого алгоритма есть два преимущества. Во-первых, пользователь избегает проблемы с усилением записи и задержкой записи, что даёт возможность добиться высокой производительности СХД вне зависимости от типа используемого RAID’а – RAID 5, RAID 6 или RAID TP. Во-вторых, снепшот согласуется с оригинальной стратегией записи LUN, таким образом производительность не страдает и в этом аспекте.
Разделение hot&cold data
SSD-накопители используют NAND Flash память. Перед записью новых данных NAND Flash блок должен быть очищен, эта процедура называется “уборка мусора” (Garbage Collection). NAND Flash память использует “страницы” и “блоки”, как единицы данных. “Страница” – это основная единица записи данных, а ”блок” – минимальная единица удаления. Раздел состоит из нескольких страниц. Так как каждый блок содержит верные, ошибочные и пустые данные, верные данные будут перемещены в другие разделы после процедуры GC. При идеальном сценарии, если все данные в блоке ошибочны, то SSD-накопитель может сразу удалить блок без перемещения верных данных. В таком случае производительность возрастает. Ввиду того, что контроллер СХД и SSD-диск созданы компанией Huawei, программное обеспечение контроллера может тегировать данные по степени частоты обращения к ним, тем самым разделяя их на Hot и Cold data, что позволяет распределить их в разные блоки. В тех блоках, в которых содержится только Hot data, процедура GC проводится заранее, чтобы избежать чрезмерной и неэффективной миграции данных.
GFTL – Global Garbage Collection
Мы знаем, что память NAND Flash поддерживает операции чтения, записи и удаления. Однако в реальном производстве, осуществляется поддержка только операций чтения и записи, что даёт SSD-накопителям большое количество времени для компенсации отсутствия поддержки функции “удаления”. Также FTL размечает LBA\PBA, уровень износа, GC и другие параметры. Dorado V3 использует GFTL, таким образом выбирается наиболее подходящий блок для процедуры GC (Garbage Collection).
Global Wear Levelling&Anti Global Wear Levelling
Dorado V3 регулярно оценивает состояние SSD-дисков контроллера через программное обеспечение, а также оценивает состояние дисков хранилища перед тем, как распределить ресурсы хранения. Таким образом, маркеры износа дисков контроллера и хранилища одинаковые, производительность остаётся стабильной. После того, как уровень износа диска превышает допустимый порог, если Вы будете продолжать использовать такие диски, несколько из них могут выйти из строя и данные будут могут быть потеряны. В таком случае, в качестве защитной меры включается функция Global Wear Levelling, которая будет следить за тем, чтобы несколько дисков сразу не вышли из строя. Она выбирает диск с наибольшим показателем износа и записывает на него данные, пока на нём есть свободное пространство, тем самым повышая надёжность сохранности данных.
TRIM и GC
Чтобы лучше понять GFTL, мы должны разобраться с такими понятием как TRIM и взаимоотношениями между TRIM и GC. TRIM – это команда, которую операционная система направляет на SSD-накопитель, чтобы проинформировать его о том, какие блоки данных уже не используются и могут быть удалены. Также можно сказать, что TRIM используется, чтобы проинформировать SSD-диск об ошибке в данных. Если ОС СХД не поддерживает TRIM, то SSD-диск переместит дефектные данные в новую ячейку как верные данные во время процедуры Garbage Collection. Другими словами TRIM позволяет избежать записи дефектных данных и увеличивает производительность и надёжность дисковой системы, так как она не будет пытаться прочитать испорченный блок данных снова и снова.
Классический TRIM выбирает блок с наибольшим количеством дефектных данных. После выполнения TRIM, удалённые блоки на диске всё ещё фрагментированы, и диску всё ещё нужно провести GC. На Dorado V3, напротив, выбираются данные, которые приведут к полному удалению блока, даже если они не содержат максимальное количество дефектных данных, что делает GC более эффективной.
Надеемся, что данный пост будет для Вас полезен! Всегда задавайте интересующие Вас вопросы, мы будем отвечать на них, пока у нас есть силы J
А какие интересные функции оборудования Huawei используете Вы? Ждём Ваших ответов в комментариях.
Программы для ремонта USB флешек, SD карт (диагностика и тестирование, форматирование, восстановление)
Доброго времени!
Совсем не редко с SD-картами и USB-флешками происходят всякие неприятности: то не читаются, то копирование идет слишком долго, то появляются разного рода ошибки (что диск защищен от записи, что требуется форматирование, отображается неправильный объем памяти и пр.). Причем, происходит это порой ни с того ни с сего. 👀
В этой статье, хочу порекомендовать десяток утилит, которые не раз и не два меня выручали. С их помощью можно работать с флешками и накопителями разных производителей (Silicon Power, Kingston, Transcend и пр.), т.е. это универсальное ПО! 👌
Думаю, материал придется весьма кстати всем, кто периодически сталкивается с подобными проблемами.
📌Также в помощь!
1) Почему компьютер не видит флешку: 10 основных причин!
3) Как проверить флешку на вирусы и очистить ее — см. инструкцию
Программы и утилиты для ремонта флешек и SD-карт
Для тестирования и диагностики
CrystalDiskMark
Расшифровка параметров + как пользоваться: см. инструкцию
Очень полезная небольшая утилита. Позволяет быстро получить данные по скорости чтения/записи. Поддерживает не только USB флешки, но и классические HDD, SSD, внешние жесткие диски и пр. накопители (которые видит «Windows»).
H2testw
Тест пройден нормально, ошибок не найдено
Как узнать реальный объем флешки и восстановить ее работоспособность (с помощью H2testw).
Flash Memory Toolkit
Flash Memory Toolkit — хороший комплекс для обслуживания USB устройств. Позволяет выполнить целый спектр самых необходимых действий:
Flashnul
Сайт разработчика: http://shounen.ru/
Окно работы Flashnul
Эта программа можно диагностировать и исправлять многие программные ошибки (особенно, когда неясно, что вообще происходит с флешкой: т.е. не высвечивается никаких ошибок). К тому же она поддерживает практически все носители на flash-памяти: USB flash drives, CompactFlash, SD, MMC, MS, XD, и пр.
ChipEasy
Бесплатная и очень простая утилита для получения полной информации о флешке. Очень пригодится в тех случаях, когда на самой флешке маркировка стерлась (или ее вообще не было).
Какие данные предоставляет ChipEasy:
Flash Drive Information
Утилита аналогична предыдущей. Позволяет за 2 клика мышкой узнать всю информацию о накопителе (флешке, карте памяти): модель, контроллер, память и т.д.
USB Flash Benchmark
Сайт разработчика: http://usbflashspeed.com/
Результаты тестирования накопителя в USB Flash Benchmark
Еще одна утилита для тестирования скорости работы флешек. Позволяет получить не только какие-то цифры, но и сравнить их с другими накопителями (т.е. оценить свою флешку с другими моделями устройств). Сделать это можно благодаря тому, что результаты тестов сохраняются на одноименном сайте (вместе с моделями флешек).
Кстати! Если вы надумали купить быструю флешку — просто зайдите на сайт http://usbflashspeed.com/ и посмотрите топ 10. Таким образом сможете приобрести то, что уже другие люди испытали на практике!
Для восстановления удаленных файлов с флешки
Нижеперечисленные утилиты могут пригодится и в тех случаях, когда флешка была отформатирована (или возникли какие-либо ошибки).
Data Recovery Wizard
Инструкция по работе с программой — см. мой пример
Выбираем файлы для восстановления
Достаточно мощная программа для восстановления случайно-удаленных файлов (например, после форматирования диска, или после каких-то ошибок файловой системы). Data Recovery Wizard поддерживает разные типы накопителей: HDD, SSD, SD-карты, USB-флешки.
Примечание : программа подкупает тем, что часто помогает восстановить данные, когда другое ПО бессильно (еще один плюс: структура каталогов при восстановлении тоже будет сохранена).
Обратите внимание, что бесплатная версия программы поддерживает восстановление не более 2 ГБ информации. Совместима с Windows 10/11.
R.Saver
Выбор накопителя, с которого пропали файлы (процесс восстановления в R.Saver)
Простая в использовании программа для восстановления удаленных файлов с различных типов носителей: жестких дисков, карт памяти, флешек и т.д. Можно использовать при различных ошибках, сбоях файловой системы, после форматирования, вирусного заражения и пр.
Поддерживает файловые системы NTFS, FAT и ExFAT. Для жителей России (при использовании в не коммерческих целях) программа бесплатна.
Вы можете подробно ознакомиться по работе с R.Saver в статье о том, как восстановить фото с MicroSD карты памяти или USB-флешки.
Recuva
Программа для восстановления файлов от разработчиков CCleaner (знаменитой утилите для очистки Windows от мусорных файлов).
Recuva позволяет работать не только с HDD, но и с USB флешками, внешними дискам, SSD, картами памяти. Программа ориентирована на начинающего пользователя, поэтому ее использование очень простое.
MiniTool Power Data Recovery
Очень мощная программа (с уникальными алгоритмами сканирования), которая позволит восстановить данные с битых флешек, карт памяти, внешних дисков, CD-дисков и др. накопителей. Поддерживаются популярные файловые системы: FAT 12/16/32, NTFS.
От себя отмечу, что на мой скромный взгляд, алгоритмы программы на самом деле отличны от других программ подобного толка, т.к. несколько раз с ее помощью удавалось восстановить информацию, когда другое ПО просто ничего не находило.
Примечание : в бесплатной версии программы MiniTool Power Data Recovery можно восстановить только 1 ГБ информации.
📌 Дополнение!
Вообще подобных программ достаточно много ( прим. : которые могут просканировать накопитель и восстановить часть удаленных файлов).
В одной из своих прошлых статей я уже приводил десяток наиболее удачных бесплатных продуктов (большая часть из них работает не только с классическими HDD, но и с флешками). Ссылку на статью публикую ниже.
Для форматирования и ремонта
HDD Low Level Format Tool
Выбор накопителя || Continue || HDD Low Level Format Tool
Программа для низкоуровневого* форматирования жестких дисков, SD карт, флешек и др. накопителей. Отметил бы ее «неприхотливость»: даже если другие утилиты зависают при попытке обратится к флешке (или ее не видят), HDD Low Level Format Tool способна в большинстве случаев помочь.
MyDiskFix
Примечание : утилита разработана китайскими программистами. В китайской версии разобраться достаточно сложно, поэтому ссылку даю на англ. версию (русской в сети не встречал).
Скриншот работы MyDiskFix
Бесплатная небольшая утилита, предназначенная для низкоуровневого форматирования сбойных флешек. Пригодится в тех случаях, когда вашу флешку не удается отформатировать стандартными средствами Windows, когда у флешки показывается ошибочный объем, или происходит ошибка записи.
Примечание : перед форматированием в MyDiskFix, необходимо узнать, сколько на вашей флешке реально-рабочих секторов. Сделать это можно, например, с помощью утилиты H2Test (которую приводил выше).
USB Disk Storage Format Tool
Небольшая утилита для форматирования HDD/USB Flash drive (поддерживаются файловые системы: NTFS, FAT, FAT32).
Format USB Or Flash Drive Software
Скриншот главного окна утилиты Format USB Or Flash Drive Software
Специализированная утилита для работы со сбойными USB накопителям. Позволяет произвести форматирование и восстановление работы флешки. Отметил бы еще ее очень простой интерфейс (см. скрин выше), и возможность работы без установки.
Transcend RecoveRx
Скрин работы приложения Transcend RecoveRx
Многофункциональная программа: позволяет восстанавливать файлы с флешек, производить их форматирование, и защищать паролем.
Вообще, эта программа предназначена для флешек от производителя Transcend, но не могу не отметить, что возможность форматирования работает и для флешек другого производства.
RecoveRx достаточно «всеядная» программа: поддерживает USB флешки, карты памяти, MP3-плееры, внешние жесткие диски (HDD)и твердотельные накопители (SSD).
JetFlash Recovery Tool
SD Formatter
Форматирование SD карты Canon в SD Formatter
Эта утилита предназначена для ремонта и восстановления карт памяти: SD, SDHC, SDXC, microSD. Разработчики специально ориентировали свой продукт для нужд фотографов, видео-операторов, и специалистов по обслуживанию подобной техники.
Восстановление накопителя происходит в авто-режиме. Подойдет в самых разных случаях: при ошибках в ПО, заражении вирусами, сбоях, из-за неправильного использования и пр.
D-Soft Flash Doctor
Небольшая портативная программа для диагностики и ремонта битых флешек (низкоуровневое форматирование, программный сброс). Кроме этого, умеет создавать образы с флешек/карт памяти и записывать их на др. носители информации.
Программа поддерживает русский язык (т.к. разработчик из Казахстана), и совместима со всеми современными ОС Windows 7, 8, 10, 11.
Типы стандартов USB и разница между ними
Содержание
Содержание
Вроде мы слышали, что USB 3.0 — это круче, чем USB 2.0. Но чем именно — знают не все. А тут еще появляются какие-то форматы Gen 1, Gen 2, маркировки Superspeed. Разбираемся, что значат все эти маркировки и чем они отличаются друг от друга. Спойлер: версий USB всего четыре.
USB 2.0
Когда-то было слово только USB 1.0. Сейчас это уже практически архаика, которую даже на старых устройствах почти не встретить. Еще 20 лет назад на смену первопроходцу USB 1.0 пришел улучшенный USB 2.0. Как и первая версия, эта спецификация использует два вида проводов. По витой паре идет передача данных, а по второму типу провода — питание устройства, от которого и идет передача информации. Но такой тип подключения подходил только для устройств с малым потреблением тока. Для принтеров и другой офисной техники использовались свои блоки питания.
USB версии 2.0 могут работать в трех режимах:
USB 3.0
Стандарт USB 3.0 появился в 2008 году и до сих пор используется во многих устройствах. Скорость передачи данных выросла с 480 Мбит/с до 5 Гбит/с. Помимо скорости передачи данных, USB 3.0 отличается от версии 2.0 и силой тока. В отличие от более ранней версии, которая выдавала 500 мА, USB 3.0 способен отдавать до 4.5 Вт (5 В, 900 мА).
Новое поколение USB обратно совместима с предыдущими версиями. То есть USB 3.0 может работать и с разъемами USB 2.0 и даже 1.1. Но в этом случае буду ограничения по скорости. Подключив USB 3.0 к устройству с USB 2.0 скорость, вы получите не больше 480 Мбит/с — стандарт для версии 2.0. И наоборот, кабель 2.0 не станет более скоростным, если подключить его в устройство с USB 3.0. Это связано с количеством проводов, используемых в конкретной технологии. В версии USB 2.0 всего 4 провода, тогда как у USB 3.0 их 8.
Если вы хотите получить скорость передачи, заявленную стандартом USB 3.0, оба устройства и кабель должны быть именно версии 3.0.
USB 3.1
В 2013 году появляется версия USB 3.1 с максимальной заявленной скорость передачи данных до 10 Гбит/с, выходной мощностью до 100 Вт (20 В, 5 А). С появлением USB 3.1 произошла революция в маркировках всех стандартов. Но с ней мы разберемся чуть позже. А пока запомним главное: пропускная способность USB 3.1 увеличилась вдвое по сравнению с версией 3.0. И одновременно с обновленным стандартом появился и принципиально новый разъем — USB type-С. Он навсегда решил проблему неправильного подключения кабеля, так как стал симметричным и универсальным, и теперь все равно, какой стороной подключать провод к устройству.
USB 3.2
В 2017 году появилась информация о новой версии — USB 3.2. Она получила сразу два канала (больше проводов богу проводов) по 10 Гбит/с в каждую сторону и суммарную скорость в 20 Гбит/с. Стандарт USB 3.2 также обратно совместим с режимами USB 3.1, 3.0 и ниже. Поддерживается типом подключения USB-C на более современных гаджетах.
Типы разъемов
Версий разъемов USB несколько, и для каждого есть свое предназначение.
Superspeed, Gen или как разобраться в маркировках стандартов USB
Как только в типах стандартов появилась USB 3.1, привычная цифровая маркировка изменилась и здорово запуталась. Вполне понятный и простой USB 3.0 автоматически превратился в USB 3.1 Gen 1 и ему была присвоена маркировка SuperSpeed. А непосредственно сам USB 3.1 стал называться USB 3.1 Gen 2 с маркировкой SuperSpeed +.
Но и это уже потеряло свою актуальность с выходом стандарта USB 3.2. Он получил название USB 3.2 Gen 2×2 и маркировку SuperSpeed ++. В итоге маркировка всех предшествующих стандартов опять меняется. Теперь USB 3.0, она же USB 3.1 Gen 1, превращается задним числом в USB 3.2 Gen 1 с прежней маркировкой SuperSpeed. А USB 3.1, ставшая USB 3.1 Gen 2, тоже поднялась до USB 3.2 Gen 2. При этом конструктивно все стандарты остались прежними — изменяются только названия. Если вы уже запутались во всех этих цифрах и маркировках, таблица ниже поможет внести ясность в актуальных названиях.
Если еще более кратко, то сейчас опознать стандарты USB можно так:
USB 3.0 — это USB 3.2 Gen 1, он же Superspeed
USB 3.1 — это USB 3.2 Gen 2, он же Superspeed+
USB 3.2 — это USB 3.2 Gen 2×2, он же Superspeed++
Flashlink mini pdf что это
= оÑвеÑÑ Ð½Ð° ÑÑÐ¾Ð²ÐµÐ½Ñ 4 =. ЧаÑÑÑ 1 ЧаÑÑÑ.
Рейтинг Alexa: #22,374,822 Google PageRank: 0 из 10 Яндекс ТИЦ: 0
ТоÑи. ÐоÑ. Ðне нÑавиÑÑÑ. 73. Я. ÑÑаÑÑ.
Google PageRank: 0 из 10 Яндекс ТИЦ: 0
Google PageRank: 0 из 10 Яндекс ТИЦ: 0
Google PageRank: 0 из 10 Яндекс ТИЦ: 0
Google PageRank: 0 из 10 Яндекс ТИЦ: 0
Google PageRank: 0 из 10 Яндекс ТИЦ: 0
Рейтинг Alexa: #10,811,221 Google PageRank: 0 из 10 Яндекс ТИЦ: 0
Google PageRank: 0 из 10 Яндекс ТИЦ: 0
Just another WordPress site
Google PageRank: 0 из 10 Яндекс ТИЦ: 0
Google PageRank: 0 из 10 Яндекс ТИЦ: 0
Фильм снят по роману Томаса Хьюза, а данная история написана по событиям, которые имели место быть в прошлом. И это, без сомнения, интересно. Главным героем
Google PageRank: 0 из 10 Яндекс ТИЦ: 0
Google PageRank: 0 из 10 Яндекс ТИЦ: 0
Sede en Internet del Instituto Cervantes creada para difundir la lengua española y la cultura en español: exposiciones, monográficos, obras de referencia, materiales didácticos para la clase de español, foros, debates, y.
Рейтинг Alexa: #30,626 Google PageRank: 7 из 10
Sitio oficial de la agrupación tropical norteña, El Cumbiambero Mayor, JLB y Compañía.
Рейтинг Alexa: #257,193 Google PageRank: 0 из 10
Google Тренды это диаграмма для отслеживания сезонности ключевых слов. Этот график позволяет лучше понять сезонное изменение полулярности запросов по определенной тематике.
Значения приведены относительно максимума, который принят за 100. Чтобы увидеть более подробную информацию о количестве запросов в определенный момент времени, наведите указатель на график.
Многобукфф
Vladislav’s personal blog site
Как прошить чип STM32
В своей недавней статье я подробно разобрал каким образом можно прошивать программным кодом чипы семейства AVR. Сегодня же я рассмотрю способы, которыми можно прошить чипы семейства STM32. Но, я не буду приводить примеры того, как можно «залить» прошивку в микроконтроллер при помощи шнура от утюга или же варианты сопряжения CentOS установленного на Chromebook и программатора от STMicroelectronics. Пойдем по пути наименьшего сопротивления и используем современный ПК с установленной на него Windows 10 64-х битной редакции. В качестве подопытной, которую будем прошивать, возьмем фирменную плату NUCLEO-F103RB. Плата относится к серии Nucleo-64, хотя сами микроконтроллеры 32-х битные. Вероятно, что цифра 64 используется по количеству выводов чипа микроконтроллера, так как для плат серии Nucleo-64 обычно используются LQFP64 корпуса микросхем.
Тот самый случай, когда за деревьями не видно леса
В платы Nucleo производитель заботливо уместил средство подключения, программирования и отладки, ST-Link. Плата просто подключается USB-кабелем к компьютеру, и если установлены драйвера, то ее можно прошивать новой прошивкой, связаться по последовательному порту и протоколу, а также начать процедуру отладки. И все по одному кабелю. Однако, ST-Link, вместе с USB-портом, выполнены на куске платы, который можно с легкостью удалить, попросту его отломав. Именно так и поступим, дабы приблизить ситуацию к наиболее распространенной, когда у нас нет встроенного программатора. Ведь нам с вами так или иначе приходится сталкиваться с чипами STM32 без каких- либо дополнительных интегрированных инструментов вообще. Но прежде, чем переходить к практике по прошивке необходимо разобраться в теории, точнее в теории управлением чипами семейства STM32.
Итак, согласно спецификации, чип STM32F103RB обладает целыми тремя коммуникационными протоколами, посредством которых можно взаимодействовать с внутренней памятью с целью внедрения в нее прошивки:
Universal Synchronous and Asynchronous Receiver-Transmitter (USART)
Данный коммуникационный протокол позволяет подключаться к чипу даже обычным терминалом. В минимальной конфигурации для подключения к устройству нужен всего один провод. В этом случае данные будут отправляться только в одном направлении. Либо на устройство, либо с устройства. Но все же рекомендуется применять как минимум трехпроводную схему подключения: GND, TX, RX. Для подключения с целью прошивки необходимо использовать только USART1.
На чипе STM32F103RB USART1 располагается на следующих выводах:
При подключении к USART следует помнить, что чипы семейства STM32 работают на напряжении 3.3 В и не стоит подключаться к ним переходниками с напряжением в 5 вольт.
Joint Test Action Group (JTAG)
JTAG — весьма популярный интерфейс, ставший промышленным стандартом. Интерфейс применяется для подключения к сложным интегральным схемам с целью тестирования и отладки. В том числе, при помощи данного интерфейса можно осуществлять заливку прошивок в чипы STM32.
На чипе STM32F103RB JTAG-интерфейс выведен на следующие позиции:
Для функционирования коммуникации с чипом достаточно подключить только четыре первых позиции, но для большей гибкости, особенно в сложных случаях рекомендуется так же использование JNTRST.
Single Wire Interface Module (SWIM), Serial Wire Debugging (SWD) и ST-LINK
Фирма ST весьма крупная, на начало 2020 в ней работало более 40 тысяч человек. Это очень много и управлять такой махиной без бюрократического подхода просто невозможно. Поэтому в недрах ST периодически рождаются и формируются различные экосистемы. Экосистема STM32 не стала исключением. Она росла, развивалась до того момента, пока разобраться в нагромождении аббревиатур, названий, интерфейсов, их групп и прочего стало очень не просто. Но возможно. Аббревиатурой SWIM, как правило именуют сразу три сущности: кабель, технологию подключения по одному проводу и аппаратный модуль, обеспечивающий подобное подключение. SWD — означает технологию отладки при использовании последовательного подключения. При чтении литературы и форумов по STM32 можно так же натолкнуться на сокращения типа SWO вкупе с SWV.
SWO это Single wire output, т.е. технология позволяющая по одному проводу выдавать из чипа какую-то информацию. Как правило она используется для отладки, когда разработчики не желают использовать обычные UART для ее вывода, что весьма полезно, так как в любой момент можно подключиться к работающему устройству и начать получать отладочную информацию. Получать и просматривать информацию можно посредством Serial Wire Viewer (SWV). По сути, обычным терминалом с дополнительными функциями. Выдача информации осуществляется только при использовании режима SWD и доступна на микропроцессорах начиная с Cortex-M3.
И подбираясь к самому интересному, хочется отметить, что под наименованием ST-LINK кроется не только комплекс технологий, объединяющих SWIM, SWD, SWO и тому подобное, но еще и программное обеспечение, которое реализует весь набор практик и интерфейсов.
Для подключения ST-LINK на STM32F103RB задействованы следующие выводы:
Для работы через SWIM/SWD нужно-то всего два проводка, не забываем про обязательное соединение земли по всем подключенным устройствам. TRACESWO можно не подключать, особенно если данной функцией вы не пользуетесь, да и для отладки она, а не для загрузки прошивки.
Аппаратное обеспечение
Для работы с STM32 разработано и выпущено в свет великое множество различных аппаратных модулей, вот лишь самые популярные из них:
К сожалению, у меня нет на руках ни J-Link, ни тем более Black Magic Probe, поэтому в качестве аппаратных устройств рассмотрим только USART и ST-Link.
ST-Link великий и ужасный
Когда кто-то упоминает устройство ST-Link, то скорее всего имеет ввиду китайский аналог под кодовым названием ST-Link V2 Mini. Небольшой USB-свисточек в цветастом корпусе с десятипиновым разъемом IDC. Именно такой и будем рассматривать далее. Стоят подобные устройства более, чем доступно, работают отменно, подключаются и к семейству STM8, и к семейству STM32. Но прежде пробежимся по версиям ST-Link, ведь ST-Link V2 означает вторую версию устройства.
На начало 2020 актуальны следующие аппаратные версии ST-Link:
Производят ST-Link V2 Mini в массовом порядке все, кому не лень. А не лень в первую очередь нашим китайским друзьям. Вот и поставляют они универсальные отладчики-программаторы в невероятных количествах на мировой рынок. И это хорошо, ведь благодаря массовому выпуску и конкуренции есть возможность приобрести программатор за очень небольшие средства. Да, он не самой последней версии, но работать с ним можно. Нужно только разобраться как.
Типичные представители китайских ST-Link V2 Mini
На свои устройства, заботливые производители из далекой и большой страны, предусмотрительно наносят распиновку выходов. И делают они это совершенно верно, так как никакой инструкции к устройству не прилагается. Однако, если покопаться в сети, то можно обнаружить, что существует несколько вариантов реализации вывода на китайских ST-Link V2 Mini, поэтому стоит обратить внимание на выводы, при подключении нового устройства.
При первом знакомстве с ST-Link V2 Mini у меня возникло затруднение в плане определение выводов на программаторе. Да, они подписаны и пронумерованы на корпусе, но на самом разъеме кроме ключа нет ничего. Поэтому пришлось повозиться с определением, где первый «шпынек», а где второй и все последующие.
Распиновка у моего ST-Link v2 Mini
Если подключить ST-Link V2 Mini к ПК под управлением Windows 10, то система автоматически найдет драйвер и произведет его установку. Если же драйвер не установился, либо используется версия операционной системы отличная от Win10, то можно поступить двумя путями: а) скачать драйвер с сайта производителя, б) скачать программную оболочку (о них ниже) от STMicroelectronics в поставке которой уже есть драйвер. Хочется сразу предупредить, что скачка любого программного обеспечения от ST возможна только зарегистрированным пользователям. Так компания накапливается данные о своих существующих или потенциальных клиентах.
Чем грозит отсутствие RST на STM32?
У китайских V2 Mini есть еще одна особенность. Поскольку программаторы предназначены как для работы с STM8, так и с STM32, то они содержат сразу выводы и для тех, и для других. Причем выводы на левой части разъема, около ключа, предназначены для подключения STM8 (там задействованы RST и SWIM), а на правой для STM32 (там SWCLK и SWDIO). Поэтому при работе с STM32, даже если подключить на плату вывод с RST, функция аппаратного сброса работать не будет, так как она используется только для семейства чипов STM8, для STM32 применяется другой вывод микрочипа, который не выведен на колодку разъема. Ту же учесть постиг вывод SWO. Увы, за дешевизну и многофункциональность приходится платить. Хотя, некоторые умельцы отключают вывод RST и SWIM и подключают туда верные выводы с нужных ножек микрочипа в программаторе.
В принципе, который так же подтверждается практикой, вполне можно не подключать выход сброса на микроконтроллере к программатору. Чипы STM32 весьма стабильны и если в вашей программе нет переназначений выводов, которые используются для SWD, то переход в режим программирования возможен без аппаратного сброса. Однако, если вы что-то напутали и назначили выводам (в случае STM32F103RB это PA13 и PA14) какие-то функции, то просто так запустить программатор не выйдет.
В чем проблема? Дело в том, что по умолчанию, STM32 сразу же запускает на выполнение программный код пользователя. А поскольку чип работает очень быстро, то программным способом не удается поймать момент между запуском чипа и инициализацией выводов SWD. В этом случае необходимо «нажимать» на сброс собственноручно. Ножку Reset микроконтроллера необходимо соединять с землей, запускать подключение SWD, отпускать Reset. Если наловчиться, то таким образом можно добиться срабатывания 8 или даже 9 раз из 10.
В режиме ручного сброса есть нюанс. А именно нештатный загрузчик (bootloader). Его наличие может несколько облегчить работу по подключению неподключаемого чипа, так как обычно загрузчик ждет некоторое время сигнала через UART о начале загрузки прошивки. Однако, насколько мне известно, свой загрузчик устанавливает только Arduino с ядром Maple. Но данный фреймворк уже не актуален в виду окончания его развития и поддержки.
USART/UART
Для подключения по последовательному протоколу к чипу потребуется обыкновенный конвертер USB2COM (USB2TTL, USB2UART или под любым другим наименованием). Я уже рассматривал несколько вариантов, включая кабели с чипами, для подключения по UART к AVR. Смысл подключения к STM32 ровно такой же. Только в качестве преобразователя интерфейсов под STM32 я приобрел платы от Waveshare на чипе PL2303. Платы простейшие, оборудованные всего четырьмя выводами.
При подключении к ПК, автоматически устанавливаются драйвера и устройство определяется в системе как COM-порт. При подключении адаптера к микроконтроллеру стоит обратить внимание на установленную перемычку. Плата от Waveshare способна работать с двумя напряжениями: 3.3 и 5 вольт. С чипами STM32 необходимо работать только в режиме 3.3 вольта.
Типичные китайские USB2COM свистки
Подключение адаптера к плате примитивное. Соединяем GND, соединяем выводы адаптера и микроконтроллера Rx и Tx перекрестно (Rx одного идет на Tx другого и наоборот). Все, теперь можно работать.
Стоит ли подключать Vcc?
На ST-Link, как и на USB2TTL есть выводы Vcc/Vdd/V+. На них подается постоянное напряжение в 3.3 вольта, родное для большинства чипов STM32. Стоит ли соединять эти выводы между платой микропроцессора и адаптером? В каких-то случаях да, в каких-то случаях нет.
Если вы планируете прошивать (или проводить отладку) платы без подключения внешнего питания, то подключение Vcc от внешнего адаптера (ST-Link или USB2COM) позволит работать с платой в штатном режиме ее микропроцессора. Он будет думать, что все работает так как надо, а вот возможные силовые элементы, например, реле, отвечать на управляющие запросы уже не смогут. Подключать Vcc сразу от ST-Link и от USB2TTL можно только в том случае, если оба устройства подключены к одному ПК.
Если же программируемое устройство работает со своим питанием, то нужды в подключении дополнительного Vcc от ST-Link или же от USB2UART излишне, а в некоторых случаях может приводить и к выходу из строя адаптеров.
Из этого правила есть исключение. Если используется не китайский аналог аппаратного программатора ST-Link, а «родное» устройство, а на плате или у микроконтроллера используется нестандартное питание, то подключение сенсора напряжения с программатора ST-Link желательно. В этом случае будет происходить согласование уровней интерфейса, а плату микроконтроллера придется запитывать от внешнего устройства.
Соединять GND (землю) между всему устройствами — обязательно.
BOOT0/BOOT1
ST позаботились об отказоустойчивости своих чипов. Даже в случае, если нет возможности подключиться к чипу по SWD, у пользователя все еще остается возможность добраться до микроконтроллера и закачать в него обновленную прошивку или стереть всю память. Процедура осуществляется через встроенный загрузчик (bootloader), который вызывается только при особой конфигурации выводов.
Что интересно, загрузить прошивку через загрузчик можно не только через USART (как все обычно привыкли), но и через CAN-шину, USB-DFU (Direct Firmware Upgrade), I2C и SPI протоколы. Другими словами, хоть через что-то, а загрузиться можно. Но таким многообразием способов загрузки оснащены только старшие модели микроконтроллеров семейства STM32, в младших доступен только USART.
Согласно спецификации, получить доступ к загрузчику можно аж 12 различными способами. Но, далеко не все из них доступны на каждом из чипов семейства STM32, да и обычно используется только способ под номером 1. При загрузке микроконтроллера, необходимо на вывод Boot0 микроконтроллера подать высокий уровень (3.3 В), а на вывод Boot1 низкий (0 В, соединить с землей). При выполнении этих двух условий микроконтроллер запустит прошитый на заводе в чип загрузчик.
У чипа STM32F103RB Boot0 выведен на отдельный вывод, а Boot1 совмещен с выводом PB2. Поэтому, по сути, если ничего не подключать к PB2, то можно оперировать только Boot0 (хотя позже мы увидим, что это не совсем так). Подаем на него высокий сигнал при загрузке чипа (по питанию или по сбросу), и попадаем в загрузчик.
На плате Nucleo-F103RB Boot0 выведен на пин с номером 7 morpho-коннектора. Закоротить на 3.3 вольта его можно при помощи перемычки (на плате есть две запасные перемычки на выводах с нижней стороны) установленной на пины 5-7 (пин 5 это Vdd).
Программное обеспечение
Для загрузки прошивки в чипы STM32 и платы на их основе существует необъятное множество программных продуктов, даже сама ST рекомендует набор из пяти бесплатных утилит для загрузки:
STM32CubeProg
Фирменный программатор от ST, скачивается с официального сайта (не забываем про обязательную регистрацию). STM32CubeProg позиционируется как универсальное средство, содержащее в себе всё необходимое, да еще и под несколько платформ (Windows, Linux, MacOS) сразу. STM32CubeProg можно использовать как в виде графической оболочки, так и в виде консольной версии для любителей клавиатуры и черного экрана терминала. Такая неприхотливость и неразборчивость объяснятся просто — оболочка написана на Java, поэтому может портироваться куда угодно (необходимо только изменять небольшое платформозависимое ядро). ST даже не стали разбивать поставку по операционным системам, просто включили все дистрибутивы в один архив, а пользователь сам разберется, что ему нужно. Удобство неимоверное.
При первом подключении ST-Link V2 программатор может определить, что версия прошивки на ST-Link V2 устарела и предложит ее обновить. При желании можно обновить, на китайских устройствах проблем без или после обновления версии прошивки не обнаружено.
Огрызок Nucleo-64 с подключенным St-Link V2 MIni
При подключении ST-Link к плате Nucleo с отломанным ST-Link V2.1 подключаем выходы с китайского ST-Link V2 к коннекторам ST morpho CN7 (гребенка с левой стороны) следующим образом:
После физического подключения на плате Nucleo включается светодиод питания (красный) и начинает выполняться прошивка (если туда зашит блинкер, то будет мигать зеленый светодиод). На ST-Link V2 загорается синий светодиод. После нажатия на кнопку Connect в STM32CubeProgrammer микроконтроллер переводится в режим остановки, считывается некоторый объем памяти и устройство готово к программированию или любым другим операциям. ST-Link V2 в этот момент сигнализирует о режиме остановки попеременным миганием синего и красного светодиодов.
Программатор подключившийся к плате посредством интерфейса ST-Link
Cube Programmer, помимо просто прошивки позволяет выполнять следующие операции:
CubeProg помимо ST-Link может подключаться по UART, USB и OTA (обновление по воздуху). Для начала рассмотрим наиболее интересующий нас вариант подключения посредством ST-Link. При подключении ST-Link V2 к компьютеру и выборе варианта загрузки через ST-Link в окне ST-LINK Configuration отображаются некоторые настройки, которые могут повлиять на способность подключения. Дам пояснения всем им:
Итак, если есть какие-то сложности при подключении программатора к микроконтроллеру, то начинаем играться с настройками. В большинстве случаев помогает переключение в режим Connect Under Reset. А если же проблем нет, то переходим непосредственно к программированию.
Процесс обновления прошивки ST-Link в STM32CubeProg
В качестве программы-примера для прошивки я буду использовать обычный Blink («мигатель») написанной на языке MBED (активно продвигается ST для своих плат). Код программы примитивен, но вполне рабочий (и компилируется всего в 50 Кб):
#include «mbed.h»
DigitalOut myled ( LED1 ); int main () <
while ( 1 ) <
myled = 1 ;
wait ( 1 );
myled = 0 ;
wait ( 1 );
>
>
Итак, программа откомпилирована под мой чип (STM32F103RB), Flash-память контроллера предварительно стерта (дабы убедиться, что новая программа работает, а не старая). Мой компилятор подготовил для меня сразу два файла:
На главной странице CubeProg нажимаем плюсик и выбираем файл с расширением bin для загрузки. Если с файлом все в порядке, то его содержимое (в одном из форматов разрядности) открывается в окне просмотра. Теперь можно подключится к чипу, если чип уже не подключен, и нажимаем Download (тут странно, ведь в нашей культуре загрузка прошивки в чип была бы выгрузкой, Upload). Отключаем программный программатор (Disconnect) и перезагружаем плату. После перезагрузки встроенный светодиод начинает мигать.
Альтернативный способ загрузки прошивки в Cube Prog
Загрузить прошивку в микроконтроллер можно и на вкладке Erasing & Programming. В этом случае есть возможность настроить параметры загрузки. В данном примере я включил галочки проверки загруженного после прошивки, а так же запуск программы на исполнение после завершения загрузки. При этом ST-Link не выходит из режима подключения к плате, а все так же остается подключенным.
Подключаемся через заводской загрузчик и с использованием STM32 Cube Programmer
Как правило, при подключении через ST-Link проблем не возникает. А вот с UART придется совершить больше действий. Для начала следует убедиться, что в системе есть драйвера под USB2COM адаптер. Под чип PL2303 в Win10 обыкновенно все уже имеется сразу, либо скачивается с серверов обновления Microsoft. Но все равно, следует открыть диспетчер оборудования (Device Manager) и убедиться, что устройство работоспособно и ему назначен соответствующий номер порта. В моем случае устройство подключилось на COM4.
Вторым шагом необходимо провести соответствующую коммутация проводников. Подключить Tx на USB2TTL к выводу PA9, Rx к выводу PA10 (при чтении спецификации не лишним будет обратить внимание на то, что USART1 может быть альтернативно переназначен на другую пару выводов, в случае с F103RB это PB6 и PB7). Затем необходимо подключить вывод PB2 (сюда заведен вывод BOOT1 микрочипа) к любому выводу земли. Подключаем вывод BOOT0 к любому выводу 3.3 V, а также не забываем про соединение GND USB-адаптера и платы. Если плата не питается от чего-то еще, то подключаем так же питание 3.3 V с USB-адаптера на, например, Vdd пин Nucleo (кстати, на Nucleo присутствует перемычка, определяющая откуда на микропроцессор будет подавать питание, с Vdd или от USB встроенного ST-Link, при отломанном ST-Link питание в любом случае будет браться с Vdd).
К Nucleo-64 подключены свистки UART и ST-Link
Таким образом мы подключили USB2UART адаптер к USART1 (именно к USART1 подключается загрузчик) платы Nucleo, подали на нее с того же самого адаптера питание и активировали Схему 1 вызова заводского загрузчика (BOOT0 +3,3V; BOOT1 GND). После нажатия на сброс, если все было подключено верно, вместо выполнения кода мигателя (он остался от предыдущих экспериментов с ST-Link) будет исполнен заводской загрузчик. Небольшое замечание: несмотря на то, что по умолчанию BOOT1 (PB2 в случае Nucleo-F103RB) инициализируется на землю, его все равно рекомендуется жестко соединить с GND, в противном случае возможно срабатывание загрузчика «через раз» (при этом пользовательская прошивка так же не будет вызываться, так как BOOT0 не будет передавать ей управление).
STM32 Cube Prog подключенный к плате через заводской загрузчик
Для подключения через USART в CubeProg необходимо выбрать тип подключения UART и выбрать соответствующий COM-порт. В отношении остальных параметров вопрос остается открытым. Дело в том, что заводской загрузчик от ST обладает возможностью автоподстройки под параметры подключения по UART, с другой стороны, на конкретных параметрах и из-за особенностей аппаратного обеспечения может не произойти подключение к загрузчику программатора. Поэтому, если подключение не происходит необходимо в первую очередь поиграться со скоростью подключения, затем с четностью. Если же ничего не помогает, то необходимо еще раз перепроверить все подключения.
После установления связи программатора с платой посредством UART можно пользоваться CubeProgrammer точно так же, как и при подключении через ST-Link. Более того, можно не отключать от платы и сам адаптер ST-Link, на работоспособность его присутствие не влияет. А вот следует ли отключать 3.3 V от BOOT0? Высокий уровень на BOOT0 требуется для инициализации заводского загрузчика. После подключения программатора к чипу, можно отключить BOOT0 от напряжения, тогда при следующей перезагрузке платы управление будет передано пользовательской прошивке, загруженной в чип.
ST-Link Utility
ST-Link Utility, пожалуй, основная и наиболее популярная утилита для загрузки прошивок в STM32 посредством ST-LINK, которой все пользуются. Загружается программный продукт с сайта ST за регистрацию. По набору возможностей и функций ST-Link Utility практически полностью повторяет STM32CubeProg за исключением двух моментов. Utility работает под Windows, Utility может подключаться к платам только посредством SWD или JTAG. Все остальное, начиная от настройки Option Bytes и заканчивая внешними загрузчиками с командной строкой повторяет CubeProg. Да, интерфейс немного отличается, он проще, зато нет никакой Java и в помине.
Место где кроются настройки в ST-Link Utility
Настройки подключения (те самые Connect under reset) скрываются в меню Target, там же кроются пункты про прошивке.
Все готово к заливке прошивки в ST-Link Utility
Итак, пробуем прошить нашу плату через ST-Link V2 и с применением ST-Link Utility. Подключаемся к устройству, очищаем Flash-память, выбираем наш файл firmware.bin и жмем Start. Секунда ожидания и зеленый индикатор на плате замигал. Прошивка проведена удачно.
Несмотря на то, что ST-Link Utility полностью повторяет часть функций CubeProg, многие разработчики используют именно ее, так как считают, что этот продукт более надежен и прост в использовании.
STVP (STM32)
Утилита STVP (ST Visual Programmer) можно скачать с официального сайта ST. Она работает под управлением Windows и поддерживает не только STM32, но и чипы семейства STM8 (если они кому до сих пор интересны). STVP является часть ST MCU Toolset, который помимо самого программатора включает еще среду разработки STVD и ассемблерный линкер.
Вид STVP с подключение к чипу
STVP заточен на ассемблер, на настоящих хардкорщиков, тех кто способен писать программы для микроконтроллеров обращаясь напрямую к регистрам и памяти микроконтроллера. Поэтому он может работать только с файлами hex и s19. Подобного компилятора у меня под рукой не нашлось, поэтому процедуру прошивки пришлось пропустить, тем не менее программатор подключился через китайский ST-Link V2 к моей плате, считал ее память и отобразил все на экране. При наличии желания – связка работоспособная, тем более, что STVP работает не только с ST-Link, но и с RLink, STICE и прочими аппаратными системами ориентированными в основном на семейство STM8.
Flasher-STM32
Flasher-STM32 в девичестве назывался STM32 Flash loader demonstrator и использовался для загрузки демонстрационного мигателя с первыми платами. Загружает прошивки только через UART (он же COM-порт) и присутствует исключительно под Windows. Заполучить прошивальщик можно все там же, с сайта ST.
Основные экраны STM32 Flash Loader
DfuSe
Наименование DfuSe происходит от Device Firmware Upgrade STMicroelectronics Extension. Методика DFU была придумана для еще более простого обновления прошивок на разработческих платах с портом USB. Программа работает только через подключение по USB. Доступны библиотеки для написания собственных приложений по загрузке прошивок в микроконтроллеры.
Основной и единственный экран DfuSe
DfuSe принимает на борт прошивки только в формате DFU. Формат содержит не только саму прошивку как таковую, но еще и манифест или матаданные о том, как эту прошивку применять (или иначе — информацию о плате). И если подключенная плата не является поддерживаемой, то никакой прошивки не произойдет. Тем самым существенно упрощается вся процедура прошивки и уменьшается риск порчи платы при прошивке, но нужна поддержка режима DFU на самой плате, что несколько сокращает популярность программатора.
Интерфейс DfuSe Manager для работы с DFU-файлами
Создаются файлы DFU при помощи комплектной утилиты DFU File Manager. Она может не только запаковать прошивку в файл, но и произвести обратный процесс.
К слову сказать, но мне так и не удалось подключить Nucleo-F103RB к DfuSe, так как USB на плате подключается к ST-Link V2.1, а не напрямую к микроконтроллеру. Для работы же DFU требуется прямое подключение микроконтроллера к USB (с согласованием уровней, разумеется). В таком случае, при наличии соответствующих драйверов (и с задействованием схемы с запуском загрузчика) в операционной системе можно загружать прошивку по обычному USB.
Можно ли использовать плату ST-Link V2.1 от плат Nucleo?
В процессе изысканий способов заливки прошивок разными способами в плату на основе чипа STM32 от платы донора Nucleo-64 была успешно отломана часть с программатором ST-Link версии 2.1 с портом USB. И сразу же возникает вопрос, а нельзя ли эту плату в дальнейшем использовать как удобный программатор? Ведь иметь одно устройство, сочетающее в себе сразу три (ST-Link, Virtual COM и USB Mass Storage) ой как удобно.
Nucleo-64 с подключенным SWD ST-Link V2.1
Давайте попробуем, в качестве бонуса, подключить программатор ST-Link от платы Nucleo обратно к плате Nucleo посредством проводков, словно мы используем произвольный чип STM32 с программатором ST-Link V2.1.
На «огрызке» имеется несколько разъемов и перемычек для подключения чего-либо, вот они:
Итак, для целей использования ST-Link от Nucleo как отдельного программатора ST-Link V2.1 следует:
Соответственно, если все подключено верно, то появляется сразу три возможности:
Вместо заключения
Разработчики STM32 проделали огромную работу, как в плане разработки своих чипов, так и программного обеспечения. Несомненно, что чипы STM32 современны и весьма удобны в работе. Вокруг них собрана невероятная инфраструктура, написаны сотни и тысячи спецификаций, разработаны десятки программных и аппаратных комплексов для работы с микроконтроллерами STM32. Но все это многообразие может вызвать реакцию отторжения у новичка, который может быть просто ошеломлен объемом информации, которую следует переварить, дабы хоть как-то начать ориентироваться в мире STM32. И надеюсь, что мое кратенькое погружение в запутанный мир современной микроэлектроники позволит хоть немного облегчить труд познания.
Казалось бы, что тема прошивки чипов STM32 исчерпана, но приведенные методики хоть и являются массовыми, но сами по себе всего лишь верхушка айсберга, вершина огромного пласта информации. И соответственно присутствует огромное, непаханое поле для творчества.
Опубликовано 31.01.2020 автором kvv в следующих категориях:
Soft железо статья