реклама на сайте
подробности

 
 
> Помогите разобраться с ошибкой в Keil.
Oleg_IT
сообщение Jan 31 2011, 13:48
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Строю свою программу из готовых модулей. После добавления очередного файла программа входит в функцию (из ранее введенного файла Retarget.c):
void _sys_exit (int return_code) {
/* Endless loop. */
while (1);
}
Несколько раз перестраивал проект, не помогает. Удаляю последний введённый файл, после которого появилась ошибка, ошибка остаётся.
Не пойму, что происходит.
Кто сталкивался с такой проблемой, помогите победить её.

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Jan 31 2011, 14:24
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Вывод из _ttywrch() в retarget.c сделан? Ничего там не говорит?
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение Jan 31 2011, 19:13
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Цитата(aaarrr @ Jan 31 2011, 17:24) *
Вывод из _ttywrch() в retarget.c сделан? Ничего там не говорит?

Да куда там, программа до mian() не доходит, из стартапа
IMPORT __main
LDR R0, =__main
BX R0
сразу в _sys_exit(). R0 = 0x00000000. Почему?

Я ещё что заметил, некоторые программы в дебагере останавливаются в стартапе (сейчас эту точку не воспроизведу), после запуска на продолжение нормально работают, а некоторые сразу останавливаются в начале mian() функции (в Options/Debug всегда стоит флаг Run to main())
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jan 31 2011, 19:32
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Oleg_IT @ Jan 31 2011, 22:13) *
Да куда там, программа до mian() не доходит, из стартапа

Еще раз: _ttywrch() определен? Есть у меня такое подозрение, что туда ваша программа пишет "Out of heap memory" и таки да, до main'а не доходит.
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение Feb 1 2011, 07:21
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Цитата(aaarrr @ Jan 31 2011, 22:32) *
Еще раз: _ttywrch() определен? Есть у меня такое подозрение, что туда ваша программа пишет "Out of heap memory" и таки да, до main'а не доходит.

Функция определена в том же файле (STDIO в опциях файла отределён)
void _ttywrch (int ch) {
#ifdef STDIO
sendchar(ch);
#endif
}
В эту функцию программа заходит, ch = 0x0000000A
В окне Command при этом появляется надпись
*** error 65: access violation at 0xA0033000 : no 'read' permission

Да, вы правы. пишет "SIGRTMEM: Out of heap memory"
Что делать то?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 13:14
Рейтинг@Mail.ru


Страница сгенерированна за 0.02894 секунд с 7
ELECTRONIX ©2004-2016