zltigo 2 31 марта, 2008 Опубликовано 31 марта, 2008 · Жалоба ..код для оценки использования кучи FreeRTOS.. Менеджеры памяти первыми у меня пошли под нож. То, что в комплекте вообще не менежеры и "заглушки" - нет даже элементарно реализуемых вещей, вроде склейки свободных блоков в один, вообще списка занятых блоков, управления памятью в нескольких первичных блоках, захвата всей свободной памяти, ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
klen 1 31 марта, 2008 Опубликовано 31 марта, 2008 · Жалоба Менеджеры памяти первыми у меня пошли под нож. То, что в комплекте вообще не менежеры и "заглушки" - нет даже элементарно реализуемых вещей, вроде склейки свободных блоков в один, вообще списка занятых блоков, управления памятью в нескольких первичных блоках, захвата всей свободной памяти, ... я подумал что это специально так сделано. чтоб самому быстренько доделывать. Склейка вроде бы есть, но я ее всеравно сам сделел. Потом понял что для моих задач менежмент памяти вообще не нужен. проще оказалось все сразу впихнуть в озу и жить с этим. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 1 апреля, 2008 Опубликовано 1 апреля, 2008 · Жалоба Потом понял что для моих задач менежмент памяти вообще не нужен. Грамотный менеджмент памяти полезен всегда, даже если память динамически не освобождается. Банально посмотреть на кто сколько памяти скушал и, например, покопаться по очередям/буферам не имея листинга для этой конкретной сборки, контексты задач/стеки видны... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 5 апреля, 2008 Опубликовано 5 апреля, 2008 · Жалоба Официальная декларация фич появилась: Changes between V4.7.2 and V4.8.0 released March 26 2008 + Added a Virtex4 PowerPC 405 port and demo application. + Added optional stack overflow checking and new uxTaskGetStackHighWaterMark() function. + Added new xQueueIsQueueEmptyFromISR(), xQueueIsQueueFullFromISR() and uxQueueMessagesWaitingFromISR() API functions. + Efficiency improvements to the Cortex-M3 port layer. NOTE: This requires that an SVC handler be installed in the application. + Efficiency improvements to the queue send and receive functions. <--- Этим стоит воспользоваться + Added new trace macros. These are application definable to provide a flexible trace facility. + Implemented the configKERNEL_INTERRUPT_PRIORITY within the Keil Cortex M3 port layer (bringing it up to the same standard as the IAR and GCC versions). + Ports that used the arm-stellaris-eabi-gcc tools have been converted to use the arm-non-eabi-gcc tools. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alechek 0 7 апреля, 2008 Опубликовано 7 апреля, 2008 · Жалоба Выложил обновленнную копию сайта с API на фтп Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 17 апреля, 2008 Опубликовано 17 апреля, 2008 · Жалоба Версия обозванная 5.0.0 официально объявилась + Stack overflow checking. + Powerful kernel trace macros. + Task hook functions. Other news: + A port and demo application are now provided for the Xilinx Virtex4 PowerPC. + For the second year running, FreeRTOS.org will be presenting classes at the Microchip Masters Worldwide Conference in Phoenix, Az. + OpenRTOS licensing is now available on a product line basis - simplifying further the administration for those requiring commercial licenses, development or support. Go to http://www.FreeRTOS.org for full information. *** VERY IMPORTANT INFORMATION ON UPGRADING TO FREERTOS.ORG V5.0.0 *** The parameters to the functions xQueueSendFromISR(), xQueueSendToFrontFromISR(), xQueueSendToBackFromISR() and xSemaphoreGiveFromISR() have changed. You must update all calls to these functions to use the new calling convention! Your compiler might not issue any type mismatch warnings! See http://www.FreeRTOS.org/upgrading.html for full information. It is understood that this change may cause some minor inconvenience. The change has been made in response to numerous change requests, and makes this family of API functions consistent with the calling convention used by xQueueReceiveFromISR(). I hope you agree that the benefits outweigh the inconvenience. ***Remember*** - all calls to xQueueSendFromISR(), xQueueSendToFrontFromISR(), xQueueSendToBackFromISR() and xSemaphoreGiveFromISR() MUST be updated to use the new calling convention. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 1 июня, 2008 Опубликовано 1 июня, 2008 · Жалоба V5.0.2 + Updated the PIC32 port to allow queue API calls to be used from interrupts above the kernel interrupt priority, and to allow full interrupt nesting. Task stack usages has also been reduced. + Added a new PowerPC port that demonstrates how the trace macros can be used to allow the use of a floating point co-processor. The traceTASK_SWITCHED_OUT() and traceTASK_SWITCHED_INT() macros are used to save and restore the floating point context respectively for those tasks that actually use floating point operations. + BUG FIX: The first PPC405 port contained a bug in that it did not leave adequate space above the stack for the backchain to be saved when a task started to execute for the first time. + Updated queue.c to add in the means to allow interrupt nesting and for queue API functions to be called from interrupts that have a priority above the kernel priority. This is only supported on PIC32 ports thus far. + Fixed the compiler warnings that were generated when the latest version of WinAVR was used. + Remove all inline usage of 'inline' from the core kernel code. + Added the queue registry feature. The queue registry is provided as a means for kernel aware debuggers to locate queue definitions. It has no purpose unless you are using a kernel aware debugger. The queue registry will only be used when configQUEUE_REGISTRY_SIZE is greater than zero. + Added the ST Cortex-M3 drivers into the Demo/Common/Drivers directory to prevent them from having to be included in multiple demos. + Added a Keil STM32 demo application. + Changed the blocktim.c test files as it is no longer legitimate for all ports to call queue API functions from within a critical section. + Added the IntQueue.c test file to test the calling of queue API functions from different interrupt priority levels, and test interrupt nesting. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
klen 1 1 июня, 2008 Опубликовано 1 июня, 2008 · Жалоба это хорошо за что я люблю FreeRTOS? за то что она как пластилин - изогнуть мехом вов нутрь можно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
cpl 0 29 июня, 2008 Опубликовано 29 июня, 2008 · Жалоба P.S. Я, лично, использую операционные системы для экономии памяти, а не наоборот. Поясните пожалуйста, как это ? В чем экономия в отличии от системы без ОС ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 29 июня, 2008 Опубликовано 29 июня, 2008 · Жалоба Поясните пожалуйста, как это ? В чем экономия в отличии от системы без ОС ? Да, мне тоже интересно, где экономия памяти... Но одно можно сказать, время ОЧЕНЬ экономится - а это порой ещё важнее чем несчастные сэкономленные килобайты памяти... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 1 июля, 2008 Опубликовано 1 июля, 2008 · Жалоба Да, мне тоже интересно, где экономия памяти... У меня экономия памяти на задачах которые в данный момент не работают (совсем не работают - не созданы) и задачах количество которых меняется в заисимости от конфигурации. Например, задача начальной инициализации отрабатывает и умирает навсегда. Задачи калибровок и самодиагностики работают (cуществуют) только тогда, когда не запущена задача консоли оператора,.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Desenix 0 2 июля, 2008 Опубликовано 2 июля, 2008 · Жалоба с данной ОС совсем не знаком, но тут прочитал что у нее есть менеджер памяти, а кто нибудь может кратенько объяснить как он устроен ? я не представляю себе такой менеджер без поддержки MMU в процессоре. Ведь фрагментация возникать должна, а как с ней бороться ? если указатели уже розданы задачам. PS: подумываю об использовании ОС. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 2 июля, 2008 Опубликовано 2 июля, 2008 · Жалоба ..а кто нибудь может кратенько объяснить как он устроен ? Проще посмотреть исходник там несколько десятков строчек. Все минималистично до безобразия - надо использовать более сложный со склейкой освобожденных блоков и поиском более подходящих а не первого попавшегося. С дефрагментацией бороться только организационно - запрос блоков памяти фиксированных размеров, проход через освобождение нескольких последних выделенных блоков.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Desenix 0 2 июля, 2008 Опубликовано 2 июля, 2008 · Жалоба по поводу фрагментации, у меня еще мысль возникла, если использовать не просто прямой указатель на блок памяти, а указатель на указатель. Тогда второй(системный) можно перемещать вместе с блоком памяти, а первый(пользовательский) изменятся не будет. Правда все это надо учесть при написании кода. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
cpl 0 2 июля, 2008 Опубликовано 2 июля, 2008 · Жалоба У меня экономия памяти на задачах которые в данный момент не работают (совсем не работают - не созданы) и задачах количество которых меняется в заисимости от конфигурации. Например, задача начальной инициализации отрабатывает и умирает навсегда. Задачи калибровок и самодиагностики работают (cуществуют) только тогда, когда не запущена задача консоли оператора,.... Тепрь понятно что имелось в виду, Выжимка из всего что есть.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться