реклама на сайте
подробности

 
 
> STM32 SDIO 4bit SD-card, Подскажите кто делал, в чем может быть проблема
zksystem
сообщение Jul 16 2010, 10:12
Сообщение #1


embedder
***

Группа: Свой
Сообщений: 264
Регистрация: 11-05-05
Из: Казань
Пользователь №: 4 911



Всем привет, подскажите пожалуйста кто реализовывал работу с SD картой через 4bit SDIO на STM32, у меня почему-то зависает напрочь при инициализации SD_EnableWideBusOperation(SDIO_BusWide_4b);


printf("Init SD card:");
Status = SD_Init();
printf("%u\n",Status);

printf("get info status:");
Status = SD_GetCardInfo(&SDCardInfo);
printf("%u\n",Status);

printf("Select card:");
Status = SD_SelectDeselect((uint32_t) (SDCardInfo.RCA << 16));
printf("%u\n",Status);

printf("Set 4bit operation:");
Status = SD_EnableWideBusOperation(SDIO_BusWide_4b); <- дальше этого не идет
printf("%u\n",Status);

printf("Set DMA mode:");
Status = SD_SetDeviceMode(SD_DMA_MODE);
printf("%u\n",Status);


--------------------
Мечты стареют куда быстрее мечтателей… Стивен Кинг. "Ловец снов"
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
dezna
сообщение Feb 16 2013, 11:32
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 18-03-11
Пользователь №: 63 690



пытаюсь "поженить" scmRTOS на stm32f103 с SD картой fatfs через стмовский драйвер по SDIO интерфейсу.
процесс с обработчиком SD-карты имеет самый низкий приоритет.
проблема заключается в том, что при чтении с карты виснет время от времени после посылки команды на чтение.
что в режиме дма, что в режиме прерываний. выяснил, что если ОС прерывает процесс между посылкой команды и обработкой ответа на команду в процедуре CmdResp1Error, в которой сбрасываются флаги прерываний модуля sd, буфер фифо успевает заполниться и соответственно после сброса флагов прерывание не возникает.
вопрос состоит в том, как безболезненно заблокировать ОС на эти пару команд?
худо-бедно начинает работать при делителе тактового сигнала на 30 примерно 2 МГц.
без ОС все работает.

Сообщение отредактировал dezna - Feb 16 2013, 11:34
Go to the top of the page
 
+Quote Post
DmitryM
сообщение Feb 17 2013, 06:34
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840



Цитата(dezna @ Feb 16 2013, 14:32) *
пытаюсь "поженить" scmRTOS на stm32f103 с SD картой fatfs через стмовский драйвер по SDIO интерфейсу.
вопрос состоит в том, как безболезненно заблокировать ОС на эти пару команд?

TCritSect cs;
Go to the top of the page
 
+Quote Post
dezna
сообщение Feb 17 2013, 07:26
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 18-03-11
Пользователь №: 63 690



Цитата(DmitryM @ Feb 17 2013, 10:34) *
TCritSect cs;

если не трудно объясните пожалуйста что это даст, и как этим воспользоваться?
Go to the top of the page
 
+Quote Post
DmitryM
сообщение Feb 18 2013, 06:18
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840



деструктор вызовется компилятором при выходе из секции.
Go to the top of the page
 
+Quote Post
dezna
сообщение Feb 18 2013, 06:27
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 18-03-11
Пользователь №: 63 690



Цитата(DmitryM @ Feb 18 2013, 10:18) *
деструктор вызовется компилятором при выходе из секции.

а нельзя ли принудительно его вызвать?
код просто написан так, что в теле одного блока нужно запретить/разрешить.
драйвер SD карты взят от STM. а там упаришься переделывать.
Go to the top of the page
 
+Quote Post
DmitryM
сообщение Feb 18 2013, 06:56
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840



Цитата(dezna @ Feb 18 2013, 09:27) *
а нельзя ли принудительно его вызвать?
код просто написан так, что в теле одного блока нужно запретить/разрешить.
драйвер SD карты взят от STM. а там упаришься переделывать.

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

P.S. для обсуждения scmRTOS есть отдельный форум scmRTOS
Go to the top of the page
 
+Quote Post
dezna
сообщение Feb 18 2013, 07:01
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 18-03-11
Пользователь №: 63 690



Цитата(DmitryM @ Feb 18 2013, 10:56) *
P.S. для обсуждения scmRTOS есть отдельный форум scmRTOS

спасибо.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- zksystem   STM32 SDIO 4bit SD-card   Jul 16 2010, 10:12
- - zksystem   Вопрос снят, оказывается забыл запаять подтягивающ...   Jul 16 2010, 11:16
|- - klen   Цитата(zksystem @ Jul 16 2010, 15:16) Воп...   Jul 17 2010, 05:01
- - 011119xx   Столкнулся с проблемой чтения блока из карты. Код ...   May 3 2011, 06:05
|- - ALXLight   Цитата(011119xx @ May 3 2011, 09:05) Чтен...   Mar 23 2012, 11:28
- - 011119xx   В качестве эксперимента попробовал другой режим: К...   May 4 2011, 08:43
- - 011119xx   Проблема неработоспособности была в том, что вывод...   May 6 2011, 02:42
|- - zksystem   Цитата(011119xx @ May 6 2011, 05:42) Проб...   May 8 2011, 06:49
- - 011119xx   Проблема решена полностью. Работают все режимы. Де...   May 10 2011, 02:57
- - 011119xx   Если использовал стартовый ассемблерный файл, созд...   Mar 23 2012, 11:48
- - ALXLight   Я брал файл с диска от платы. Насчёт startup_stm32...   Mar 23 2012, 12:03
|- - AHTOXA   Цитата(ALXLight @ Mar 23 2012, 18:03) Взя...   Mar 23 2012, 17:53
|- - ALXLight   Цитата(AHTOXA @ Mar 23 2012, 20:53) Дык, ...   Mar 26 2012, 05:57
- - ALXLight   Не нашёл кнопки редактирования, поэтому прошу прощ...   Mar 26 2012, 08:38
|- - AHTOXA   Попробуйте вызвать SD_SetDeviceMode() с другим пар...   Mar 26 2012, 08:43
- - ALXLight   Polling выдаёт ошибку, а interrupt мне не подходит...   Mar 26 2012, 08:46
- - MBR   1. УМВР без подтяжки. Достаточно включить внутренн...   Apr 28 2012, 08:10
- - dezna   что это такое разобрался, но в документации нет пр...   Feb 18 2013, 06:14
- - Allregia   Блин, столкнулся с тем, что SD-коннекторы бывают с...   Feb 21 2013, 08:26
|- - dezna   Цитата(Allregia @ Feb 21 2013, 12:26) Бли...   Feb 21 2013, 11:50
- - Allregia   У меня и так стоят 4 джампера конфигурирования, но...   Feb 21 2013, 19:26
- - A.Lex   Столкнулся с проблемой: Делаю Status = SD_Init()...   Feb 10 2014, 16:17


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 07:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.01476 секунд с 7
ELECTRONIX ©2004-2016