SD / УДАЛЕНИЕ МЕМЕНТА, любые идеи?

Ipsilondev
Ср 16 августа 2017 г., 21:06
Отказ от ответственности: я пытаюсь использовать платформу для создания коммерческого продукта.

Всем привет :)

Прежде всего, извините за столько постов, новичок здесь, прося совет :)

Итак, я много играл с синими таблетками, пытаясь вжать ее как можно больше. Моя конечная цель - построить 16 -битную игровую консоль (или вроде), но у меня проблемы с серьезными ограничениями, что даже после 10 лет кодирования (я сделал сеть, игры, обработка изображений и т. Д.. На более чем 10 языках, включая C и C ++), я не вижу выхода (не пытаюсь предположить здесь, просто раздавая немного контекста в типе знаний, которые у меня есть : D ).

Моя главная проблема заключается в том, что я не могу достаточно быстро распределить ресурсы. Мне нужно достичь не менее 24 кадров в секунду на 240x320, чтобы что -то играбельно. В своем тесте я использовал изображения RGB, двоичный кодированный, маленький эндиан, нажимая цветные пиксели непосредственно в ЖК -дисплее. Моя проблема в этом контексте - скорость передачи SD. Я получил в лучшем случае, 400 КБ/с на SPI2, с буфером 10 КБ и использованием SDFATEX (у меня было всего 15 КБ свободной оперативной памяти, поэтому я использовал почти всю свою оперативную память). В любом месте, тем не менее, я вижу только посты людей здесь только на 800 КБ/с, так что это на самом деле не имеет значения в виде графики, который мне нужно загрузить (если я хочу загружать непосредственно из SD, мне нужно не менее 5 МБ/с).

Подумайте, что только сама игра должна использоваться на каждом повторном выставке кадра (подсчет персонажей или врагов. И теоретически я мог читать только 700 байтов на максимум кадра, чтобы достичь 30 кадров в секунду.

Использование сжатого типа изображения не является либо вариантом для небольшого процессора.

Конечно, я мог бы использовать некоторые трюки, такие как создание фоновых основных цветов и деталей с примитивами или даже анализа -> Svg -> Примитивы -> бинарное обучение примитивам -> Напишите в LCD, что инструкции, плюс добавление клонированных спрайтов из оперативной памяти, но объем работы, которую это нужно, на самом деле не стоит того.

Я искал опцию SPI SRAM (как, может быть, я мог бы использовать вариацию RC с 3 SPI), но чипы всего 128 КБ самые большие, и мне нужно не менее 512 КБ, чтобы иметь что -то для работы.

У меня на самом деле нет никакой другой идеи, чтобы улучшить этот процесс, по этой причине я публикую здесь, если кто -то, кто имеет больше опыта, может дать мне намек или предложение, очень приветствуется : D

Спасибо :)

victor_pv
Ср 16 августа 2017 г., 21:41
Мы можем получить несколько MB/S SD -карты, зависит от класса SDCARD среди других факторов, какого порта SPI вы используете, настройка скорости в порту и т. Д
Есть несколько потоков, говорящих о скоростях передачи SDCARD и многих тестах.
Это первый пост и первый тест, который я сделал, когда добавил возможности DMA в библиотеку SDFAT, просто проконсультировался с ним, чтобы проверить скорости, и тогда приближался к 2 МБ/с с буфером 4 КБ:
http: // www.STM32duino.com/viewtopic.PHP ... +Скорость#P27

С буфером 10 КБ, пока карта быстрая, вы должны получить хотя бы одинаковую скорость.
Если ваши изображения отформатированы таким образом, чтобы быть непосредственно записанным на дисплей, YI рекомендуется использовать двойную буферизацию и DMA как можно больше.
В то время как канал DMA загружает данные из SDCARD в один буфер, другой канал может писать из другого буфера на дисплей. Вы оптимизируете скорость переноса периферийных устройств одновременно, когда ЦП все еще может делать другие вещи, такие как планирование, что следующее, что нужно загружать из SDCARD, выполнение расчетов, входных данных и т. Д.

Какое ядро ​​вы используете, кстати?

Также может быть время перейти на более мощный MCU, такой как F4, хотя. Они работают быстрее и имеют аппаратный SP FPU, который может помочь вам с расчетами для графики, если вы используете SP.

Rogerclark
Ср 16 августа 2017 г., 22:32
Я думал, что SDIO - лучший способ повысить производительность, но он не доступен на синей таблетке, и Libmaple не имеет встроенной библиотеки для нее.
Хотя я думал, что на SDIO есть хотя бы одна ветка

victor_pv
Ср 16 августа 2017 г., 22:51
[Rogerclark - Ср 16 августа 2017 г., 22:32] - Я думал, что SDIO - лучший способ повысить производительность, но он не доступен на синей таблетке, и Libmaple не имеет встроенной библиотеки для нее.
Хотя я думал, что на SDIO есть хотя бы одна ветка
Есть один SDIO для F4. Я посмотрел на это и должен был быть неудачным прямо, чтобы преобразовать в Libmaple F1, только материал DMA отличается от периферийного устройства SDIO точно одинаково с другим базовым адресом, поэтому все регистры и определения битов действительны. Периферий SDIO доступна только на XC MCU или выше, так что нет чертежа, даже если я перенес драйвер Стив написал.

Пито
Чт 17 августа 2017 г. 6:32 утра
@ipsilondev: попробуйте запустить «скамейку».Ино "тест из SDFAT Repo. Используйте только 512bytes buffer и sdfatex.
Скачать последний https: // github.com/greiman/sdfat
На SPI2 (максимум 18 МГц) вы можете достичь ~ 1.7 МБ/с писать и ~ 1.6 МБ/с прочитайте макс с измерениями, которые мы сделали. На SPI1 (36 МГц) двойник.
Этот тест может показать вам пределы вашей карты.
ViewTopic.PHP?f = 13&t = 20&начало = 120#p17911

Racemaniac
Чт 17 августа 2017 г. 8:16
[victor_pv - Ср 16 августа 2017 г. 22:51] -
[Rogerclark - Ср 16 августа 2017 г., 22:32] - Я думал, что SDIO - лучший способ повысить производительность, но он не доступен на синей таблетке, и Libmaple не имеет встроенной библиотеки для нее.
Хотя я думал, что на SDIO есть хотя бы одна ветка
Есть один SDIO для F4. Я посмотрел на это и должен был быть неудачным прямо, чтобы преобразовать в Libmaple F1, только материал DMA отличается от периферийного устройства SDIO точно одинаково с другим базовым адресом, поэтому все регистры и определения битов действительны. Периферий SDIO доступна только на XC MCU или выше, так что нет чертежа, даже если я перенес драйвер Стив написал.
Мы должны действительно попросить поставщика сделать доски для Maple Mini/Blue Pill с F4 на нем xD
Я модифицировал Maple Mini's с STM32F411CEU6, который имеет 4-битный порт SDIO, представьте, что если вы можете купить их за 5-8 € в Китае XD (STM32F4 стоит 3 € в небольших томах на Aliexpress).

victor_pv
Чт 17 августа 2017 г., 13:53
[Racemaniac - Четверг 17 августа 2017 г. 8:16] - Мы должны действительно попросить поставщика сделать доски для Maple Mini/Blue Pill с F4 на нем xD
Я модифицировал Maple Mini's с STM32F411CEU6, который имеет 4-битный порт SDIO, представьте, что если вы можете купить их за 5-8 € в Китае XD (STM32F4 стоит 3 € в небольших томах на Aliexpress).
Я попытался отправить электронное письмо в VCC-GND.com о производстве чертежей с 303 (сделал эту пересадку и отлично работает), но даже не получил ответа.
Возможно, если их спрашивает...
Существует также возможность отправить файлы дизайна и список компонентов в производственный дом и посмотреть, сколько это будет стоить небольшой пробег, вероятно, не так дешево...

Ipsilondev
Пт 18 августа 2017 г. 12:08
[victor_pv - Ср 16 августа 2017 г., 21:41] - Мы можем получить несколько MB/S SD -карты, зависит от класса SDCARD среди других факторов, какого порта SPI вы используете, настройка скорости в порту и т. Д
Есть несколько потоков, говорящих о скоростях передачи SDCARD и многих тестах.
Это первый пост и первый тест, который я сделал, когда добавил возможности DMA в библиотеку SDFAT, просто проконсультировался с ним, чтобы проверить скорости, и тогда приближался к 2 МБ/с с буфером 4 КБ:
http: // www.STM32duino.com/viewtopic.PHP ... +Скорость#P27

С буфером 10 КБ, пока карта быстрая, вы должны получить хотя бы одинаковую скорость.
Если ваши изображения отформатированы таким образом, чтобы быть непосредственно записанным на дисплей, YI рекомендуется использовать двойную буферизацию и DMA как можно больше.
В то время как канал DMA загружает данные из SDCARD в один буфер, другой канал может писать из другого буфера на дисплей. Вы оптимизируете скорость переноса периферийных устройств одновременно, когда ЦП все еще может делать другие вещи, такие как планирование, что следующее, что нужно загружать из SDCARD, выполнение расчетов, входных данных и т. Д.

Какое ядро ​​вы используете, кстати?

Также может быть время перейти на более мощный MCU, такой как F4, хотя. Они работают быстрее и имеют аппаратный SP FPU, который может помочь вам с расчетами для графики, если вы используете SP.
Спасибо за подробный ответ !
Я использую синюю таблетку STM32F103C8T6. Я переулую все и посмотрю, что еще я могу получить :) Я хотел бы использовать F4, но расходы - это еще одно ограничение. Я не могу заплатить более 5 долларов за доску (а F4 самый дешевый - 10 долларов). Я планирую использовать STM32F103RCT6 для окончательной версии.
У вас есть какой -либо пример для этой двойной буферизации, чтобы отправить данные непосредственно в ЖК -дисплей? Это было бы очень полезно для фоновых операций !.

[Rogerclark - Ср 16 августа 2017 г., 22:32] - Я думал, что SDIO - лучший способ повысить производительность, но он не доступен на синей таблетке, и Libmaple не имеет встроенной библиотеки для нее.
Хотя я думал, что на SDIO есть хотя бы одна ветка
Я планирую использовать STM32F103RCT6 в качестве окончательной версии продукта, предполагается, что имеет 1 SDIO, и с этими цифрами все говорят мне, возможно, даже возможно это сделать :)
[Пито - Четверг 17 августа 2017 г. 6:32] - @ipsilondev: попробуйте запустить «скамейку».Ино "тест из SDFAT Repo. Используйте только 512bytes buffer и sdfatex.
Скачать последний https: // github.com/greiman/sdfat
На SPI2 (максимум 18 МГц) вы можете достичь ~ 1.7 МБ/с писать и ~ 1.6 МБ/с прочитайте макс с измерениями, которые мы сделали. На SPI1 (36 МГц) двойник.
Этот тест может показать вам пределы вашей карты.
ViewTopic.PHP?f = 13&t = 20&начало = 120#p17911
Спасибо за ссылку! Мой тест был сделан с использованием версии SDFAT-бета, так что я полагаю, что был мой испорченный ! Я попробую :)

Спасибо всем за все ответы ! Я перепровею и посмотрю, чего еще я мог бы достичь со всей этой новой информацией : D

Rogerclark
Пт 18 августа 2017 г., 21:00
Мне интересно, что вы говорите, что стоимость F4 слишком высока, и вы подразумеваете, что вы разрабатываете коммерческий продукт

Если так, я думаю, вы должны были ясно прояснить.

Ipsilondev
Пт 18 августа 2017 г., 21:23
[Rogerclark - Пт 18 августа 2017 г. 9:00 вечера] - Мне интересно, что вы говорите, что стоимость F4 слишком высока, и вы подразумеваете, что вы разрабатываете коммерческий продукт

Если так, я думаю, вы должны были ясно прояснить.
Да, идея, если я смогу достичь того, что я пытаюсь сделать с платформой. Извините, если бы я не сказал это ранее, я не знал, что необходимо прояснить, чтобы это могло спросить идеи / советы по этому вопросу на форуме, если моей целью было сделать коммерческий продукт.

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

Ipsilondev
Пт 18 августа 2017 г., 21:28
[Rogerclark - Пт 18 августа 2017 г. 9:00 вечера] - Мне интересно, что вы говорите, что стоимость F4 слишком высока, и вы подразумеваете, что вы разрабатываете коммерческий продукт

Если так, я думаю, вы должны были ясно прояснить.
Я отредактировал оригинальный пост и положил отказ от ответственности. Это нормально?

Опять же, я извиняюсь, если я нарушил какое -либо правило или оскорбил кого -либо моими сообщениями, это не было моим намерением вообще.

Пито
Пт 18 августа 2017 г., 21:48
Извините, если бы я не сказал это ранее, я не знал, что необходимо прояснить, чтобы это могло спросить идеи / советы по этому вопросу на форуме, если моей целью было сделать коммерческий продукт. Никто здесь не должен просить вас уточнить это..

Ipsilondev
Пт 18 августа 2017 г., 21:54
[Пито - Пт 18 августа 2017 г., 21:48] - Извините, если бы я не сказал это ранее, я не знал, что необходимо прояснить, чтобы это могло спросить идеи / советы по этому вопросу на форуме, если моей целью было сделать коммерческий продукт. Никто здесь не должен просить вас уточнить это..
Администратор только что сказал мне:
[Rogerclark - Пт 18 августа 2017 г. 9:00 вечера] - Мне интересно, что вы говорите, что стоимость F4 слишком высока, и вы подразумеваете, что вы разрабатываете коммерческий продукт

Если так, я думаю, вы должны были ясно прояснить.

Rogerclark
Пт 18 августа 2017 г. 22:07
Я создам некоторые правила форума, как я знаю, что в прошлом люди могут обидеть, если они чувствуют, что эффективно работают бесплатно над коммерческим продуктом, не зная этого.

Я вижу, что Пито, однако, рад ответить на вопросы для коммерческих продуктов.

Кроме того, в файле Readme для Libmaple есть уведомление, в котором говорится, что код экспериментален, и вы используете его на свой собственный риск.

Я не знаю, есть ли собственные STM Core или STM32 Generic есть эти отказы от ответственности.