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

 
 
 
Reply to this topicStart new topic
> STM32 SDIO problem на плате от TE
urock
сообщение Jun 22 2011, 13:34
Сообщение #1





Группа: Новичок
Сообщений: 7
Регистрация: 29-02-08
Пользователь №: 35 506



Добрый день

Использую плату от Terra Electronica TE-STM32F103RET6KIT_v100

Пытаюсь запустить на ней пример из библиотеки на SDIO. Возникает проблема.

SD_Init отрабатывает нормально - sd карта идеализируется, можно даже прочитать из нее ID производителя из CID регистра.
SD_Erase тоже работает нормально.

Но программа зависает на первом же вызове SD_ReadMultiBlocks: запускается DMA передача и начинается какая-то чертовщина. В дебагере перестает отображаться текущая строчка кода, если остановить процессор. Пошагать тоже не получается.

В окне Disassembly (использую IAR) отображается, что процессор исполняет инструкции по адресу 0x844XXXXX - явно какой-то бред.

Проект я сам не создаю, а использую Template из скачанной папки с библиотекой STM32F10x_StdPeriph_Lib_V3.4.0 + добавляю в него просто файлы из примера по SDIO.

Тоже самое наблюдаю, если использовать библиотеку другой версии STM32F10x_StdPeriph_Lib_V3.5.0.

Может что-то не правильно с настройками проекта? Был у кого-нибудь опыт работы с SD Card на этой плате?


Go to the top of the page
 
+Quote Post
urock
сообщение Jul 1 2011, 10:19
Сообщение #2





Группа: Новичок
Сообщений: 7
Регистрация: 29-02-08
Пользователь №: 35 506



Цитата(urock @ Jun 22 2011, 16:34) *
В окне Disassembly (использую IAR) отображается, что процессор исполняет инструкции по адресу 0x844XXXXX - явно какой-то бред.

Проект я сам не создаю, а использую Template из скачанной папки с библиотекой STM32F10x_StdPeriph_Lib_V3.4.0 + добавляю в него просто файлы из примера по SDIO.

Тоже самое наблюдаю, если использовать библиотеку другой версии STM32F10x_StdPeriph_Lib_V3.5.0.

Может что-то не правильно с настройками проекта?


Решено: не была проинициализирована таблица прерываний. Инициализируется она в функции SystemInit, которая судя по всем должна вызываться до входа в main. Однако, выяснилось, что эта функция не вызывалась. Причина этого пока неясна. После принудительного вызова SystemInit(); в самом начале main прерывания от SDIO (и другие тоже) начали обрабатываться корректно.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 10:19
Рейтинг@Mail.ru


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