FormatCft 0 7 октября, 2008 Опубликовано 7 октября, 2008 · Жалоба Доброго времени суток! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Есть ли у кого своя реализация Heap_x.c? А то, что то не хочется использовать реализации которые есть (то без чистки памяти, то без объединения свободных блоков). ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2. Еще вопрос по heap_3.c. Этот хип использует стандартный Си-шный хип или просто есть возможность его использовать? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 7 октября, 2008 Опубликовано 7 октября, 2008 · Жалоба Есть ли у кого своя реализация Heap_x.c? Делал свою реализацию именно по причине реализации объединения свободных блоков, алгоритма поиска наиболее подходящего, получения списка как занятых, так и свободных, добавления маркера владельца блока, организации поддержки вложеных менеджеров и сегментированного Heap. К делу не относится, но еще были объединены блоки памяти под TCB и Stack. Еще вопрос по heap_3.c. Этот хип использует стандартный Си-шный хип или просто есть возможность его использовать? Если посмотрите, то это просто обертка. Проблема в том, "стандартного Сишного" в природе не существует - только некие "коты в мешке" с непонятной функциональностью. Нет смысла использовать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FormatCft 0 7 октября, 2008 Опубликовано 7 октября, 2008 · Жалоба Делал свою реализацию именно по причине реализации объединения свободных блоков, алгоритма поиска наиболее подходящего, получения списка как занятых, так и свободных, добавления маркера владельца блока, организации поддержки вложеных менеджеров и сегментированного Heap. Ого! Значительные навороты! ! ! Можно у Вас попросить поделиться результатами Ваших трудов? Был бы очень благодарен! Или хотябы подсказать в каком направлении двигаться. К делу не относится, но еще были объединены блоки памяти под TCB и Stack. Мне кажется, что относится :) Т.е. это что-то типа не запутывать себя и не следить за каждой из областей, а сразу за двумя? Если посмотрите, то это просто обертка. Проблема в том, "стандартного Сишного" в природе не существует - только некие "коты в мешке" с непонятной функциональностью. Нет смысла использовать. Понял. Т.е. есть смысл найти открытый нормально написанный или попыхтеть "немножко" и написать своё :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sergeeff 1 7 октября, 2008 Опубликовано 7 октября, 2008 · Жалоба В этом плане можно воспользоваться TLSF: Memory Allocator for Real-Time - http://rtportal.upv.es/rtmalloc/node/8. Испанская разработка. Компактная и быстрая. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FormatCft 0 7 октября, 2008 Опубликовано 7 октября, 2008 (изменено) · Жалоба В этом плане можно воспользоваться TLSF: Memory Allocator for Real-Time - http://rtportal.upv.es/rtmalloc/node/8. Испанская разработка. Компактная и быстрая. Спасибо за ссылку! ! ! Т.е. вы её как я понял используйте? Если используйте, то нет ли каких-нибудь багов или малопреятных мелочей? :) Version 2.4.3 тестили? Изменено 7 октября, 2008 пользователем FormatCft Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 7 октября, 2008 Опубликовано 7 октября, 2008 · Жалоба Можно у Вас попросить поделиться результатами Ваших трудов? Был бы очень благодарен! Я подумаю. Основная проблема не в "секретности" а некоторой заточенности под несколько отличающееся от стандартного окружение и желательную чистку и комментирование перед раздачей :) Мне кажется, что относится :) Т.е. это что-то типа не запутывать себя и не следить за каждой из областей, а сразу за двумя? Нет, прежде всего прямое сокращение TCB на указатель и косвенное на один MCB. Понял. Т.е. есть смысл найти открытый нормально написанный или попыхтеть "немножко" и написать своё :) Да, так. Компактная и быстрая. Ну несколько монументальна :). Но в качестве объекта для изучения безусловно годится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FormatCft 0 7 октября, 2008 Опубликовано 7 октября, 2008 · Жалоба Я подумаю. Основная проблема не в "секретности" а некоторой заточенности под несколько отличающееся от стандартного окружение и желательную чистку и комментирование перед раздачей :) Спасибо! Буду с нетерпением ждать :) Нет, прежде всего прямое сокращение TCB на указатель и косвенное на один MCB. Ясно. Небольшая экономия места. Ну несколько монументальна :). Но в качестве объекта для изучения безусловно годится. Т.е. я так понял, что для МК-го применения не подходит из-за того, что слишком много времени кушает? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sergeeff 1 7 октября, 2008 Опубликовано 7 октября, 2008 · Жалоба Спасибо за ссылку! ! ! Т.е. вы её как я понял используйте? Если используйте, то нет ли каких-нибудь багов или малопреятных мелочей? :) Version 2.4.3 тестили? Тестировал 2.4.2. Включил в свой проект и погонял свое устройство день. Все работало, как и с прежним аллокатором BGET (тоже известная вещь), т.е. никаких проблем замечено не было. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 7 октября, 2008 Опубликовано 7 октября, 2008 · Жалоба Т.е. я так понял, что для МК-го применения не подходит из-за того, что слишком много времени кушает? Подходит. Время дело второе. Просто излишества есть, типа сервисных наворотов, realloc(),.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Terminator 0 7 октября, 2008 Опубликовано 7 октября, 2008 · Жалоба Запустил в своём проекте heap_3 arm-elf-gcc + newlib небольшие правки syscalls.c, вообщем получилось как костыль. Пока работает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FormatCft 0 7 октября, 2008 Опубликовано 7 октября, 2008 · Жалоба Подходит. Время дело второе. Просто излишества есть, типа сервисных наворотов, realloc(),.... Понял. Сейчас только жду вашей версии! :) Запустил в своём проекте heap_3 arm-elf-gcc + newlib небольшие правки syscalls.c, вообщем получилось как костыль. Пока работает. Спасибо! Костыли мне еще рано )) Я думаю, что буду использовать что-то из 2х предложенных вариантов (скорее всего вариант ЗлтИго) :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sergeeff 1 7 октября, 2008 Опубликовано 7 октября, 2008 · Жалоба To zltigo: А в чем уважаемый гуру вы усмотрели "монументальность" TLSF аллокатора? По моему ничего особо навороченного там нет, а блоки выделяются достаточно шустро, и довольно изящно частично решена задача дефрагментации освобождаемой памяти. Да и с самого начала разрабатывалась для embedded применений. Я не агент команды, написавшей TLSF, просто интересно уяснить для себя про монументальность. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 7 октября, 2008 Опубликовано 7 октября, 2008 · Жалоба А в чем уважаемый гуру вы усмотрели "монументальность" TLSF аллокатора? По моему ничего особо навороченного там нет... Ничего особо, естественно, нет, но некоторые излишества универсальности присутствуют. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FormatCft 0 7 октября, 2008 Опубликовано 7 октября, 2008 (изменено) · Жалоба опсотв )) Изменено 7 октября, 2008 пользователем FormatCft Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sergeeff 1 7 октября, 2008 Опубликовано 7 октября, 2008 · Жалоба Ничего особо, естественно, нет, но некоторые излишества универсальности присутствуют. Сразу пришла на ум легендарная фразы Вицина из "Кавказской пленницы" : "И излишества всякие, нехорошие ..." Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться