Почему телефон не видит sd карту памяти или usb-флешку. Что делать? SD карта как внутренняя память Андроид

Начиная с версии андроил 6.0 появилась возможность использования флэш карты в качестве внутреннего хранилища данных устройства. Теперь девайс, после определенных действий, может пользоваться доступной на SD памятью так же свободно, как и внутренней. В статье будет рассказано о том, как подключить SD карту в таком качестве и какие ограничения при этом налагаются на нее.

Как подключить флешку, как внутреннюю память

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

Первым делом необходимо зайти в Настройки , а затем перейти в раздел «Хранилище и накопитель », где следует нажать по SD-карте.

Далее нужно выбрать «Настроить » и клацнуть «Внутренняя память ». Сразу после этого устройство предупредит пользователя, что вся информация будет удалена и ее станет невозможно прочитать на других устройствах без полного форматирования.

Здесь нужно выбрать пункт «Очистить и отформатировать » и дождаться завершения процесса очистки памяти. Затем может высветиться сообщение о том, что носитель работает медленно. Как правило, это обозначает, что используемая флешка не очень хорошего качества и её использование в качестве хранилища устройства может отразится и на производительности самого смартфона. Для хорошей и быстрой работы рекомендуется использовать накопители UHS Speed Class 3 (U3).

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

Особенности и ограничения использования SD-карты

Есть несколько особенностей, о которых следует знать, перед тем, как начинать использовать флэшку таким образом.

  1. После преобразования все данные, кроме некоторых приложений и обновлений для системы, будут помещаться на SD накопитель.
  2. При подключении к компьютеру, так же будет доступна для взаимодействия только эта часть памяти.

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

Форматируем карту с помощью ADB для использования в качестве внутреннего хранилища

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

Чтобы воспользоваться этим способом, потребуется совершить много действий. Нужно загрузить с сайта и произвести установку Android SDK , затем загрузить и установить с официального сайта драйвера для устройства , а так же, требуется включить «режим отладки по USB » на устройстве.

  • adb shell
  • sm list-disks (после выполнения будет выдан id в виде disk:ХХХ,ХХ его следует записать и ввести в следующей строке)
  • sm partition disk:ХХХ,ХХ private

Затем потребуется отключить телефон , перейти в настройки и нажать по sd, выбрать меню и кликнуть «Перенести данные ». Все, на этом действия закончены.

Как перевести карту памяти в стандартный режим

Чтобы вернуть флэшку в стандартный режим нужно просто зайти в ее настройки, как в первом варианте, и выбрать в меню «Портативный носитель ». Перед этим всю важную информацию следует перенести в другое место, потому что накопитель будет отформатирован в процессе.

В некоторых устройствах Android есть слоты для карт памяти (как правило, формата microSD). Если устройство поддерживает SD-карты, вы можете:

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

Чтобы узнать, есть ли у вашего устройства слот для SD-карты, посетите сайт производителя .

Примечание. Некоторые из этих действий можно выполнить только на устройствах с Android 6.0 и более поздними версиями.

Как установить SD-карту

Шаг 1. Вставьте SD-карту.
  1. Уточните, где находится слот для SD-карты.
  2. Выключите телефон.
  3. Извлеките лоток SD-карты или снимите заднюю крышку устройства (в зависимости от модели). При необходимости поднимите язычок, удерживающий карту.
  4. Поместите SD-карту в слот. Если вы подняли удерживающий язычок, опустите его.
  5. Установите обратно лоток SD-карты или заднюю крышку устройства.
Шаг 2. Включите SD-карту.
  1. Дождитесь появления уведомления об SD-карте.
  2. Нажмите Настроить .
  3. Выберите нужный тип хранилища.
    • Съемный накопитель:
      Карту можно переносить на другое устройство вместе со всеми файлами (например, фотографиями и музыкой). Приложения на съемный накопитель перемещать нельзя.
    • Внутренняя память:
      На карте можно хранить приложения и данные только для этого устройства. Если вы переместите ее на другое устройство, все данные с нее будут удалены.
  4. Чтобы настроить SD-карту, следуйте инструкциям на экране.
  5. По завершении нажмите Готово .

Как использовать SD-карту

Как переместить приложения на SD-карту

Если вы подключили карту в качестве внутренней памяти, можно перенести приложения на нее.

Примечание. Не все приложения можно перенести SD-карту.

Как переместить файлы на SD-карту

Если вы установили SD-карту в качестве съемного накопителя, то можете перенести на нее различные файлы, например музыку и фотографии. После этого их можно удалить из внутренней памяти устройства.

Шаг 1. Скопируйте файлы на SD-карту.

Шаг 2. Удалите файлы с внутреннего накопителя.

Вы можете посмотреть содержимое SD-карты и узнать, сколько места осталось.

Если SD-карта используется в качестве внутреннего накопителя

Если SD-карта используется в качестве съемного накопителя

  1. Проведите по экрану сверху вниз, чтобы открыть панель уведомлений.
  2. Под уведомлением об SD-карте нажмите Открыть .

О том, как можно устанавливать приложения на sd-карту в устройствах Андроид, хотят знать многие. Если у пользователя есть телефон или планшет с небольшим объемом постоянной памяти и оперативки, то он, вероятно, часто деинсталлирует программы, чтобы освободить место. Но есть способ увеличить объем памяти за счет использования SD-карты.

Способы установки программ

Data-lazy-type="image" data-src="http://androidkak.ru/wp-content/uploads/2017/05/link2sd_copertina-300x131.png" alt="Link2SD" width="300" height="131" srcset="" data-srcset="http://androidkak.ru/wp-content/uploads/2017/05/link2sd_copertina-300x131..png 768w, http://androidkak.ru/wp-content/uploads/2017/05/link2sd_copertina.png 800w" sizes="(max-width: 300px) 100vw, 300px">
По умолчанию игры и приложения Android устанавливаются на встроенный накопитель смартфона, который может оказаться слишком маленьким. Если есть SD, то можно сделать так, чтобы некоторые программы устанавливались туда по умолчанию, тем самым освобождая место для большего количества информации. При определенных условиях на съемную флешку можно перенести практически любую установленную программу.

Как установить приложение на SD-карту Андроида? Существует несколько разных способов осуществления этой операции. Выбор правильного метода зависит от версии операционной системы и данных, которые нужно переместить. В настройках Android 6.0 Marshmallow можно адаптировать SD как встроенную память, автоматически устанавливая разрешенные игры и программное обеспечение на съемный накопитель.

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

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

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

Как адаптировать SD-карту под внутреннюю память

Традиционно SD на Android выполняли функции переносных хранилищ. Это означает, что на них можно хранить видеозаписи, музыку и фотографии с целью использования на своем смартфоне. SD можно подключать к компьютеру для передачи файлов в двухстороннем порядке. При использовании в качестве портативного приспособления для хранения данных карта может быть удалена без ущерба для функциональности.

Читайте также: Как установить флеш плеер на Андроид - инструкция

Как устанавливать приложения на карту памяти? Система Android 6.0 Marshmallow позволяет использовать SD в роли встроенного хранилища, превращая его в неотъемлемую часть смартфона. Если принять съемную флешку как основное хранилище, то по умолчанию новое программное обеспечение будет устанавливаться на нее. При желании пользователь может переместить программу обратно во встроенную память.

Если внешний накопитель применяется как основное хранилище, то его нельзя удалить так, чтобы это не повлияло на функциональность гаджета. При этом карта не может использоваться на других устройствах (в том числе и на ПК). Карта SD отформатирована как локальный диск EXT4, закодированный с помощью 128-битного шифрования AES и смонтированный как часть системы. Когда система Marshmallow примет накопитель, она будет работать только с ним.

Jpg" alt="СД карта" width="300" height="182" srcset="" data-srcset="http://androidkak.ru/wp-content/uploads/2017/05/118227p09-300x182..jpg 720w" sizes="(max-width: 300px) 100vw, 300px"> Теперь о том, как настроить СД-карту. Нужно обязательно создать резервную копию данных и сохранить ее на компьютере, прежде чем использовать флешку в качестве внутреннего носителя. Процесс адаптации приведет к удалению всех данных. Можно вернуть данные на SD после того, как накопитель будет принят в роли встроенного хранилища.

Для передачи данных нужно подключить Android непосредственно к компьютеру. Невозможно удалить SD с устройства и подключить его непосредственно к ПК для передачи файлов. Если накопитель использовался в качестве переносного хранилища и на нем содержатся данные, то необходимо перенести их во встроенную память. Если не сделать этого, то программы будут удалены и их придется устанавливать заново.

При использовании SD в качестве внутреннего хранилища нужно убедиться, что карта скоростная. При покупке нового накопителя нужно искать Class 10 и UHC. Если выбрать более дешевую и медленную SD, то она замедлит работу девайса в целом. Если есть планы настраивать накопитель как внутреннее хранилище, то лучше потратить деньги на приобретение быстрой карты. Система Android протестирует скорость SD в процессе синхронизации и предупредит пользователя, если она слишком медленная и может негативно повлиять на производительность гаджета.

Проблема нехватки памяти – одна из основоположных как для ПК, так и для мобильных устройств. При малом количестве свободной памяти система обычно начинает подтормаживать, подвисать, работает нестабильно и ненадёжно. Особенно актуально это для Андроид-устройств, многие из которых изначально обладают довольно небольшим объёмом основной памяти (т.н. «Internal Storage»). В такой ситуации у некоторых пользователей может возникнуть идея попробовать использовать внешнюю SD-карту в качестве основной памяти на их Андроид-устройстве. В данном материале я расскажу, как SD-карту сделать основной памятью на гаджетах Андроид, и какие способы нам в этом помогут.

Разбираем, как SD-карту сделать основной памятью на Андроид

Для осуществления данной задачи вам понадобится скоростная SD-карта (желательно, 10 класса или быстрее). Карты 6, а особенно 4 и 2 классов для таких целей не пригодны, ваша система вследствие их использования существенно замедлит свою работу, что вряд ли понравится кому-то из пользователей.

Также важно понимать, что срок действия такой SD-карты вследствие активной на неё нагрузки будет существенно меньше, нежели если бы нагрузка на карту проходила в стандартном режиме.


Способ №1. Изменяем содержимое файла Vold.fstab

Первый из описанных способов предполагает изменение содержимого файла системных настроек «Vold.fstab». После осуществления указанных изменений ОС Андроид будет считать вашу SD-карту внутренней памятью устройства, при этом учтите, что ряд установленных ранее приложений могут перестать работать.

Важно знать, что данный способ работает только на рутированных устройствах, на которых установлена ОС Андроид ниже (!) , нежели версия 4.4.2. В версиях ОС Андроид 4.4.2 и выше указанный файл, скорее всего, вы попросту не найдёте.

Также учтите, что ошибка в реализации данного способа (в частности, добавление в нужные строки лишних символов) может самым печальным образом сказаться на работоспособности вашего устройства. Потому тщательно взвесьте возможные риски, и если, всё-таки, приняли решение, тогда приступайте к его реализации.

Итак, для осуществления данного способа выполните следующее:

Например, это могут быть такие строки:

  • dev_mount sdcard/storage/sdcard0 emmc@xxxxxx
  • dev_mount sdcard2/storage/sdcard1 auto/xxxxxx

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

После изменений эти строки будут иметь вид:

  • dev_mount sdcard/storage/sdcard1 emmc@xxxxxx
  • dev_mount sdcard2/storage/sdcard0 auto/xxxxx

Сохраните произведёнными вами изменения, а затем перезагрузите гаджет.

Ещё один вариант как сделать карту памяти основной на андроид:


Способ №2. Используем настройки ОС Андроид 6.0 и выше

Кроме первого способа, в котором я рассмотрел, как переключить память телефона на карту памяти, существует и другой способ, работающий только на настройках ОС Андроид 6.0 (Marshmallow) или выше, и позволяющий задействовать SD-карту как основную для сохранения файлов и работы с ними. Для его реализации рекомендую сделать копию данных с вашей SD-карты (если таковые на ней имеются), так как данная карта будет отформатирована системой.

Всем доброго дня! Сегодня мы поговорим о подключении карты памяти SD к микроконтроллеру STM32.

Казалось бы, памяти полно у контроллеров STM32F10x, зачем там еще дополнительная, но это впечатление обманчиво) Вот, например, надо нам на дисплей вывести пару-тройку разных изображений – формат 320*240 – то есть 76800 пикселей, каждому из которых соответствует целых 2 байта. Вот и получаем около 150 кБ на одну картинку. А это немало по меркам микроконтроллера, и не факт, что две разные картинки удастся запихать в его Flash память. Или надо нам хранить большие объемы информации, данные с какого-нибудь датчика, к примеру. Да еще так, чтобы эти данные были доступны и после отключения питания. Вот тут то нам и пригодится внешняя память. И отличным решением будет SD карта памяти или MMC. К слову в этой статье мы будем проводить опыты над картой micro SD .

Для начала пара слов о самой карте памяти, точнее о ее распиновке. Выглядит все это дело следующим образом:

Итак, что тут у нас? Ну сразу видно, что выводов у нее целых восемь штук. Назначение выводов следующее (слева направо):


Колонка SPI Mode нам намекает на то, что взаимодействует с микроконтроллером при помощи интерфейса SPI. НО! Мы пойдем по другому пути 😉 Все дело в том, что STM32 имеют на своем борту готовый периферийный модуль для работы именно с картами памяти, и называется он SDIO.

Вообще взаимодействие с картами памяти заключается в передаче им определенных команд. Некоторые команды требует наличия аргумента, некоторые нет. Команды можно найти в официальной документации на конкретную карту. Так вот встроенный модуль SDIO дает возможность значительно упростить процесс передачи команд, да и вообще процесс работы с внешними картами памяти. Например, вот регистр SDIO_CMD – туда мы просто напросто записываем код команды, которую хотим передать карте. Или вот статусный регистр SDIO_STA – там целых 24 флага на каждый чих, то есть для большого количества событий.

Кстати STM радует еще и добротной документацией на все это дело. Вот, к примеру, подробное описание инициализации для карты памяти SD (аналогично все описано для других типов карт):

Ну, собственно, пора перейти к практическому примерчику. Поковыряем-ка Standard Peripheral Library.

В файле stm32f10x_sdio.h по традиции находим структуры для всевозможной настройки – то есть для выбора источника тактового сигнала, частоты контроллера SDIO, настройки количества передаваемых байт. Там все так щедро откомментировано, что даже не хочется отдельно это повторять)) Просто смотрите:

typedef struct { uint32_t SDIO_ClockEdge; /* Specifies the clock transition on which the bit capture is made. This parameter can be a value of @ref SDIO_Clock_Edge */ uint32_t SDIO_ClockBypass; /* Specifies whether the SDIO Clock divider bypass is enabled or disabled. This parameter can be a value of @ref SDIO_Clock_Bypass */ uint32_t SDIO_ClockPowerSave; /* Specifies whether SDIO Clock output is enabled or disabled when the bus is idle. This parameter can be a value of @ref SDIO_Clock_Power_Save */ uint32_t SDIO_BusWide; /* Specifies the SDIO bus width. This parameter can be a value of @ref SDIO_Bus_Wide */ uint32_t SDIO_HardwareFlowControl; /* Specifies whether the SDIO hardware flow control is enabled or disabled. This parameter can be a value of @ref SDIO_Hardware_Flow_Control */ uint8_t SDIO_ClockDiv; /* Specifies the clock frequency of the SDIO controller. This parameter can be a value between 0x00 and 0xFF. */ } SDIO_InitTypeDef; typedef struct { uint32_t SDIO_Argument; /* Specifies the SDIO command argument which is sent to a card as part of a command message. If a command contains an argument, it must be loaded into this register before writing the command to the command register */ uint32_t SDIO_CmdIndex; /* Specifies the SDIO command index. It must be lower than 0x40. */ uint32_t SDIO_Response; /* Specifies the SDIO response type. This parameter can be a value of @ref SDIO_Response_Type */ uint32_t SDIO_Wait; /* Specifies whether SDIO wait-for-interrupt request is enabled or disabled. This parameter can be a value of @ref SDIO_Wait_Interrupt_State */ uint32_t SDIO_CPSM; /* Specifies whether SDIO Command path state machine (CPSM) is enabled or disabled. This parameter can be a value of @ref SDIO_CPSM_State */ } SDIO_CmdInitTypeDef; typedef struct { uint32_t SDIO_DataTimeOut; /* Specifies the data timeout period in card bus clock periods. */ uint32_t SDIO_DataLength; /* Specifies the number of data bytes to be transferred. */ uint32_t SDIO_DataBlockSize; /* Specifies the data block size for block transfer. This parameter can be a value of @ref SDIO_Data_Block_Size */ uint32_t SDIO_TransferDir; /* Specifies the data transfer direction, whether the transfer is a read or write. This parameter can be a value of @ref SDIO_Transfer_Direction */ uint32_t SDIO_TransferMode; /* Specifies whether data transfer is in stream or block mode. This parameter can be a value of @ref SDIO_Transfer_Type */ uint32_t SDIO_DPSM; /* Specifies whether SDIO Data path state machine (DPSM) is enabled or disabled. This parameter can be a value of @ref SDIO_DPSM_State */ } SDIO_DataInitTypeDef;

Отметим как в SPL реализована передача команд карте памяти. Для этих целей отведена отдельная структура SDIO_CmdInitTypeDef. В поле SDIO_CmdIndex вводим код команды, в поле SDIO_Argument – аргумент команды, также заполняем остальные поля. Осталось как то эти данные запихать в карту micro SD 😉 А для этого нам приготовили функцию:

SDIO_SendCommand (SDIO_CmdInitTypeDef *SDIO_CmdInitStruct)

В качестве аргумента передаем ей как раз таки созданную нами структуру. Для записи данных есть функция – SDIO_WriteData(uint32_t Data) . После вызова этой функции данные окажутся в специально предназначенном для этого регистре – SDIO_FIFO.

Вот так вот осуществляется работа с модулем SDIO в STM32F10x)

Теперь перейдем к практике наконец-то. Я снова буду работать с платой Mini STM32, поскольку добрые китайцы озадачились установкой на нее слота для карты памяти micro SD. Вот схема подключения разъема для карты к микроконтроллеру:

Для написания программы воспользуемся готовым примером для Keil’а – стащим оттуда два файла, в которых реализовано что-то вроде драйвера для работы с картами – это файлы sdcard.c и sdcard.h. Создаем новый проект, цепляем туда эти файлы, а кроме того, естественно, файлы CMSIS и SPL. Вот готовый проект, в который все уже добавлено – остается только написать код функции main())

В файле sdcard.c реализованы всевозможные функции для работы с картой памяти, нам теперь остается их только использовать 😉 Пишем код! Для примера запишем на micro SD 512 байт тестовых данных, а затем попробуем их считать:

// Цепляем нужные файлы #include "stm32f10x.h" #include "sdcard.h" /*******************************************************************/ // Массивы входных и выходных данных и переменная для хранения данных // о нашей карте uint8_t writeBuffer[ 512 ] ; uint8_t readBuffer[ 512 ] ; SD_CardInfo SDCardInfo; /*******************************************************************/ int main() { // Тестовые данные для записи for (uint16_t i = 0 ; i < 512 ; i++ ) { writeBuffer[ i] = i % 256 ; readBuffer[ i] = 0 ; } // Иницилизация карты SD_Init() ; // Получаем информацию о карте SD_GetCardInfo(& SDCardInfo) ; // Выбор карты и настройка режима работы SD_SelectDeselect((uint32_t ) (SDCardInfo.RCA << 16 ) ) ; SD_SetDeviceMode(SD_POLLING_MODE) ; // И вот наконец то запись и чтение SD_WriteBlock(0x00 , writeBuffer, 512 ) ; SD_ReadBlock(0x00 , readBuffer, 512 ) ; while (1 ) { } } /*******************************************************************/

Обратите внимание, что SD карта поддерживает запись блоками по 512 байт.

Если мы запустим программу под отладчиком, то увидим, что считанные данные соответствуют записанным =) Так что эксперимент можем считать удавшимся. На этом на сегодня заканчиваем, до скорых встреч!