Медленная работа SD карточек — кто виноват и что делать?
Давно думал написать статью на Хабр, но все как-то не решался. Хотя и кажется, что есть мысли, которые были бы небезинтересны сообществу, но останавливает предположение, что это «кажется» проистекает от завышенной самооценки. Тем не менее попробую. Поскольку я профессионально занимаюсь электроникой, в частности, программированием микроконтроллеров, довольно-таки длительное время (как я подозреваю, дольше, чем живет большАя а может даже и бОльшая часть читателей Хабра), то за это время накопилось изрядное количество интересных случаев. Представляю на суд сообщества рассказ об одном из них.
Итак, в одной разработке мне потребовалось сохранять значительные объемы информации с целью последующей передачи через сеть в обрабатывающий центр. Поскольку полученное устройство предполагало серийное производство, был выбран вариант с применением относительно недорогих компонентов, и, в частности, микроконтроллера как центрального элемента системы. Поскольку в тот момент (середина 2012 года) предложение микроконтроллеров с Ethernet PHY на борту не отличалось разнообразием (да и сейчас положение не намного лучше), был выбран МК фирмы TI семейства Stellaris, конкретно LM3S8962, тем более что отладочная плата для него у меня уже имелась. МК на тот момент относительно новый, активно продвигаемый фирмой TI (это в конце 2013 года она ВНЕЗАПНО перевела всю серию в разряд NRND), и обладающий вполне достаточными для решения данной задачи параметрами. Для хранения информациии был выбран вариант с SD карточкой, в первую очередь из за их доступности и дешевизны, а также потому, что на отладочной плате наличествовало контактное устройство для них, а на поставляемом с платой отладки CD имелись многочисленные примеры, в том числе и для SD карт. Интерфейс к карточке был реализован простейший — SPI, предложенные примеры сходу заработали, принятое решение позволяло обрабатывать полученные данные до написания интерфейса при помощи элементарного переноса карточки из устройства в кард-ридер ПК, так что первоначальная отладка алгоритмов взаимодействия с объектом управления проблем не вызвало, по крайней мере в этой части проекта. Как все понимают, проблемы возникли несколько позже…
Когда алторитмы были отлажены и устройство в целом заработало, начались тестовые прогоны. И тут выясняется, что SD карточка не способна записывать информацию в том темпе, в котором объект управления ее поставляет, причем разница скоростей составляет разы, а с учетом размеров единицы хранения (2.7 мегабайта) создать промежуточный буфер по приемлемой цене не удасться. Переходя к конкретным цифрам, требовалось файл размером 2.7 мегабайта записывать на SD карточку не более, чем за 1.6 секунды, а реально данные записывались 30 секунд, причем карточки были приобретены класса 10, то есть утверждали скорость записи 10 мбайт/сек. Борьба за скорость шла в несколько этапов и противниками оказывались то микроконтроллер, то стандартная библиотека (фирменная от TI между прочим), то, собственно, SD карточки.
Первый этап — исследую тайминги записи и сразу же выясняю, что запись различных участков информации идет разное время, причем время записи одинаковых блоков информации существенно (в разы) отличается. Путем экспериментов с различными размерами блоков записи устанавливаю простую закономерность — чем больше блоки информации для записи, тем меньше время записи, отнесенное к ее размеру. Псокольку модули библиотеки поддерживают FAT и записывают информацию посекторно, а переделывать их смысла не вижу, переформатирую карточку на размер сектора 32 кбайт и получаю время записи 14 секунд — 1 очко SD.
Второй этап — проверяю работы SPI интерфейса и обнаруживаю, что он работает на частоте 12.5 мгц, хотя описание позволяет установить частоту передачи до 25 мгц (половина от тактовой частоты процессора 50 мгц). Выясняется, что подпрограмма установки частоты SPI модуля из библиотеки ограничивает максимально возможную частоту значением 12.5 мгц, причем в документации на интерфейсный модуль микроконтроллера подобное ограничение отсутствует.
Изменяем код и получаем уменьшение времени записи в 2 раза до 7 секунд — 1 очко TI.
Третий этап — исследую модули обмена с SD карточкой и обнаруживаю весьма непроизводительное расходование времени в низкоуровневых процедурах, а именно: модуль SPI в микроконтроллере имеет в своем составе FIFO буфер на 8 байт, что позволяет ускорить работу с ним. Модуль вывода до передачи очередного байте проверяет флаг «буфер передачи не полон» для ожидания возможности переслать следующий байт, и вроде бы все нормально. Но вслед за передачей байта вызывается модуль приема байта (дело в том, что при передаче в интерфейсе SPI одновременно производится и прием), который должен выбрать из приемного буфера эти ненужные принятые байты. И вот эта процедура опрашивает флаг «буфер приема не пуст», то есть ожидает окончания сериализации последнего байта буфера. То есть ждет, пока не будет полностью передан текущий байт и лишь потом готовит следующий для передачи.
Исправляю обнаруженую ошибку (а как это еще назвать ?) и получаю время передачи файла 3 секунды — 1 очко TI.
И вот что получилось в результате оптимизации, не учитывающей особенности задачи.
Четвертый этап — исследую модули более высокого уровня и выясняю что, поскольку передача данных в интерфейс предусмотрена только из памяти, мне приходится проводить двойную работу — сначала читать поток данных из объекта управления и пересылать в оперативную память микроконтроллера (а это, между прочим, 32 килобайта буфера), а потом из памяти в регистры интерфейса SPI. Пишу свой собственный модуль для передачи данных непосредственно из регистра в регистр, и получаю время записи 1.6 секунды. При этом обращение к своему модулю маскирую внутри стандартного вызова, чтобы файловую система понимала, что переданы 32 килобайта — 1 очко TI.
Пятый этап. Поставленная цель уже достигнута, но процесс оптимизации продолжается по инерции. Исследую еще раз сигналы на интерфейсе и обнаруживаю, что на самом деле передается не непрерывная последовательность тактовых импульсов, а 8 бит данных плюс пауза в 2 такта. Ну хорошо, девятый бит нужен для передачи сигнала синхронизации (не путать с тактовым сигналом), причем мне он совершенно не нужен, но десятый то зачем? Эксперименты с различными режимами SPI привели к получению передаваемого сигнала в реальные 8 бит без пропусков и, соответственно, к времени записи 1.3 секунды — 1 очко Stellaris.
Шестой этап. Вроде бы все хорошо, но совершенно неожидано возникает еще 1 проблема — при потоковой записи множества файлов первые 3 укладываются в требуемый интервал и даже с небольшим запасом, а вот четвертый файл показвает время записи намного большее — до 1.8-2.0 секунд и, соответственно, нарушает последовательность. Пробую очевидное решение, предположив что дело в переходах через страницы записи FLASH памяти, и исключаю эти места из обработки. Теперь начинают долго записываться те файлы, которые раньше записывались хорошо. Многочисленные эксперименты приводят к выводу, что поведение FLASH как то связано с ее особенностями внутренней организации. Я полагаю, что внутренний генератор высокого напряжения для записи ( его существование несомненно) не способен удержать требуемый уровень напряжения при длительных операциях и требует определенного времени на восстановление заряда. При этом общая средняя скорость выдерживается, но мне то нужна не средняя скорость, а мгновенная скорость записи каждого файла. Здесь могло бы выручить введение буфера данных для выравнивания нагрузки, но было найдено другое решение — приобретены SD карточки различных фирм и среди них нашлись те, которые давали постоянное время записи в 1.4 секунды без существенных разбросов. Конкретные названия фирм-производителей карточек называть не буду, чтобы не сочли статью рекламной — 1 очко SD.
Итог — задача решена, устройcтва отгружены потребителю и функционируют без сбоев, общий счет по количеству обнаруженных и исправленных проблем: SD карточки — 2, библиотека от TI — 3, особенности микроконтроллера -1. А из всего вышесказанного можно сделать следующий выводы:
1. С особым вниманием следует относится к имеющимся библиотекам стандартных программ с примерами применения. Они, как правило, функционируют и даже иногда без ошибок, но никоим образом НЕ оптимизированы по производительности. Так что смотрим исходные коды (благо они есть) и творчески модифицируем их. Более того, у меня сложилось мнение, что подобные свободно распространяемые бибилиотеки сознательно сделаны неоптимальными, чтобы стимулировать приобретение их платных аналогов.
2. С осторожностью относимся к спецификациям относительно производительности различных устройств, то есть внимательно читаем спецификации, в каких режимах и какие цифры достигнуты, а не просто смотрим 1-2 цифры параметров и решаем, что нас они устроят.
3. Внимательно читаем документацию на модули микроконтроллеров, пытаемся понять их внутреннее устройство, не забываем про осциллограф для изучения реальных процессов на реальной плате.
И в завершение статьи одно маленькое замечание — решил посмотреть, как обстоят дела в реализации аналогичных процедур в новом пакете поддержки микроконтроллеров типа TIVA-C (TivaWare_C_Series-2.0.1.11577). Ну что можно сказать — традиции не нарушены. Абсолютно все те же грабли лежат все в тех же местах, причем добавились еще одни — теперь функциии вызываются не непосредственно из FLASH памяти, а из так называемой ROM библиотеки с использованием двойного индексирования, что быстродействия не прибавляет. Как говорил Михаил Жванецкий «Или мы будет жить хорошо, или мои произведения всегда будут актуальны». Пока что верно второе.
Низкая скорость чтения записи карты памяти на смартфоне что делать
Медленная карта памяти — что это? Как исправить?
Медленная карта памяти в телефоне, в видеорегистраторе?
Что значит медленная карта памяти?
Постоянно пишет медленная карта памяти, пробовали вставить другую карту, пишет то же самое, почему? Как исправить?
Сегодня сложно найти такое устройство где бы не использовалась карта памяти. Её необходимо самому проверять, обращая внимание на характеристики, а именно не только объем 32 гб или 64гб, а и на формат и на скорость обработки данных. Есть карты памяти, в которых специально не предусмотрена запись видеоряда в хорошем качестве за счёт экономии места, поэтому загрузка может выдавать такую ошибку. Это значит что картинка просто не успевает грузиться. Посм может быть дело в низкой скорости карты, которая обознач классом. . Цифра класса обычно пишется внутри буквы / в букве С и бывает четной 2, 4,6,8,10 и так далее. Для профессионалов видеосъемки стоит обратить внимание на другую маркировку цифру не в С, а цифру в букве U. Цифры в букве нечетные, напр единица в U сообщает что карта рассчитана на скорость 10 Мб/с, тройка в u скажет что скорость записи тут30 Мб/с. Также не лишне обратить внимание на формат карты, он должен иметь буквы SDHC или SDXC емкость до 2 Тб, хорошо ещё если к этим буквам прибавляется римскаяI или II это обозначение высочайшее скорости обработки
стандарт UHS. Хорошая карта выглядит так

Осталось проверить ваше устройство на совместимость с ней, но это уже другая история.
Медленная работа SD карточек — кто виноват и что делать?
Давно думал написать статью на Хабр, но все как-то не решался. Хотя и кажется, что есть мысли, которые были бы небезинтересны сообществу, но останавливает предположение, что это «кажется» проистекает от завышенной самооценки. Тем не менее попробую. Поскольку я профессионально занимаюсь электроникой, в частности, программированием микроконтроллеров, довольно-таки длительное время (как я подозреваю, дольше, чем живет большАя а может даже и бОльшая часть читателей Хабра), то за это время накопилось изрядное количество интересных случаев. Представляю на суд сообщества рассказ об одном из них.
Итак, в одной разработке мне потребовалось сохранять значительные объемы информации с целью последующей передачи через сеть в обрабатывающий центр. Поскольку полученное устройство предполагало серийное производство, был выбран вариант с применением относительно недорогих компонентов, и, в частности, микроконтроллера как центрального элемента системы. Поскольку в тот момент (середина 2012 года) предложение микроконтроллеров с Ethernet PHY на борту не отличалось разнообразием (да и сейчас положение не намного лучше), был выбран МК фирмы TI семейства Stellaris, конкретно LM3S8962, тем более что отладочная плата для него у меня уже имелась. МК на тот момент относительно новый, активно продвигаемый фирмой TI (это в конце 2013 года она ВНЕЗАПНО перевела всю серию в разряд NRND), и обладающий вполне достаточными для решения данной задачи параметрами. Для хранения информациии был выбран вариант с SD карточкой, в первую очередь из за их доступности и дешевизны, а также потому, что на отладочной плате наличествовало контактное устройство для них, а на поставляемом с платой отладки CD имелись многочисленные примеры, в том числе и для SD карт. Интерфейс к карточке был реализован простейший — SPI, предложенные примеры сходу заработали, принятое решение позволяло обрабатывать полученные данные до написания интерфейса при помощи элементарного переноса карточки из устройства в кард-ридер ПК, так что первоначальная отладка алгоритмов взаимодействия с объектом управления проблем не вызвало, по крайней мере в этой части проекта. Как все понимают, проблемы возникли несколько позже…
Когда алторитмы были отлажены и устройство в целом заработало, начались тестовые прогоны. И тут выясняется, что SD карточка не способна записывать информацию в том темпе, в котором объект управления ее поставляет, причем разница скоростей составляет разы, а с учетом размеров единицы хранения (2.7 мегабайта) создать промежуточный буфер по приемлемой цене не удасться. Переходя к конкретным цифрам, требовалось файл размером 2.7 мегабайта записывать на SD карточку не более, чем за 1.6 секунды, а реально данные записывались 30 секунд, причем карточки были приобретены класса 10, то есть утверждали скорость записи 10 мбайт/сек. Борьба за скорость шла в несколько этапов и противниками оказывались то микроконтроллер, то стандартная библиотека (фирменная от TI между прочим), то, собственно, SD карточки.
Первый этап — исследую тайминги записи и сразу же выясняю, что запись различных участков информации идет разное время, причем время записи одинаковых блоков информации существенно (в разы) отличается. Путем экспериментов с различными размерами блоков записи устанавливаю простую закономерность — чем больше блоки информации для записи, тем меньше время записи, отнесенное к ее размеру. Псокольку модули библиотеки поддерживают FAT и записывают информацию посекторно, а переделывать их смысла не вижу, переформатирую карточку на размер сектора 32 кбайт и получаю время записи 14 секунд — 1 очко SD.
Второй этап — проверяю работы SPI интерфейса и обнаруживаю, что он работает на частоте 12.5 мгц, хотя описание позволяет установить частоту передачи до 25 мгц (половина от тактовой частоты процессора 50 мгц). Выясняется, что подпрограмма установки частоты SPI модуля из библиотеки ограничивает максимально возможную частоту значением 12.5 мгц, причем в документации на интерфейсный модуль микроконтроллера подобное ограничение отсутствует.
Изменяем код и получаем уменьшение времени записи в 2 раза до 7 секунд — 1 очко TI.
Третий этап — исследую модули обмена с SD карточкой и обнаруживаю весьма непроизводительное расходование времени в низкоуровневых процедурах, а именно: модуль SPI в микроконтроллере имеет в своем составе FIFO буфер на 8 байт, что позволяет ускорить работу с ним. Модуль вывода до передачи очередного байте проверяет флаг «буфер передачи не полон» для ожидания возможности переслать следующий байт, и вроде бы все нормально. Но вслед за передачей байта вызывается модуль приема байта (дело в том, что при передаче в интерфейсе SPI одновременно производится и прием), который должен выбрать из приемного буфера эти ненужные принятые байты. И вот эта процедура опрашивает флаг «буфер приема не пуст», то есть ожидает окончания сериализации последнего байта буфера. То есть ждет, пока не будет полностью передан текущий байт и лишь потом готовит следующий для передачи.
Исправляю обнаруженую ошибку (а как это еще назвать ?) и получаю время передачи файла 3 секунды — 1 очко TI.
И вот что получилось в результате оптимизации, не учитывающей особенности задачи.
Четвертый этап — исследую модули более высокого уровня и выясняю что, поскольку передача данных в интерфейс предусмотрена только из памяти, мне приходится проводить двойную работу — сначала читать поток данных из объекта управления и пересылать в оперативную память микроконтроллера (а это, между прочим, 32 килобайта буфера), а потом из памяти в регистры интерфейса SPI. Пишу свой собственный модуль для передачи данных непосредственно из регистра в регистр, и получаю время записи 1.6 секунды. При этом обращение к своему модулю маскирую внутри стандартного вызова, чтобы файловую система понимала, что переданы 32 килобайта — 1 очко TI.
Пятый этап. Поставленная цель уже достигнута, но процесс оптимизации продолжается по инерции. Исследую еще раз сигналы на интерфейсе и обнаруживаю, что на самом деле передается не непрерывная последовательность тактовых импульсов, а 8 бит данных плюс пауза в 2 такта. Ну хорошо, девятый бит нужен для передачи сигнала синхронизации (не путать с тактовым сигналом), причем мне он совершенно не нужен, но десятый то зачем? Эксперименты с различными режимами SPI привели к получению передаваемого сигнала в реальные 8 бит без пропусков и, соответственно, к времени записи 1.3 секунды — 1 очко Stellaris.
Шестой этап. Вроде бы все хорошо, но совершенно неожидано возникает еще 1 проблема — при потоковой записи множества файлов первые 3 укладываются в требуемый интервал и даже с небольшим запасом, а вот четвертый файл показвает время записи намного большее — до 1.8-2.0 секунд и, соответственно, нарушает последовательность. Пробую очевидное решение, предположив что дело в переходах через страницы записи FLASH памяти, и исключаю эти места из обработки. Теперь начинают долго записываться те файлы, которые раньше записывались хорошо. Многочисленные эксперименты приводят к выводу, что поведение FLASH как то связано с ее особенностями внутренней организации. Я полагаю, что внутренний генератор высокого напряжения для записи ( его существование несомненно) не способен удержать требуемый уровень напряжения при длительных операциях и требует определенного времени на восстановление заряда. При этом общая средняя скорость выдерживается, но мне то нужна не средняя скорость, а мгновенная скорость записи каждого файла. Здесь могло бы выручить введение буфера данных для выравнивания нагрузки, но было найдено другое решение — приобретены SD карточки различных фирм и среди них нашлись те, которые давали постоянное время записи в 1.4 секунды без существенных разбросов. Конкретные названия фирм-производителей карточек называть не буду, чтобы не сочли статью рекламной — 1 очко SD.
Итог — задача решена, устройcтва отгружены потребителю и функционируют без сбоев, общий счет по количеству обнаруженных и исправленных проблем: SD карточки — 2, библиотека от TI — 3, особенности микроконтроллера -1. А из всего вышесказанного можно сделать следующий выводы:
1. С особым вниманием следует относится к имеющимся библиотекам стандартных программ с примерами применения. Они, как правило, функционируют и даже иногда без ошибок, но никоим образом НЕ оптимизированы по производительности. Так что смотрим исходные коды (благо они есть) и творчески модифицируем их. Более того, у меня сложилось мнение, что подобные свободно распространяемые бибилиотеки сознательно сделаны неоптимальными, чтобы стимулировать приобретение их платных аналогов.
2. С осторожностью относимся к спецификациям относительно производительности различных устройств, то есть внимательно читаем спецификации, в каких режимах и какие цифры достигнуты, а не просто смотрим 1-2 цифры параметров и решаем, что нас они устроят.
3. Внимательно читаем документацию на модули микроконтроллеров, пытаемся понять их внутреннее устройство, не забываем про осциллограф для изучения реальных процессов на реальной плате.
И в завершение статьи одно маленькое замечание — решил посмотреть, как обстоят дела в реализации аналогичных процедур в новом пакете поддержки микроконтроллеров типа TIVA-C (TivaWare_C_Series-2.0.1.11577). Ну что можно сказать — традиции не нарушены. Абсолютно все те же грабли лежат все в тех же местах, причем добавились еще одни — теперь функциии вызываются не непосредственно из FLASH памяти, а из так называемой ROM библиотеки с использованием двойного индексирования, что быстродействия не прибавляет. Как говорил Михаил Жванецкий «Или мы будет жить хорошо, или мои произведения всегда будут актуальны». Пока что верно второе.
Низкая скорость работы sd карты huawei

Проблема: Перемещение приложений на SD-карту не работает
Привет, когда я перемещаю приложение, мне говорят, что «невозможно переместить приложение». Что я должен делать? На другом телефоне это приложение перемещается, а на другом телефоне без рут-прав!
У меня телефон Lenovo S60-A Android 5.0.2.
Перемещение приложений на SD-карту не работает – решение проблемы
- Убедитесь, что на карте microSD достаточно свободной памяти
- Установите хранилище по умолчанию на SD-карте
- Переустановите приложение
После выполнения этих действий приложение должно автоматически установиться на внешнюю карту памяти.
Каждый пользователь смартфона или планшета хочет предоставить дополнительное место для хранения.
Это происходит, когда встроенной памяти гаджета становится недостаточно. Если владелец телефона постоянно снимает новые фото и видео, не удаляя старые медиафайлы, свободное место в памяти расходуется еще быстрее.
Естественным решением для этого будет установка дополнительной флешки. Как правило, это карта памяти типа microSD или ее последующие модификации — microSDHC и microSDXC, которые имеют большой объем.

Какая бывает скорость карт памяти?
Одной из основных характеристик карты памяти является ее скорость, которая определяет, насколько быстро данные будут записываться и считываться. Он измеряется в мегабайтах (МБ), передаваемых за секунду времени — МБ / с. Скорость чтения данных всегда выше скорости записи, поэтому для определения параметров накопителя важен второй показатель, определяемый классом карты памяти. Он указан на самой карте, обычно это число, вписанное в символ C.
До недавнего времени было 4 С-класса:
- уровень 2: скорость записи 2 МБ / с;
- 4: 4 МБ / с;
- 6: 6 МБ / с;
- 10: 10 МБ / с.
Технологии не стоят на месте, появляются новые форматы видео высокой четкости, значительно улучшается качество и, как следствие, вес фотографий. Для решения проблемы записи и хранения таких объемов информации были разработаны сверхвысокоскоростные высокоскоростные карты памяти, сокращенно UHS карты:
- UHS Speed Class 1: минимальная скорость 10 МБ / с.
- UHS Speed Class 3: Минимальная скорость 30 МБ / с.
На этих опорах класс обозначается числом, вписанным в символ U.

Какой выбрать класс карты памяти?
Очевидно, что чем выше этот показатель единицы, тем выше стоимость флешки. Как выбрать скорость работы карты памяти? Для этого нужно прочитать нашу специальную статью и знать, как и как устройство будет активно использоваться:
- Для прослушивания музыки, просмотра фильмов стандартного качества и записи видео с низким разрешением вполне подходят 2-4 классы.
- Для использования в гаджетах с поддержкой видеоформатов HD и Full HD лучше всего выбирать уровень 6 или 10.
- В смартфонах высокого класса с поддержкой видео 4K стоит обратить внимание на карты памяти UHS better.

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

Советы по выбору карты памяти для смартфона
- Не всегда можно доверять информации на упаковке. Иногда обманывают недобросовестные производители. Для проверки в Google Play доступны специальные программы (например, SD Card Test, Disk Speed, A1 SD Banch), позволяющие узнать реальную скорость записи носителя.
- Каким бы классным ни был флеш-накопитель, все они имеют ограниченное количество циклов записи. Необходимо выбирать более известных производителей и не отдавать предпочтение недорогим носителям.
- Мы рекомендуем вам регулярно делать резервные копии важной информации.
В условиях ограниченных финансовых ресурсов при выборе между классом карты памяти и ее размером принять решение сложно. Здесь каждый пользователь должен сам решить, что для него важнее всего.
Для начала вам нужно открыть настройки вашего телефона. Откройте раздел «Память».
Теперь вам нужно найти подраздел «Память по умолчанию» или «Основная память»: здесь вы должны поставить галочку напротив пункта «Карта памяти Micro SD». Теперь в приложениях Android музыка и фото будут загружаться на карту памяти.
Низкая скорость чтения записи карты памяти на смартфоне что делать
Медленная работа SD карточек — кто виноват и что делать?
Давно думал написать статью на Хабр, но все как-то не решался. Хотя и кажется, что есть мысли, которые были бы небезинтересны сообществу, но останавливает предположение, что это «кажется» проистекает от завышенной самооценки. Тем не менее попробую. Поскольку я профессионально занимаюсь электроникой, в частности, программированием микроконтроллеров, довольно-таки длительное время (как я подозреваю, дольше, чем живет большАя а может даже и бОльшая часть читателей Хабра), то за это время накопилось изрядное количество интересных случаев. Представляю на суд сообщества рассказ об одном из них.
Итак, в одной разработке мне потребовалось сохранять значительные объемы информации с целью последующей передачи через сеть в обрабатывающий центр. Поскольку полученное устройство предполагало серийное производство, был выбран вариант с применением относительно недорогих компонентов, и, в частности, микроконтроллера как центрального элемента системы. Поскольку в тот момент (середина 2012 года) предложение микроконтроллеров с Ethernet PHY на борту не отличалось разнообразием (да и сейчас положение не намного лучше), был выбран МК фирмы TI семейства Stellaris, конкретно LM3S8962, тем более что отладочная плата для него у меня уже имелась. МК на тот момент относительно новый, активно продвигаемый фирмой TI (это в конце 2013 года она ВНЕЗАПНО перевела всю серию в разряд NRND), и обладающий вполне достаточными для решения данной задачи параметрами. Для хранения информациии был выбран вариант с SD карточкой, в первую очередь из за их доступности и дешевизны, а также потому, что на отладочной плате наличествовало контактное устройство для них, а на поставляемом с платой отладки CD имелись многочисленные примеры, в том числе и для SD карт. Интерфейс к карточке был реализован простейший — SPI, предложенные примеры сходу заработали, принятое решение позволяло обрабатывать полученные данные до написания интерфейса при помощи элементарного переноса карточки из устройства в кард-ридер ПК, так что первоначальная отладка алгоритмов взаимодействия с объектом управления проблем не вызвало, по крайней мере в этой части проекта. Как все понимают, проблемы возникли несколько позже…
Когда алторитмы были отлажены и устройство в целом заработало, начались тестовые прогоны. И тут выясняется, что SD карточка не способна записывать информацию в том темпе, в котором объект управления ее поставляет, причем разница скоростей составляет разы, а с учетом размеров единицы хранения (2.7 мегабайта) создать промежуточный буфер по приемлемой цене не удасться. Переходя к конкретным цифрам, требовалось файл размером 2.7 мегабайта записывать на SD карточку не более, чем за 1.6 секунды, а реально данные записывались 30 секунд, причем карточки были приобретены класса 10, то есть утверждали скорость записи 10 мбайт/сек. Борьба за скорость шла в несколько этапов и противниками оказывались то микроконтроллер, то стандартная библиотека (фирменная от TI между прочим), то, собственно, SD карточки.
Первый этап — исследую тайминги записи и сразу же выясняю, что запись различных участков информации идет разное время, причем время записи одинаковых блоков информации существенно (в разы) отличается. Путем экспериментов с различными размерами блоков записи устанавливаю простую закономерность — чем больше блоки информации для записи, тем меньше время записи, отнесенное к ее размеру. Псокольку модули библиотеки поддерживают FAT и записывают информацию посекторно, а переделывать их смысла не вижу, переформатирую карточку на размер сектора 32 кбайт и получаю время записи 14 секунд — 1 очко SD.
Второй этап — проверяю работы SPI интерфейса и обнаруживаю, что он работает на частоте 12.5 мгц, хотя описание позволяет установить частоту передачи до 25 мгц (половина от тактовой частоты процессора 50 мгц). Выясняется, что подпрограмма установки частоты SPI модуля из библиотеки ограничивает максимально возможную частоту значением 12.5 мгц, причем в документации на интерфейсный модуль микроконтроллера подобное ограничение отсутствует.
Изменяем код и получаем уменьшение времени записи в 2 раза до 7 секунд — 1 очко TI.
Третий этап — исследую модули обмена с SD карточкой и обнаруживаю весьма непроизводительное расходование времени в низкоуровневых процедурах, а именно: модуль SPI в микроконтроллере имеет в своем составе FIFO буфер на 8 байт, что позволяет ускорить работу с ним. Модуль вывода до передачи очередного байте проверяет флаг «буфер передачи не полон» для ожидания возможности переслать следующий байт, и вроде бы все нормально. Но вслед за передачей байта вызывается модуль приема байта (дело в том, что при передаче в интерфейсе SPI одновременно производится и прием), который должен выбрать из приемного буфера эти ненужные принятые байты. И вот эта процедура опрашивает флаг «буфер приема не пуст», то есть ожидает окончания сериализации последнего байта буфера. То есть ждет, пока не будет полностью передан текущий байт и лишь потом готовит следующий для передачи.
Четвертый этап — исследую модули более высокого уровня и выясняю что, поскольку передача данных в интерфейс предусмотрена только из памяти, мне приходится проводить двойную работу — сначала читать поток данных из объекта управления и пересылать в оперативную память микроконтроллера (а это, между прочим, 32 килобайта буфера), а потом из памяти в регистры интерфейса SPI. Пишу свой собственный модуль для передачи данных непосредственно из регистра в регистр, и получаю время записи 1.6 секунды. При этом обращение к своему модулю маскирую внутри стандартного вызова, чтобы файловую система понимала, что переданы 32 килобайта — 1 очко TI.
Пятый этап. Поставленная цель уже достигнута, но процесс оптимизации продолжается по инерции. Исследую еще раз сигналы на интерфейсе и обнаруживаю, что на самом деле передается не непрерывная последовательность тактовых импульсов, а 8 бит данных плюс пауза в 2 такта. Ну хорошо, девятый бит нужен для передачи сигнала синхронизации (не путать с тактовым сигналом), причем мне он совершенно не нужен, но десятый то зачем? Эксперименты с различными режимами SPI привели к получению передаваемого сигнала в реальные 8 бит без пропусков и, соответственно, к времени записи 1.3 секунды — 1 очко Stellaris.
Шестой этап. Вроде бы все хорошо, но совершенно неожидано возникает еще 1 проблема — при потоковой записи множества файлов первые 3 укладываются в требуемый интервал и даже с небольшим запасом, а вот четвертый файл показвает время записи намного большее — до 1.8-2.0 секунд и, соответственно, нарушает последовательность. Пробую очевидное решение, предположив что дело в переходах через страницы записи FLASH памяти, и исключаю эти места из обработки. Теперь начинают долго записываться те файлы, которые раньше записывались хорошо. Многочисленные эксперименты приводят к выводу, что поведение FLASH как то связано с ее особенностями внутренней организации. Я полагаю, что внутренний генератор высокого напряжения для записи ( его существование несомненно) не способен удержать требуемый уровень напряжения при длительных операциях и требует определенного времени на восстановление заряда. При этом общая средняя скорость выдерживается, но мне то нужна не средняя скорость, а мгновенная скорость записи каждого файла. Здесь могло бы выручить введение буфера данных для выравнивания нагрузки, но было найдено другое решение — приобретены SD карточки различных фирм и среди них нашлись те, которые давали постоянное время записи в 1.4 секунды без существенных разбросов. Конкретные названия фирм-производителей карточек называть не буду, чтобы не сочли статью рекламной — 1 очко SD.
И в завершение статьи одно маленькое замечание — решил посмотреть, как обстоят дела в реализации аналогичных процедур в новом пакете поддержки микроконтроллеров типа TIVA-C (TivaWare_C_Series-2.0.1.11577). Ну что можно сказать — традиции не нарушены. Абсолютно все те же грабли лежат все в тех же местах, причем добавились еще одни — теперь функциии вызываются не непосредственно из FLASH памяти, а из так называемой ROM библиотеки с использованием двойного индексирования, что быстродействия не прибавляет. Как говорил Михаил Жванецкий «Или мы будет жить хорошо, или мои произведения всегда будут актуальны». Пока что верно второе.
Увеличиваем скорость чтения sd-карты
Скорость чтения карты памяти варьируется в зависимости от ее класса. Но многих постигает разочарование, сравнивая скорость работы карты на компьютере и на устройстве с Андроидом. Один из весьма подкованных участников XDA форума brainmaster утверждает.
Скорость чтения карты памяти варьируется в зависимости от ее класса. Но многих постигает разочарование, сравнивая скорость работы карты на компьютере и на устройстве с Андроидом. Один из весьма подкованных участников XDA форума brainmaster утверждает, что будь у тебя SD карта 10-ого класса — всё равно вся соль в кеше.

Кеш для чтения карты памяти в Андроид по умолчанию установлен значением 128kb, а некоторые прошивки имеются даже 4kb!
Чтобы проверить это значение на своем устройстве вам нужно открыть файл to /sys/devices/virtual/bdi/179:0/read_ahead_kb. Это число можно изменять вручную, но таким образом оно будет действовать только до перезагрузки. Чтобы сделать значение постоянным, придется постоянно загружать скрипт при загрузке телефона через init.d. Товарищ с XDA подготовил CWM.zip архив для облегчения этой операции.
От себя замечу, что архив подходит для прошивки через ClockworkMod Recovery и доступен для загрузки с форума XDA. Для тех, у кого не установлено модифицированное рекавери, в топике на форуме имеются альтернативные рецепты для изменения размера кеша вручную через консоль.
Для моего HTC Desire HD с картой памяти на 8GB Transcend class 6 оптимальным оказалось значение кеша 3072.
Собственно, на скриншоте видны результаты тестов карты памяти с этим значением кеша в SD Tools и SD Card Speed Test соотвественно. Можно заметить, что обе программы выдают немного странные и фантастические результаты. Но у меня скорость чтения с карты памяти точно увеличилась. Это видно невооруженным взглядом, к примеру, в галерее.
Но по множеству сообщений на форуме XDA было решено, что оптимальное значение для большинства карт все же 2048.
Тогда можно поддержать её лайком в соцсетях. На новости сайта вы ведь уже подписались?
Или закинуть денег на зарплату авторам.
Или хотя бы оставить довольный комментарий, чтобы мы знали, какие темы наиболее интересны читателям. Кроме того, нас это вдохновляет. Форма комментариев ниже.
Что с ней так? Своё негодование вы можете высказать на zelebb@gmail.com или в комментариях. Мы постараемся учесть ваше пожелание в будущем, чтобы улучшить качество материалов сайта. А сейчас проведём воспитательную работу с автором.
Если вам интересны новости мира ИТ также сильно, как нам, подписывайтесь на наш Telegram-канал. Там все материалы появляются максимально оперативно. Или, может быть, вам удобнее «Вконтакте» или Twitter? Мы есть также в Facebook.
Поговорить?
Уже наговорили:
zeleboba:
@ASD: нет-нет, как раз ничего не впариваем, а просто сделали перевод статьи с XDA, чуть дополнив его своими комментариями и наблюдениями, чтобы обсудить с остальными. Потому что тема интересна
ASD:
Это будет работать на коротких повторяющихся операциях чтения/записи опять же пока это вмещается в кеш, и пока эти данные в кеше. Далее если были операции на запись, они должны быть выполнены реально и тормоза вернуться.
Так же с чтением.
Галерея стала шустрее только после того как было считывание в кеш, само считывание как было медленным так и осталось.
Не забывайте еще что кеш занимает память причем не выгружаемую, хотя это мелочи.
PS Хотите быструю галерею, используйте QuickPic, гораздо быстрее.
zeleboba:
@gren: @ASD: спасибо за комментарии. Теперь я лучше стал понимать принцип работы кеша в Android.
@Dreamer. : да, попробовал. Шустрее. Но все же останусь на стандартной галерее. Тем более, что вообще в галерею не часто лазить приходится
Всё, что вам нужно знать об SD-картах памяти, чтобы не облажаться при покупке

Если вы думаете, что при покупке карт памяти для своих гаджетов нужно смотреть только на поддерживаемый формат и объём, придётся вас расстроить. Учитывать следует как минимум пять важных моментов.

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

Всего существует три различных формата SD, доступных в двух форм-факторах (SD и microSD):
SD (microSD) — накопители объёмом до 2 ГБ, работают с любым оборудованием;
SDHC (microSDHC) — накопители от 2 до 32 ГБ, работают на устройствах с поддержкой SDHC и SDXC;
SDXC (microSDXC) — накопители от 32 ГБ до 2 ТБ (на данный момент максимум 512 ГБ), работают только на устройствах с поддержкой SDXC.
Как видите, обратной совместимости у них нет. Карты памяти нового формата на старом оборудовании работать не будут.
Заявленная производителем поддержка microSDXC не означает поддержку карт этого формата с любым объёмом и зависит от конкретного устройства. Например, HTC One M9 работает с microSDXC, но официально поддерживает только карты до 128 ГБ включительно.
С объёмом накопителей связан ещё один важный момент. Все карты microSDXC используют по умолчанию файловую систему exFAT. Windows поддерживает её уже более 10 лет, в OS X она появилась начиная с версии 10.6.5 (Snow Leopard), в Linux-дистрибутивах поддержка exFAT реализована, но «из коробки» работает далеко не везде.
Высокоскоростной интерфейс UHS

Карты форматов SDHC и SDXC могут поддерживать интерфейс Ultra High Speed, который при наличии аппаратной поддержки на устройстве обеспечивает более высокие скорости (UHS-I до 104 МБ/с и UHS-II до 312 МБ/с). UHS обратно совместим с более ранними интерфейсами и может работать с не поддерживающими его устройствами, но на стандартной скорости (до 25 МБ/с).

Классификация скорости записи и чтения microSD-карт так же сложна, как их форматы и совместимость. Спецификации позволяют описывать скорость карт четырьмя способами, и, поскольку производители используют их все, возникает большая путаница.

К классу скорости (Speed Class) привязана минимальная скорость записи на карту памяти в мегабайтах в секунду. Всего их четыре:
Class 2 — от 2 МБ/с;
Class 4 — от 4 МБ/с;
Class 6 — от 6 МБ/с;
Class 10 — от 10 МБ/с.

У карт, работающих на высокоскоростной шине UHS, пока всего два класса скорости:
Class 1 (U1) — от 10 МБ/с;
Class 3 (U3) — от 30 МБ/с.
Поскольку в обозначении класса скорости используется минимальное значение записи, то теоретически карта второго класса вполне может быть быстрее карты четвёртого. Хотя, если это будет так, производитель, скорее всего, предпочтёт более явно указать этот факт.
Класса скорости вполне достаточно для сравнения карт при выборе, но некоторые производители помимо него используют в описании максимальную скорость в МБ/с, причём чаще даже не скорость записи (которая всегда ниже), а скорость чтения.
Обычно это результаты синтетических тестов в идеальных условиях, которые недостижимы при обычном использовании. На практике скорость зависит от многих факторов, поэтому не стоит ориентироваться на эту характеристику.
Ещё один вариант классификации — это множитель скорости, подобный тому, который использовался для указания скорости чтения и записи оптических дисков. Всего их более десяти, от 6х до 633х.
Множитель 1х равен 150 КБ/с, то есть у простейших 6х-карт скорость равна 900 КБ/с. У самых быстрых карт множитель может быть 633х, что составляет 95 МБ/с.

Правильно выбирать карту с учётом конкретных задач. Самая больша́я и самая быстрая не всегда лучшая. При определённых сценариях использования объём и скорость могут оказаться избыточными.
При покупке карты для смартфона объём играет большую роль, чем скорость. Плюсы большого накопителя очевидны, а вот преимущества высокой скорости передачи на смартфоне практически не ощущаются, поскольку там редко записываются и считываются файлы большого объёма (если только у вас не смартфон с поддержкой 4K-видео).
Камеры, снимающие HD- и 4K-видео, — это совсем другое дело: здесь одинаково важны и скорость, и объём. Для 4K-видео производители камер рекомендуют использовать карты UHS U3, для HD — обычные Class 10 или хотя бы Class 6.
Для фото многие профессионалы предпочитают пользоваться несколькими картами меньшего объёма, чтобы минимизировать риск потери всех снимков в форс-мажорных обстоятельствах. Что до скорости, то всё зависит от формата фото. Если вы снимаете в RAW, есть смысл потратиться на microSDHC или microSDXC класса UHS U1 и U3 — в этом случае они раскроют себя в полной мере.

Как бы банально это ни звучало, но купить подделку под видом оригинальных карт сейчас проще простого. Несколько лет назад SanDisk заявляла, что треть карт памяти SanDisk на рынке является контрафактной. Вряд ли ситуация сильно изменилась с того времени.
Чтобы избежать разочарования при покупке, достаточно руководствоваться здравым смыслом. Воздерживайтесь от покупки у продавцов, не заслуживающих доверия, и остерегайтесь предложений «оригинальных» карт, цена которых значительно ниже официальной.
Злоумышленники научились подделывать упаковку настолько хорошо, что порой её бывает очень сложно отличить от оригинальной. С полной уверенностью судить о подлинности той или иной карты можно лишь после проверки с помощью специальных утилит:
H2testw — для Windows;
F3 — для Mac и Linux.

Если вы уже сталкивались с потерей важных данных из-за поломки карты памяти по той или иной причине, то, когда дело дойдёт до выбора, вы, скорее всего, предпочтёте более дорогую карту известного бренда, чем доступный «ноунейм».
Помимо большей надёжности и сохранности ваших данных, с брендовой картой вы получите высокую скорость работы и гарантию (в некоторых случаях даже пожизненную).
Теперь вы знаете об SD-картах всё, что необходимо. Как видите, есть много вопросов, на которые вам придётся ответить перед покупкой карты. Пожалуй, наилучшей идеей будет иметь различные карты для различных нужд. Так вы сможете использовать все преимущества оборудования и не подвергать свой бюджет лишним расходам.
Низкая скорость работы sd карты huawei

Проблема: Перемещение приложений на SD-карту не работает
Привет, когда я перемещаю приложение, мне говорят, что «невозможно переместить приложение». Что я должен делать? На другом телефоне это приложение перемещается, а на другом телефоне без рут-прав!
У меня телефон Lenovo S60-A Android 5.0.2.
Перемещение приложений на SD-карту не работает – решение проблемы
После выполнения этих действий приложение должно автоматически установиться на внешнюю карту памяти.
Каждый пользователь смартфона или планшета хочет предоставить дополнительное место для хранения.
Это происходит, когда встроенной памяти гаджета становится недостаточно. Если владелец телефона постоянно снимает новые фото и видео, не удаляя старые медиафайлы, свободное место в памяти расходуется еще быстрее.
Естественным решением для этого будет установка дополнительной флешки. Как правило, это карта памяти типа microSD или ее последующие модификации — microSDHC и microSDXC, которые имеют большой объем.

Какая бывает скорость карт памяти?
Одной из основных характеристик карты памяти является ее скорость, которая определяет, насколько быстро данные будут записываться и считываться. Он измеряется в мегабайтах (МБ), передаваемых за секунду времени — МБ / с. Скорость чтения данных всегда выше скорости записи, поэтому для определения параметров накопителя важен второй показатель, определяемый классом карты памяти. Он указан на самой карте, обычно это число, вписанное в символ C.
До недавнего времени было 4 С-класса:
Технологии не стоят на месте, появляются новые форматы видео высокой четкости, значительно улучшается качество и, как следствие, вес фотографий. Для решения проблемы записи и хранения таких объемов информации были разработаны сверхвысокоскоростные высокоскоростные карты памяти, сокращенно UHS карты:
На этих опорах класс обозначается числом, вписанным в символ U.

Какой выбрать класс карты памяти?
Очевидно, что чем выше этот показатель единицы, тем выше стоимость флешки. Как выбрать скорость работы карты памяти? Для этого нужно прочитать нашу специальную статью и знать, как и как устройство будет активно использоваться:

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

Советы по выбору карты памяти для смартфона
В условиях ограниченных финансовых ресурсов при выборе между классом карты памяти и ее размером принять решение сложно. Здесь каждый пользователь должен сам решить, что для него важнее всего.
Для начала вам нужно открыть настройки вашего телефона. Откройте раздел «Память».
Теперь вам нужно найти подраздел «Память по умолчанию» или «Основная память»: здесь вы должны поставить галочку напротив пункта «Карта памяти Micro SD». Теперь в приложениях Android музыка и фото будут загружаться на карту памяти.
6 причин, почему вы не захотите связываться с картой памяти на смартфоне

С помощью microSD вы можете значительно увеличить базовый объем внутреннего хранилища практически любого Android смартфона. Но помимо очевидных преимуществ, у карт памяти есть и недостатки.
После недавнего инцидента с участием смартфона и двери автомобиля мне пришлось на какое-то время «пересесть» на старенькую Motorola. Я сразу же морально подготовился к слабому процессору и небольшому объему оперативной памяти, из-за которых телефон будет работать заметно медленнее моего старого гаджета.
Но больше всего меня беспокоил вопрос хранения файлов и слишком малый объем внутренней памяти моторолы, — всего 16 ГБ. Если несколько лет назад этого и было достаточно, то для современных реалий 16 ГБ крайне мало. Тогда я не придал этому большого значения. Я просто нашел дома какую-то microSD и установил ее в телефон.
Однако, спустя какое-то время после использования смартфона я начал сталкиваться с неожиданными для себя проблемами. И далее я постараюсь подробно о них рассказать.
Медленная скорость работы

Существует огромное количество microSD с разной скоростью записи и чтения данных. Если вы решите использовать дешевую карту памяти, то вероятнее всего сильно разочаруетесь ее низкой производительностью и медленной скоростью работы. Особенно, если вы планируете хранить на ней данные приложений.
Загрузка, обновление и скорость синхронизации будут занимать намного больше времени, чем обычно. К сожалению, большинство пользователей не особо задумываются при покупке и выбирает самые дешевые microSD, которые не могут похвастаться высокой производительностью.
Если в первую очередь карта памяти вам нужна для хранения фотографий и других типов файлов, то обратите внимание на miroSD классов UHS-I и Class 10. Если вы планируете устанавливать на нее приложения, то стоит задуматься о покупке карты памяти класса A1 или A2.
Исчезающие ярлыки и сбросы настроек
Во время использования Android смартфона с установленной в него microSD я столкнулся и с другой довольно интересной проблемой. Стоило батарее разрядиться, как ярлыки приложений (данные которых хранились на microSD) тут же пропадали с домашнего экрана.
Для меня было важно, чтобы нужные значки находились там, где мне нужно, поэтому на дале такая, казалось бы, небольшая проблема, сильно раздражала. Но хуже всего было то, что со временем начали сбрасываться и настройки некоторых приложений (вроде Twitter, MyFitnessPal и Reddit), в том числе сохраненные пароли.
Не буду строить из себя эксперта и делать вид, что знаю причины, по которым это могло происходить. Как и обещать то, что вы обязательно столкнетесь с подобной проблемой. Тем не менее, это действительно может произойти, если вы будете хранить данные приложений на microSD.
Проблемы поиска файлов
Несмотря на то, что вы можете полностью отформатировать microSD и настроить ее таким образом, чтобы она читалась смартфоном как часть встроенного хранилища, это вовсе не означает, что оба накопителя телефон будет видеть и воспринимать, как единое целое.
Во время поиска файлов вам по-прежнему придется искать документ в двух местах. Поэтому в зависимости от начальных условий, данный процесс может сильно затянуться.
Например, вы можете столкнуться с ситуацией, при которой разные типы данных будут храниться на нескольких дисках. Какие-то фотографии и музыка будут находиться во внутренней памяти, а часть документов и загруженных через браузер файлов, на microSD. Чем больше приложений вы используете, тем сложнее будет фрагментация.
Сможете ли вы вспомнить, как выставили настройки по умолчанию и куда сохраняет кэш и другие пользовательские данные то или иное приложение? Для некоторых это может показаться мелочью, тем не менее, это серьезно влияет на производительность устройства. Не говоря уже о том, что дубли файлов могут занимать драгоценное свободное пространство и мешать работе файловых менеджеров.
Ошибки и сбои

Не все знают, что у microSD есть определенный лимит на количество циклов для чтения и записи данных. Каждый раз, когда вы получаете доступ к какому-либо файлу или приложению, срок службы карты постепенно снижается. Лимит напрямую зависит от класса microSD. Поэтому карта от SanDisk прослужит гораздо дольше, чем какая-нибудь дешевая безымянная microSD с eBay.
Ситуация осложняется и тем фактом, что вы можете просто не знать ее возраст. Если вы пользуетесь старой microSD, которая до этого годами лежала без дела, то не существует стопроцентного способа, чтобы проверить, исчерпала ли та свой лимит.
Кроме того, в отличие от традиционных жестких дисков, которые заблаговременно предупреждают пользователей о том, что их пора заменить, microSD просто перестает работать. Если у вас нет привычки делать резервные копии данных, то в один момент вы можете просто лишиться важных файлов и документов.
Проблемы переноса данных
Вопреки мнению многих пользователей, microSD для Android нельзя назвать полноценным аналогом обыкновенной SD или USB-флешки. В отличие от microSD, флеш-носители можно свободно подключать к разным компьютерам, ноутбукам и получать доступ к нужным файлам. Другими словами, они являются портативными устройствами.
Если вы достанете microSD из своего Android смартфона и попытаетесь установить ее в другой телефон или подключить через адаптер к компьютеру, то вы не сможете прочитать хранящиеся на ней файлы. Потому что при использовании карты памяти в качестве внутреннего хранилища, смартфон автоматически шифрует все данные и делает их доступными только на «главном» устройстве.
Это значит, что вы не можете просто вытащить из старого телефона свою microSD, установить в новый и спокойно продолжить работу. Вам так или иначе придется ее отформатировать, а значит потерять все хранящиеся на ней файлы. Разумеется, что перед форматированием вы сможете сохранить и переместить часть данных вручную.
Низкая производительность в играх

Хуже всего дела обстоят с играми. Речь идет не о простых головоломках, а о серьезных ресурсозатратных приложениях с 3D-графикой. Как правило, для их нормальной работы требуется не только хороший процессор и достаточный объем оперативной памяти, но и много места во внутренней памяти устройства. Данные сохранений, кэш и другие файлы могут занимать по несколько гигабайт.
Поэтому у многих пользователей появляется вполне объяснимое желание перенести их на microSD. Тем не менее, это не самая лучшая идея. Во-первых, в процессе могут быть утеряны важные для нормальной работы текстуры, аудиофайлы. Во-вторых, увеличится скорость запуска и выполнения некоторых команд, вероятность возникновения различных ошибок (в том числе критических).
Даже, если вы используете лучшую microSD класса A1, она все равно не сможет показать такую же высокую производительность, как если бы вы запускали игру из внутреннего хранилища.
Пожалуй, это все проблемы и недостатки microSD, о которых обязательно стоит помнить. Некоторые из них не такие страшные, особенно, если вы не планируете использовать смартфон для запуска ресурсозатратных приложений или хранить на нем много фотографий, музыки или документов.