SergeyB 0 22 июля, 2013 Опубликовано 22 июля, 2013 · Жалоба Взял проект от STM32_EVAL на FreeRTOS в IAR. Сделал из него новый проект и покоцал функциональность. Использую его для другой платы. Так вот, там есть объявление структуры GL_Page_TypeDef *GL_HomePage стартовой страницы GUI библиотеки для STM32. В полном рабочем проекте при запуске отладки в watch на эту структуру пишет : Expression | Value | Location | Type GL_HomePage | vst(0x0) | 0x20000D68 | struct GL_Page_TypeDef В сокращенной версии проекта Expression | Value | Location | Type GL_HomePage | mutex(0x0) | 0x20006640 | struct GL_Page_TypeDef При дальнем выделении памяти через malloc у рабоче проекта в Value адрес подставляется, а в сокращенном нет, так и остается mutex(0x0). Какого говорится фига такое происходит. Про такое Value вообще ничего не нашел. Может у меня изначально с конфигом криво, хотя уже вроде всё перерыл. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 22 июля, 2013 Опубликовано 22 июля, 2013 · Жалоба Смотря что цокали.. ? Размер heap ? Или может вообще сокращенную библоитеку поставли ? (емнип CLIB вместо DLIB) ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SergeyB 0 23 июля, 2013 Опубликовано 23 июля, 2013 · Жалоба убирал работу с теми устройствами, которых нет на плате. размер кучи. #define configTOTAL_HEAP_SIZE ( ( size_t ) ( 24 * 1024 ) ) самое интересное для меня, я не понимаю что означает vst(0x0) и mutex(0x0). Вообще не нашел, что это значит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 23 июля, 2013 Опубликовано 23 июля, 2013 · Жалоба Это не значит ничего. Отладчик напишет перевод известного ему адреса и все. Вы я правильно понял получаете нулл после вызова маллок-? проверяли? меньшие размеры пробовали? Мне кажется Вы умудрились выкинуть поддержку динамического выделения вообще. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SergeyB 0 25 июля, 2013 Опубликовано 25 июля, 2013 · Жалоба Это не значит ничего. Отладчик напишет перевод известного ему адреса и все. Вы я правильно понял получаете нулл после вызова маллок-? проверяли? меньшие размеры пробовали? Мне кажется Вы умудрились выкинуть поддержку динамического выделения вообще. видимо да. Просто я решил собрать проект с нуля и добавить туда библиотек, видимо это был не совсем правильный путь. Сейчас я просто взял уже готовый проект и выкинул все лишнее и заработало. Печалит только то, что не разобрался почему такое произошло. Могу скинуть проект в иаре, откомпилите может сразу поймете в чем проблема. Без проекта сложно понять со стороны. Но видимо проблема с настройками или библиотеками, так как при запуске отладчика сразу пишет mutex на глобального определения указателя на структуру. Если не сложно, гляньте что там криво, я только начал варится с операционкой, не до конца разобрался еще в тонкостях мой не работающий проект http://yadi.sk/d/cCbjU9ui7CIF0 из чего переделывал (работающий) http://yadi.sk/d/Jo3NMxXP7CIIA грусть начинается в файле gl_mgr.c -> функция GL_ShowMainMenu строка GL_HomePage = malloc(sizeof(GL_Page_TypeDef)); изначально в файле есть глобальное определение указателя GL_Page_TypeDef *GL_HomePage; вот с ним и косяк Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
framer 0 25 июля, 2013 Опубликовано 25 июля, 2013 · Жалоба а какой manager памяти? #define configTOTAL_HEAP_SIZE ( ( size_t ) ( 24 * 1024 ) ) используеться в heap_1.c и heap_2.c . При обертке heap_3.c берется скорей из проекта. Точно не знаю может из файла stm32f40x_flash.icf (define symbol __ICFEDIT_size_heap__ = 0x200;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться