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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Прошивки более 2Мб (для STM32)
dimone
сообщение Jul 4 2018, 08:26
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 100
Регистрация: 23-02-09
Пользователь №: 45 242



Хотел задать вопрос.
Если случится так, что программа усложнится настолько, что вынуждена будет превысить максмальное доступное кол-во внутренней флеш-памяти для семейства STM32 (насколько знаю и LPC) в два мегабайта, насколько рациональным будет использование внешней sdram для хранения исполняемого кода программы и данных?
Если да, то какое усложнение это за собой влечет (шаманство с линкером, загрузчики, data\nor spi мс памяти и тд..)?
Например реализация программы с вкомилированными растровыми фонтами всех видов и размеров для 429 или 769 дискавери..
Понимаю, что альтернатива , это какой-нибудь Аllwinner-овский soc и Линукс+Qt, но всё-же?.

Сообщение отредактировал dimone - Jul 4 2018, 08:30
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jul 4 2018, 08:33
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 838
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(dimone @ Jul 4 2018, 11:26) *
Понимаю, что альтернатива , это какой-нибудь Аlwinner-овский soc и Линукс иQt, но всё-же?

Нет, альтернатива - это подключить упомянутый Вами же LPC (хотя как видно Вы не очень их знаете) имеющий интерфейс SPIFI. SPIFI даст расширение FLASH программ МК на объём внешнего чипа SPI-FLASH.
А SDRAM тут вообще никаким боком, ведь Вам надо расширить non-volatile memory.
На других МК (не имеющих аналога SPIFI) смотреть/читать надо в сторону оверлеев (программисты старой закалки должны это знать со времён 640К на ПК и подкачки с диска). Или (в каких-то простых случаях нехватки места для const данных) - вручную делать подкачку с non-volatile носителя в общую область ОЗУ. Тут для красивости можно использовать MMU (если есть) или просто MPU.
Go to the top of the page
 
+Quote Post
dimone
сообщение Jul 4 2018, 08:39
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 100
Регистрация: 23-02-09
Пользователь №: 45 242



Почему non-volatile? Если линкеру указать адресное пространство внешнеи SDRAM и загрузить в оную при старте ОДИН , (как это делается в ПЛИС ),как вы сказали оверлей, то разве не будет работоспособным такое решение?..
п.с. с LPC действительно давно не работал, но насчет указаной фичи таки вспомнил, ее часто в холварах называют
Go to the top of the page
 
+Quote Post
scifi
сообщение Jul 4 2018, 08:41
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 959
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(dimone @ Jul 4 2018, 11:26) *
Например реализация программы с вкомилированными растровыми фонтами всех видов и размеров для 429 или 769 дискавери..

Очевидное решение - SPI флеш для хранения шрифтов и т.п., как уже отметил выше коллега. Эта штука работает достаточно быстро, чтобы можно было доставать оттуда шрифты на лету.
Go to the top of the page
 
+Quote Post
dimone
сообщение Jul 4 2018, 08:49
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 100
Регистрация: 23-02-09
Пользователь №: 45 242



Цитата(scifi @ Jul 4 2018, 11:41) *
Очевидное решение - SPI флеш для хранения шрифтов

Извиняюсь, что привел пример программы со шрифтами в основе, оно направляет мышление в другое русло, -подкачки, фс, ttf..
Пусть будет сферическая программа в вакууме, но с покером и ..... , т.е. значительного размера (превышающего 2 Мб для stm))
монопрогрмма , с сегментированнием, без и использования MМU и оверлеев.
Go to the top of the page
 
+Quote Post
scifi
сообщение Jul 4 2018, 08:56
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 959
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(dimone @ Jul 4 2018, 11:49) *
Пусть будет сферическая программа в вакууме, но с покером и ..... , т.е. значительного размера (превышающего 2 Мб для stm))

Ещё Билл Гейтс пророчески заявлял: "640K ought to be enough for anyone". Вот даже не знаю, что это должна быть за программа, чтобы там было 2 мегабайта кода. Вы столько за всю жизнь не напрограммируете. В общем, я бы не парился.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jul 4 2018, 09:06
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 4 838
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(dimone @ Jul 4 2018, 11:39) *
Почему non-volatile? Если линкеру указать адресное пространство внешнеи SDRAM и загрузить в оную при старте ОДИН , (как это делается в ПЛИС ),как вы сказали оверлей, то разве не будет работоспособным такое решение?..

Будет. Только: а) это уже не оверлей (прочитайте что это такое); б) тогда говорить надо не о SDRAM, а о связке SDRAM+внешняя_FLASH.

Цитата(dimone @ Jul 4 2018, 11:49) *
Пусть будет сферическая программа в вакууме, но с покером и ..... , т.е. значительного размера (превышающего 2 Мб для stm))
монопрогрмма , с сегментированнием, без и использования MМU и оверлеев.

В смысле - в 2MB не лезет код??? А Вы реально можете написать такую программу? И написать до того, как появятся МК с бОльшим объёмом flash? biggrin.gif
Нет, я конечно встречал такие шедевры "программирования", где кажется, что автор не знает что такое циклы и лепит код копипастом. Который, к тому же, настолько кривой, что не работает с включённой оптимизацией в компиляторе выше чем уровень 0. Так пожалуй можно написать и на 2МБ. Но это - скорее клиника.

PS: Вопрос, имхо, о сферическом коне в вакууме....
Go to the top of the page
 
+Quote Post
dimone
сообщение Jul 4 2018, 09:24
Сообщение #8


Частый гость
**

Группа: Участник
Сообщений: 100
Регистрация: 23-02-09
Пользователь №: 45 242



Цитата(jcxz @ Jul 4 2018, 12:06) *
Будет. Только: а) это уже не оверлей (прочитайте что это такое); б) тогда говорить надо не о SDRAM, а о связке SDRAM+внешняя_FLASH.

-чисто технически, по отношению к МК со встроенной флеш-пямятью, программа превышает допустимый ее размер, и требует загрузки, что несомненно.)
Внешняя FLASH как вариант, что позволит не заморачиваться с загрузчиками, но уже имея установленную внешнюю SDRAM и внешнюю SPI non-volatilе память,
хотелось попробовать с имеющимися средствами запустить хотя-б "хелло ворлд" из внешей памяти..
Осозню, что это костыли, тем более ST за 10 лет так и не удосужились сделать как Атмел САМБу, что-б можно было лить во внешний чип, но
Go to the top of the page
 
+Quote Post
AVR
сообщение Jul 4 2018, 09:38
Сообщение #9


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 296
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Присоединяюсь к скепсису коллег: какой процент занимает непосредственно код, а что данные (шрифты, тексты меню и тому подобное)? Не верю в код для stm32 более мегабайта. Можете намекнуть? Всё что больше мегабайта, это скорее тянет на проект для ОС Linux, а не stm32 - там понятно, много библиотек, много функционала.


--------------------
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jul 4 2018, 09:43
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 4 838
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(dimone @ Jul 4 2018, 12:24) *
хотелось попробовать с имеющимися средствами запустить хотя-б "хелло ворлд" из внешей памяти..

"Просто запустить" - ничего сложного. Вопрос тут - зачем? Для штатной работы устройства это малополезно (как написали выше), но может быть полезно для отладки. Я сам часто использую отладку кода в SDRAM (там где SDRAM есть). Это существенно ускоряет процесс отладки. Грузит код в SDRAM при этом отладчик.
А оверлеи могут быть полезны на системах с разными типами памяти программ (разноскоростными).
Go to the top of the page
 
+Quote Post
serglg
сообщение Jul 4 2018, 09:44
Сообщение #11


Частый гость
**

Группа: Участник
Сообщений: 143
Регистрация: 19-07-16
Пользователь №: 92 603



Думаю,что как и 20 лет назад в 8-битниках основной объем всех программ - тексты, таблицы и проч.
А сейчас - заготовки графики, анимаций и проч.
И всё это прекрасно хранится в spi flash. :-)
Go to the top of the page
 
+Quote Post
dimone
сообщение Jul 4 2018, 11:43
Сообщение #12


Частый гость
**

Группа: Участник
Сообщений: 100
Регистрация: 23-02-09
Пользователь №: 45 242



..ну, к примеру ,раз про шрифты зашло, -движок распаковки ttf, кодеки, микропитон, ТСР\ІР все протоколы..
Go to the top of the page
 
+Quote Post
scifi
сообщение Jul 4 2018, 11:52
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 959
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(dimone @ Jul 4 2018, 14:43) *
..ну, к примеру ,раз про шрифты зашло, -движок распаковки ttf, кодеки, микропитон, ТСР\ІР все протоколы..

Это что за устройство такое, стесняюсь спросить? Смартфон что ли?
Go to the top of the page
 
+Quote Post
dimone
сообщение Jul 4 2018, 11:59
Сообщение #14


Частый гость
**

Группа: Участник
Сообщений: 100
Регистрация: 23-02-09
Пользователь №: 45 242



В существующем дивайсе, на растеризованыйи Arial шести минимально необходимых размеров, где лишь кириллица и цифры, причем большие размры лишь цифры,
для оледа 256х 64 , уже тянет на 1Mб.. для LCD этого явно не хватит..
аналог
https://www.systecnet.com/en/products/IT3.html
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jul 4 2018, 12:28
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 4 838
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(dimone @ Jul 4 2018, 14:59) *
В существующем дивайсе, на растеризованыйи Arial шести минимально необходимых размеров, где лишь кириллица и цифры, причем большие размры лишь цифры,
для оледа 256х 64 , уже тянет на 1Mб.. для LCD этого явно не хватит..

256x64 - это размер LCD или размер одного символа?
Если первое, то у меня есть проект с LCD 320x240 с 10-ю растеризованными TTF (латинница, кириллица, и весь диапазон ASCII 0x20...0x3F) и двумя кодеками. Так вот: секция со шрифтами весит ~40кБ, весь скомпилённый проект во флешь ~221кБ. Как бы всего-то ~10% от 2МБ. И там ещё куча всего кроме вышеозвученного. laughing.gif
А если 2-е, то как тут уже писали: шрифты нетрудно хранить во внешней FLASH, последовательной или параллельной.

А "TCP/IP все протоколы" - неужто так и все из в мире придуманных используются? cool.gif
А если только самые распространённые, то думаю в худшем случае уложатся килобайт в 60.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 16th July 2018 - 00:40
Рейтинг@Mail.ru


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