Название: Проблемы с памятью WinCE. 0x80000002 Отправлено: dd от Декабрь 07, 2010, 10:18 Два дня бьюсь, на ровном месте крашится программа.
WinCE SDK 5.0, MSVC 2005. Если создать новый порект и куда-нибудь в начало копирнуть кусок кода: Код: #include <QMap> MSDN говорит, что мол "Ran out of memory". Сначала код был с использованием std::map. Было также. Грешил на реализацию stl. Запустил с QMap. Причем если вместо Код: counter_dd += 1; Поставить: Код: counter_dd = 1; Или другое число, ничего не падает. Ума не приложу, в чем дело. Если с stl я мог предположить, что std::map портит стек, то тут вообще идеи закончились. (На других платформах - линукс, виндовс, фря - все порверено и работает). Выручайте! ДОБАВЛЕНО Убрал QMap Код: { Просто код на Си. Падает. Название: Re: Проблемы с памятью WinCE. 0x80000002 Отправлено: BRE от Декабрь 07, 2010, 10:50 А что это за платформа (устройство)?
На некоторых платформах просто не возможно обратиться (R/W) по не выравненному адресу, процессор, обнаружив такую попытку просто генерирует исключение. Название: Re: Проблемы с памятью WinCE. 0x80000002 Отправлено: dd от Декабрь 07, 2010, 11:18 А можно поподробнее, что это такое и что с этим делать?
Девайс - Link 300, на борту winCE 5.0. SDK 5.0 (ARMV4I). QT работает норм. Вот нашел: http://www.gamedev.ru/terms/MemoryAlignment Оно? Посмотрел ошибку - адрес заканчивается на 0x....1C, то есть по 16 не выровнен, исходя из статьи. Название: Re: Проблемы с памятью WinCE. 0x80000002 Отправлено: BRE от Декабрь 07, 2010, 12:47 Поищи в гугле: ARMV4I+выравнивание
http://ru.osdev.wikia.com/wiki/Логическая_структура_памяти_(ARM) http://ru.osdev.wikia.com/wiki/Исключения_(ARM) Название: Re: Проблемы с памятью WinCE. 0x80000002 Отправлено: dd от Декабрь 07, 2010, 19:01 Спасибо за наводку.
Заюзал QByteArray, все работает. |