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

 
 
> Останавливается LPC2138, Проблемы при работе с плавающей точкой
vkle
сообщение Aug 19 2008, 14:58
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 31-08-07
Пользователь №: 30 191



Есть плата c lpc2138.

Все отлично работает до того момента как я начинаю пользоваться плавающей точкой.

Например
int z = 2;
float a = 10;
a = a;

Вызывает сброс контроллера.
Использую YAGARTO последний.

В чем может быть проблема?
Может что-то с библиотеками?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
vkle
сообщение Aug 19 2008, 20:03
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 31-08-07
Пользователь №: 30 191



Все дальше парюсь...
Вобщем написал такой нехитрый код:
int main(){
float a = 10.2;
while(1){
a /= 2.0;
}
return 0;
}

Не использую никаких прерываний.
Если из мейкфайла (из компиляции) удаляю все остальные свои коды, то при входе в функцию деления __divsf3 вижу:
0x4d8 <__divsf3>: mov r12, #255 ; 0xff
0x4dc <__divsf3+4>: ands r2, r12, r0, lsr #23
0x4e0 <__divsf3+8>: andsne r3, r12, r1, lsr #23
0x4e4 <__divsf3+12>: teqne r2, r12
...
Если включаю в компиляцию написанные модули, но main не меняю и в main.c ничего не дописываю, то при входе в __divsf3 вижу шлак:
0x35b0 <__divsf3>: andeq r0, r0, r0
0x35b4 <__divsf3+4>: andeq r0, r0, r0
0x35b8 <__divsf3+8>: andeq r0, r0, r0
0x35bc <__divsf3+12>: andeq r0, r0, r0
0x35c0 <__divsf3+16>: andeq r0, r0, r0
...
Что это может быть?
Go to the top of the page
 
+Quote Post
Alex03
сообщение Aug 20 2008, 03:10
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 359
Регистрация: 9-12-05
Пользователь №: 12 034



Цитата(vkle @ Aug 20 2008, 02:03) *
Если из мейкфайла (из компиляции) удаляю все остальные свои коды, то при входе в функцию ....


Не плохо было бы приветсти "все остальные свои коды", ну или там Makefile.
Если мне не изменяет память, то andeq r0, r0, r0 имеет код операции 0x00000000.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- vkle   Останавливается LPC2138   Aug 19 2008, 14:58
- - aaarrr   Стек проверьте, есть ли выравнивание по границе 2-...   Aug 19 2008, 14:59
- - vkle   А как это сделать? Я просто не специалист... Если...   Aug 19 2008, 15:07
|- - aaarrr   Цитата(vkle @ Aug 19 2008, 19:07) А как э...   Aug 19 2008, 15:12
- - vkle   В map файле стек находится вот так: .stack ...   Aug 19 2008, 15:16
|- - aaarrr   Цитата(vkle @ Aug 19 2008, 19:16) Фух, а ...   Aug 19 2008, 15:20
- - vkle   И в eclipse и в insight 12 регистров. Т.е. нужен и...   Aug 19 2008, 16:02
- - aaarrr   Значит у Вас с библиотекой что-то не так.   Aug 19 2008, 16:04
- - vkle   Вместо R13 - есть sp. Это наверняка stack pointer....   Aug 19 2008, 16:08
- - aaarrr   Дело не в "хорошести", а в том, что библ...   Aug 19 2008, 16:11
- - vkle   А как проверить прилинковалась или нет? В map файл...   Aug 19 2008, 16:25
- - aaarrr   Я, к сожалению, не пользуюсь YAGARTO.   Aug 19 2008, 16:30
- - vkle   А что советуете?   Aug 19 2008, 16:38
- - aaarrr   Вы имеете в виду, какой компилятор? Я давно пользу...   Aug 19 2008, 16:41
- - vkle   Ну да, вываливается в пустую область памяти. При э...   Aug 20 2008, 06:09
- - vkle   Странно, но кажется, что поведение программы завис...   Aug 20 2008, 08:56


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

 


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


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