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

 
 
> STM32F4 FreeRTOS и SDRAM - не дружат..., И стек и видеопамять...
VHEMaster
сообщение Dec 30 2015, 14:43
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 28-08-15
Пользователь №: 88 191



Всех с Наступающим!
Решил сделать что-то в роде миникомпьютера на STM32F429. В основе лежит FreeRTOS. Далее в SDRAM загружается внешняя программа и для неё создаётся дополнительная задача. Грубо говоря, это будет многозадачная операционная система с внешними приложениями (как виндовые *.exe). Но 192 КБ ОЗУ микроконтроллера, мне кажется, маловато для стека такой байды, к тому же она планировалась использоваться для кеширования "сложных" функций для ускорения быстродействия, т.к. SDRAM сама по себе очень медленная рядом с флешкой STMки.
Проблема в том, что если разместить стек в SDRAM, то при чтении некоторых адресов SDRAM получаются одни нули. Т.е. это происходит во время первичного чтения внешней программы для её дальнейшей обработки и запуска. Сразу, в момент записи в SDRAMку данные успешно читаются, но после этого процесса какого-то Х они "пропадают"... Так-же точно такая же проблема получается в некоторых случаях после работы с видеопамятью, которая используется LTDC для вывода на VGA монитор. Видеопамять тоже хранится в том же SDRAM чипе.
Архив с проектом тут: http://rghost.ru/8lFwfQrmT
Основные исходники в папке "app", задачи FreeRTOS в файле "freertos.c". В нём же прокомментированы проблемные строчки.

Сообщение отредактировал VHEMaster - Dec 30 2015, 17:09
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 6)
Forger
сообщение Dec 30 2015, 14:51
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(VHEMaster @ Dec 30 2015, 17:43) *
Решил сделать что-то в роде миникомпьютера на STM32F429
Если не секрет, то зачем?


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
VHEMaster
сообщение Dec 30 2015, 14:52
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 28-08-15
Пользователь №: 88 191



Forger, скучно живу.)
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Dec 30 2015, 15:26
Сообщение #4


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



с 429 вы опоздали на пару лет и вы не первый с этими граблями - выбросить
Go to the top of the page
 
+Quote Post
VHEMaster
сообщение Dec 30 2015, 15:35
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 28-08-15
Пользователь №: 88 191



Цитата(Огурцов @ Dec 30 2015, 17:26) *
с 429 вы опоздали на пару лет и вы не первый с этими граблями - выбросить

Т.е. это чисто аппаратный баг который никак не исправить?
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Dec 30 2015, 18:10
Сообщение #6


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



аппаратный, мне помогло статичское размещение буферов - дальше не копал, смысл, если полкамня не работает
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Dec 31 2015, 02:49
Сообщение #7


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (VHEMaster @ Dec 30 2015, 22:43) *
Далее в SDRAM загружается внешняя программа и для неё создаётся дополнительная задача.

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

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


--------------------
Выбор.
Go to the top of the page
 
+Quote Post

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

 


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


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