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

 
 
> МЕГА128 математика и CodeVisionAVR, Мега виснет
Punk
сообщение Oct 24 2006, 13:35
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 242
Регистрация: 19-06-06
Из: Новосибирск
Пользователь №: 18 167



Решил погонять математику с большими числами на м128 (макс. число 1000000 исп типы: unsigned long int, unsigned int, unsigned char) поперемножать их повычитать,в общем все с ними поделать.Результаты выкидываю на ЖКИ.Компилил в КодеВижне,
так вот компилятор говорит что стека ему надо 312 байт я ему и поставил 320 и проц пару раз число умножит,поделит и виснет если же ему стека 2048 байт впендюрить то проц очень даже долго работает
целых 23 операции без бэ выполняет а потом гонит и виснет.
Не подскажите в чем тут дело......такое чувство что RAMа засирается постепенно.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
arttab
сообщение Oct 25 2006, 04:06
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



рекурсией не баловались?


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
Punk
сообщение Oct 25 2006, 05:36
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 242
Регистрация: 19-06-06
Из: Новосибирск
Пользователь №: 18 167



Цитата(arttab @ Oct 25 2006, 08:06) *
рекурсией не баловались?


Если это заключается в вызове данной функции из самой этой функции то да баловался
Go to the top of the page
 
+Quote Post
Demeny
сообщение Oct 25 2006, 07:21
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 648
Регистрация: 11-02-06
Из: Санкт-Петербург
Пользователь №: 14 237



Цитата(Punk @ Oct 25 2006, 09:36) *
Цитата(arttab @ Oct 25 2006, 08:06) *

рекурсией не баловались?


Если это заключается в вызове данной функции из самой этой функции то да баловался

Рекурсия, скорее всего, тут ни при чём, так как иначе не выполнилось бы ни одного умножения и всё погрязло бы в бесконечном цикле. Возможно, где-то внутри функции создаётся память оператором new , а по выходе из неё не удаляется delete. Возможно, что эта бага зарыта в библиотеке, если вы таковой пользуетесь. Возможно, в библиотечной функции не соответствует количество PUSH при входе в функцию количеству POP при выходе из неё.
Если есть вставки на Ассемблере, то наивероятнейшая причина - та же - несоответствие количества операторов PUSH количеству операторов POP.

Сообщение отредактировал Demeny - Oct 25 2006, 07:24


--------------------
Сделано в Китае. Упаковано в России.
Go to the top of the page
 
+Quote Post
Punk
сообщение Oct 25 2006, 11:48
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 242
Регистрация: 19-06-06
Из: Новосибирск
Пользователь №: 18 167



Я не юзал либы а только обычные операции: "/", "*", "-", "+"

и асмовые вставки не делал
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 06:56
Рейтинг@Mail.ru


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