Перейти к содержанию
    

STM32F4 FreeRTOS и SDRAM - не дружат...

Всех с Наступающим!

Решил сделать что-то в роде миникомпьютера на STM32F429. В основе лежит FreeRTOS. Далее в SDRAM загружается внешняя программа и для неё создаётся дополнительная задача. Грубо говоря, это будет многозадачная операционная система с внешними приложениями (как виндовые *.exe). Но 192 КБ ОЗУ микроконтроллера, мне кажется, маловато для стека такой байды, к тому же она планировалась использоваться для кеширования "сложных" функций для ускорения быстродействия, т.к. SDRAM сама по себе очень медленная рядом с флешкой STMки.

Проблема в том, что если разместить стек в SDRAM, то при чтении некоторых адресов SDRAM получаются одни нули. Т.е. это происходит во время первичного чтения внешней программы для её дальнейшей обработки и запуска. Сразу, в момент записи в SDRAMку данные успешно читаются, но после этого процесса какого-то Х они "пропадают"... Так-же точно такая же проблема получается в некоторых случаях после работы с видеопамятью, которая используется LTDC для вывода на VGA монитор. Видеопамять тоже хранится в том же SDRAM чипе.

Архив с проектом тут: http://rghost.ru/8lFwfQrmT

Основные исходники в папке "app", задачи FreeRTOS в файле "freertos.c". В нём же прокомментированы проблемные строчки.

Изменено пользователем VHEMaster

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

с 429 вы опоздали на пару лет и вы не первый с этими граблями - выбросить

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

с 429 вы опоздали на пару лет и вы не первый с этими граблями - выбросить

Т.е. это чисто аппаратный баг который никак не исправить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Далее в SDRAM загружается внешняя программа и для неё создаётся дополнительная задача.

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

 

В целом проект как учебный - очень хорош!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...