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

Выделение памяти в языках высокого уровня.

Насчёт МК, возможно будет интересно посмотреть FreeRTOS реализацию:

Memory Management

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


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

On 11/14/2022 at 11:13 AM, Forger said:

Читайте внимательнее:

 

хм. запретить в ран-тайм переписывать скрипт? как то не подумал, вполне себе решение.

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


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

Just now, jenya7 said:

как то не подумал, вполне себе решение.

Переписали скрипт - ребутнули девайс для его обновления. Для мк это доли сек.

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


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

On 11/14/2022 at 11:19 AM, Forger said:

Переписали скрипт - ребутнули девайс для его обновления. Для мк это доли сек.

ок. спасибо. это решение. 

тут вот ещё что подбешивает - в линкере я ж дожен заранее выделить место под хип. надо же знать сколько выделять.

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

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


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

У себя в одном из проектов использовал такую схему: девайс при подключении к компу видился как флэшка с файлами, среди которых и json файл с настройками, картинками/шрифтами GUI и т.п.

При отключении девайса от ПК автоматом производился ребут устройства с последующей загрузкой обновленного скрипта (тупо мониторится наличие питания на VBUS).

Если нужно хранить только скрипт, то можно использовать для этого собственную флэш память МК (если память позволяет, ведь FAT-12 тоже требует места), тогда для доступа к нему не обязательно копировать его в ОЗУ для последующей работы, а читать прямо из флэш, если не нужна высокая скорость.

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


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

On 11/14/2022 at 11:25 AM, Forger said:

У себя в одном из проектов использовал такую схему: девайс при подключении к компу видился как флэшка с файлами, среди которых и json файл с настройками, картинками/шрифтами GUI и т.п.

При отключении девайса от ПК автоматом производился ребут устройства с последующей загрузкой обновленного скрипта (тупо мониторится наличие питания на VBUS).

Если нужно хранить только скрипт, то можно использовать для этого собственную флэш память МК (если память позволяет, ведь FAT-12 тоже требует места), тогда для доступа к нему не обязательно копировать его в ОЗУ для последующей работы, а читать прямо из флэш, если не нужна высокая скорость.

ну да, я что то ступил. я ж сам скрипт сохраняю во флеш а при поднятии из флеш "компилирую" в оперативную память. так сохранять во флэш уже в компилированном виде. но тогда непонятно как это делать если не выделять всё место под целый скрипт - компилировать по кускам и сразу этот кусок прожигать во флешь?

 

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

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


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

1 hour ago, gridinp said:

Насчёт МК, возможно будет интересно посмотреть FreeRTOS реализацию:

Memory Management

также есть описание/подход uC/OS https://micrium.atlassian.net/wiki/spaces/osiidoc/pages/163866/Memory+Management

ну а у "взрослых", насколько я помню, malloc вызывает системный sbrk от которого и получает память. а уж как ее дефрагментировать и вообще управлять - это хитрая задачка внутри ядра

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

 

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


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

On 11/14/2022 at 12:47 PM, yes said:

также есть описание/подход uC/OS https://micrium.atlassian.net/wiki/spaces/osiidoc/pages/163866/Memory+Management

ну а у "взрослых", насколько я помню, malloc вызывает системный sbrk от которого и получает память. а уж как ее дефрагментировать и вообще управлять - это хитрая задачка внутри ядра

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

 

чем начинать мутить свой Memory Management так может лучше сразу OS поставить.

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


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

19 minutes ago, jenya7 said:

чем начинать мутить свой Memory Management так может лучше сразу OS поставить.

Это две разные вещи. Одно другому не мешает, но друг друга дополняют.

Не все ОС имеют менеджер кучи, зачастую хватает штатного, который дает компилятор в своих библиотеках.

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


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

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

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

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

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

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

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

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

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

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