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

    

den_po

Участник
  • Публикаций

    139
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о den_po

  • Звание
    Частый гость
  • День рождения 18.06.1979

Информация

  • Город
    Санкт-Петербург
  1. Вышла FreeRTOS V4.0.5 ... 8.2.3

    Цитата(zltigo @ Jan 23 2016, 18:09) В том-то и дело, что менеджер памяти знает их расположение. А через костыли это как раз то, что Вам так понравилось. Менеджер памяти обычно не знает, расположение чего он знает. Без правки хотя бы части операционки (тоже костыль) "посмотреть на ходу что где находится и чем и насколько зянято" (выделенную операционкой память) вы не сможете, вы узнаете только, что есть вот столько-то выделенных кусочков памяти. Жду от вас пару поучительных историй о том, как вам на практике безмерно помогло подобное знание. Цитата(zltigo @ Jan 23 2016, 18:09) Несколько секунд времени единожды потраченные на запуск не являются сколь-нибудь заметой ценой за саму возможность ОБОЙТИСЬ МЕНЬШИМ КОЛИЧЕСТВОМ ПАМЯТИ, которую дает менеджер памяти. Нередко многократное пересоздание объектов операционки нафик ненужно. В этом случае именно отказ от использования кучи позволит сэкономить. Цитата(zltigo @ Jan 23 2016, 18:09) Толку от того, что Вы так, или иначе узнали, что памяти нехватило? Нужны механизмы для борьбы с нехваткой памяти и один из механизмов это менеджер памяти от отсутствия которого Вы испытываете радость. Ну да, ну да, стоит взять менеджер памяти, и сразу памяти станет завались. Вы опять, как и в другой дискуссии, придумываете за меня, о чём я думаю. Я не предлагаю полностью отказаться от менеджера памяти. У меня есть проекты с ним, частично с ним (куча используется только внутри FreeRTOS) и вообще без него. Но если есть возможность обойтись без него там, где он нафик не нужен, я буду этой возможностью пользоваться.
  2. Вышла FreeRTOS V4.0.5 ... 8.2.3

    Цитата(zltigo @ Jan 23 2016, 11:20) Вы же сами написали, что хотьте для посмотреть в дополнение к мар еще и отладчик. Не удобно, уже писал, к сосне все это доставлять и подключать. Так пользуйтесь теми вариантами, к которым вы привыкли. Оттого, что ВЫ будете говорить операционке, где хранить данные, контроль над данными не уменьшается, а даже наоборот, ведь структуры FreeRTOS от пользователя скрыты, а значит и добраться до внутренних данных, выделенных операционкой, можно только через костыли. Цитата(zltigo @ Jan 23 2016, 11:20) УБИРАНИЕ возможности спросить у менеджера памяти распредерение и принадлежность блоков памяти никак не может служить "ускорением" чего либо. Никто ничего не убирал. Вместо одного способа стало три - динамическое выделение памяти функциями FreeRTOS, динамическое выделение пользователем, выделение компилятором (с подсказкой пользователя, конечно). В одном случае я могу узнать, что перестал влезать в допустимый объём памяти, только после запуска, а в другом на этапе сборки. Вы же не будете спорить, что чем раньше обнаружится проблема, тем лучше?
  3. Вышла FreeRTOS V4.0.5 ... 8.2.3

    Цитата(zltigo @ Jan 22 2016, 23:07) А при динамическом выделении что Вашим объектам мешает жить вечно? Ничего не мешает. Просто присутствует иногда лишняя сущность. Цитата(zltigo @ Jan 22 2016, 23:07) Удалить-то, очевидно, можно, но память больше никогда обратно в распоряжение работающей прошивки не получите. Глупости же. Цитата(zltigo @ Jan 22 2016, 23:07) Очень "удобно" хранить мапы для всех версий прошивок. То был ответ на "посмотреть на ходу что где находится и чем и насколько зянято". Смотреть, что где находится, теперь не обязательно "на ходу". И это действительно удобно. В остальном абсолютно ничего не мешает ВАМ смотреть то же самое точно так же, как вы делали с динамическим выделением. Да и использовать статические буферы вас никто не заставляет. Цитата(zltigo @ Jan 22 2016, 23:07) Да, да, на объекте где нибудь в тайге на сосне компьютер, установленый на нем софт, Адаптер и обученый человек это самое то . Чем же на сосне динамическое выделение внутрях FreeRTOS, по-вашему, так сильно превосходит статическое? Цитата(zltigo @ Jan 22 2016, 23:07) Зачем??? Затем, что удобней. Можно раньше проблему найти.
  4. Вышла FreeRTOS V4.0.5 ... 8.2.3

    Цитата(zltigo @ Jan 22 2016, 17:40) Притащили эту кастрацию из SafeRTOS где эта муть была сделана в угоду формальной сертификации. Нет никаких причин не использовать менеджер памяти. Без него ни удалить задачи-буфера и прочее,Лично я ждал эту фишку как раз ради объектов, которые живут вечно. Но и удалить тоже ничто не мешает. Или я чего-то не знаю? Цитата(zltigo @ Jan 22 2016, 17:40) ни посмотреть на ходу что где находится и чем и насколько зянято. .map, отладчик Цитата(zltigo @ Jan 22 2016, 17:40) В общем дурацкое "приобретение" . Не смогли написать нормальный портируемый менеджер памяти Отличное приобретение. Особенно когда оно помогает распределять память на этапе сборки.
  5. Вышла FreeRTOS V4.0.5 ... 8.2.3

    Цитатаnow all RTOS objects can be created using statically allocated memory УРА!
  6. FreeRTOS and CPP

    Цитата(k155la3 @ Dec 20 2015, 12:42) Сомнения, до определенной степени, крайне полезны. Проверить отработку конструкторов можно "оттрасировав" через дебагер стартап-код, который для CPP. Это если речь о конструкторах глобальных объектов или статических членов классов. А выше разговор шёл об использовании new. Цитата(k155la3 @ Dec 20 2015, 12:42) В (IAR) опциях проекта/дебагера надо заменить стандартную метку (которая соотв-ет main), на метку стартап-кода. Обычно достаточно снять галочку возле "main"
  7. Ошибка Access Violation при компиляции

    Если IAR - ограниченная версия, то в техподдержке вроде как пошлют. Всякоразные баги IAR (а таких действительно хватает) иногда лечатся отключением оптимизации.
  8. FreeRTOS and CPP

    Будут
  9. FreeRTOS and CPP

    Цитата(haker_fox @ Dec 16 2015, 04:49) Ах, да.. забыл... нужно что-то решать с динамическим выделением памяти, если оно используется в проекте на си++. Яимею в виду new и delete. а что там, собственно, решать? Кодvoid* operator new(size_t sz) {     return pvPortMalloc(sz); } void* operator new[](size_t sz) {     return pvPortMalloc(sz); } void operator delete(void* p) {     vPortFree(p); } void operator delete[](void* p) {     vPortFree(p); } void* operator new(size_t size, void* p) {     (void)size;     return p; } void* operator new[](size_t size, void* p) {     (void)size;     return p; } void operator delete(void*, void*) { } void operator delete[](void*, void*) { }
  10. Цитата(inventor @ Dec 8 2015, 17:29) /* Get the next character from the buffer. Return false if no characters are available, or arrive before xBlockTime expires. */ while (xQueueReceive(qRxGsmQueue, &byte, 0) && i < len) { 0?
  11. Непонятный вoрнинг

    Цитата(scifi @ Dec 7 2015, 16:41) В качестве конвертера можно взять Swiss File Knife. Простая и понятная штука. В числе прочего может пробежаться по директориям и конвертировать символы окончания строки. Ещё есть хорошая штука - astyle, которая форматирует исходники (бесценно, когда получаешь исходники от иных мастеров), а ещё умеет и конец строки заменять. xxx: У тебя виндовый конец строки yyy: давай без оскорблений
  12. IAR MSP430 оптимизатор кода

    Не увидел в цитатах ничего про то, кому требуется.
  13. IAR MSP430 оптимизатор кода

    Цитата(k155la3 @ Nov 5 2015, 18:07) #pragma location=0x1000 __root const TTestFlashStr InfoSegConst= { '1', '2', '3', '4', '5', '6' }; #pragma required=InfoSegConst Хм. А разве pragma required не перед определением используется?
  14. v5

    Цитата(dxp @ Dec 1 2015, 16:37) Начал править С-style cast'ы, проверяю, опять ругань, но уже на другие места: Remark[Pa137]: use of C-style cast D:\pro\scmRTOS\scmrtos-sample-projects\scmRTOS\port\avr\iar\os_target.h 228 А код, на который ругается, такой: КодINLINE stack_item_t* get_data_sp()   { return reinterpret_cast<stack_item_t*>(ABS_WORD(28)); } В общем, этот линтер иаровский не выглядит инструментом, который хочется использовать. #define ABS_WORD(x) (*((volatile uint16_t*)x))
  15. Создание-удаление задач

    Цитата(MiklPolikov @ Nov 9 2015, 00:15) Как это решит проблему, если все стандартные системы выделения памяти heap1...heap5 не умеют дефрагментировать кучу, т.е. не умеют склеивать стоящие рядом пустые куски кучи ? Как это не умеют?