Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32F4 FreeRTOS и SDRAM - не дружат...
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
VHEMaster
Всех с Наступающим!
Решил сделать что-то в роде миникомпьютера на STM32F429. В основе лежит FreeRTOS. Далее в SDRAM загружается внешняя программа и для неё создаётся дополнительная задача. Грубо говоря, это будет многозадачная операционная система с внешними приложениями (как виндовые *.exe). Но 192 КБ ОЗУ микроконтроллера, мне кажется, маловато для стека такой байды, к тому же она планировалась использоваться для кеширования "сложных" функций для ускорения быстродействия, т.к. SDRAM сама по себе очень медленная рядом с флешкой STMки.
Проблема в том, что если разместить стек в SDRAM, то при чтении некоторых адресов SDRAM получаются одни нули. Т.е. это происходит во время первичного чтения внешней программы для её дальнейшей обработки и запуска. Сразу, в момент записи в SDRAMку данные успешно читаются, но после этого процесса какого-то Х они "пропадают"... Так-же точно такая же проблема получается в некоторых случаях после работы с видеопамятью, которая используется LTDC для вывода на VGA монитор. Видеопамять тоже хранится в том же SDRAM чипе.
Архив с проектом тут: http://rghost.ru/8lFwfQrmT
Основные исходники в папке "app", задачи FreeRTOS в файле "freertos.c". В нём же прокомментированы проблемные строчки.
Forger
Цитата(VHEMaster @ Dec 30 2015, 17:43) *
Решил сделать что-то в роде миникомпьютера на STM32F429
Если не секрет, то зачем?
VHEMaster
Forger, скучно живу.)
Огурцов
с 429 вы опоздали на пару лет и вы не первый с этими граблями - выбросить
VHEMaster
Цитата(Огурцов @ Dec 30 2015, 17:26) *
с 429 вы опоздали на пару лет и вы не первый с этими граблями - выбросить

Т.е. это чисто аппаратный баг который никак не исправить?
Огурцов
аппаратный, мне помогло статичское размещение буферов - дальше не копал, смысл, если полкамня не работает
haker_fox
QUOTE (VHEMaster @ Dec 30 2015, 22:43) *
Далее в SDRAM загружается внешняя программа и для неё создаётся дополнительная задача.

Няшная идея! Сам пару лет назад хотел сделать что-то подобное только ещё для ARM7TDMI. Хотел и драйвера подгружаемые и т.д. и т.п. В общем типа виндовса или линукса, но на мк без MMU))) и даже без MPU) Сейчас как-то уже не интересно. Хотя и в то время у меня был камешек с полноценным линуксом.

В целом проект как учебный - очень хорош!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.