Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Keil RVCC вылет LPC2148 в SWI (calloc)
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
MaxEngee
Пытаюсь работать с библиотекой Speex.
Она использует calloc.
Проект компилируеться но при попытке отладить дело не даходит даже до main.

Проблема:
если в main используеться хоть одна библитечная функция после выполнения
; Enter the C code

IMPORT __main
LDR R0, =__main
BX R0

все вылетает в swi_handler

Если из main исключить все функции speex --> все OK

Я подозреваю что все дело в calloc. Только не пойму как что связанно.
ssergy
Скорее всего HEAP отсутствует или малого размера (см. Startup.s)
MaxEngee
Цитата(ssergy @ Dec 20 2008, 21:51) *
Скорее всего HEAP отсутствует или малого размера (см. Startup.s)


Куча достаточного размера и вылет в SWI происходит до входа в main
MaxEngee
Ну кто то же должен был сталкиваться с такой проблемой.

Если в майне закоментировать все вызовы функций библотеки Speex --> все ок, отладчик заходит до мэйн.
Если хоть одну функцию вызвать отладчик вылетает в SWI_handler.

Пытался отслеживать что происходит по дисасемблеру:
после:
IMPORT __main
LDR R0, =__main
BX R0

отладчик переходит на инициализацию стэка:
__scatterload_zeroinit

крутит команды:
0x0000019C E2522010 SUBS R2,R2,#0x00000010
0x000001A0 28A10078 STMCSIA R1!,{R3-R6}
0x000001A4 8AFFFFFC BHI 0x0000019C

Далее инициализация кучи
__rt_stackheap_init:

потом долго бегает по коду и в разделе _memset_w:
доходит до команды

0x0000F3F4 DFAB SWI 0xAB <<<------------------------ тоесть сам вызывает софт прерывание
0x0000F3F6 B003 ADD SP,#0x000C
0x0000F3F8 BC08 POP {R3}
0x0000F3FA 4718 BX R3
_sys_close:

и какова спрашиваеться хр--на в стартапе идет вызов софт прерывания??? как будто операционка прикручена

Еще пробегает мимо секции типа - _mutex_init maniac.gif

Что то мне подсказало подключить retarget.c и ....
все заработало

Дааа чего то я не доганяю
scifi
В форуме Keil было на эту тему:

http://www.keil.com/forum/docs/thread13855.asp

Советую посмотреть пост товарища Franc Urbanc внизу, там он объясняет подоплёку данного феномена.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.