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

 
 
 
Reply to this topicStart new topic
> Использование подпрограмм, 128Мега
tonjo
сообщение Aug 15 2005, 05:48
Сообщение #1


Местный
***

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



У меня проблема: пишу проект на асме для 128Меги с использованием подпрограмм, все компилируется Ок, зашиваю проект в контроллер-не работает.Тот же самый код, только не в подпрограммах также компилируется, прошиваю - ВСЁ РАБОТАЕТ! Кто-нибудь сталкивался с подобным? Что возможно не так я делаю. Может это компилятор грешит? (Делаю в AVR Studio 4.07). Помогите пожалуйста!!!
Go to the top of the page
 
+Quote Post
Igor26
сообщение Aug 15 2005, 05:54
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 10-02-05
Пользователь №: 2 544



Цитата(tonjo @ Aug 15 2005, 08:48)
У меня проблема: пишу проект на асме для 128Меги с использованием подпрограмм, все компилируется Ок, зашиваю проект в контроллер-не работает.Тот  же самый код, только не в подпрограммах  также компилируется, прошиваю - ВСЁ РАБОТАЕТ! Кто-нибудь сталкивался с подобным? Что возможно не так я делаю. Может это компилятор грешит? (Делаю в AVR Studio 4.07). Помогите пожалуйста!!!
*

А вначале программы стек инициируеш?
Go to the top of the page
 
+Quote Post
tonjo
сообщение Aug 15 2005, 06:04
Сообщение #3


Местный
***

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



Цитата(Igor26 @ Aug 15 2005, 08:54)
А вначале программы стек инициируеш?
*


Да, конечно. Причем этот проект для 103Меги работал безупречно.
Go to the top of the page
 
+Quote Post
Igor26
сообщение Aug 15 2005, 06:15
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 10-02-05
Пользователь №: 2 544



Цитата(tonjo @ Aug 15 2005, 09:04)
Цитата(Igor26 @ Aug 15 2005, 08:54)
А вначале программы стек инициируеш?
*


Да, конечно. Причем этот проект для 103Меги работал безупречно.
*


Сразу сказать трудно в чем бяка. Как говорится, код в студию! Думаю разберемся.
Go to the top of the page
 
+Quote Post
BorisRozentsvaig
сообщение Aug 15 2005, 06:23
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 36
Регистрация: 23-03-05
Из: Санкт-Петербург
Пользователь №: 3 617



Цитата(tonjo @ Aug 15 2005, 09:48)
У меня проблема: пишу проект на асме для 128Меги с использованием подпрограмм, все компилируется Ок, зашиваю проект в контроллер-не работает.Тот  же самый код, только не в подпрограммах  также компилируется, прошиваю - ВСЁ РАБОТАЕТ! Кто-нибудь сталкивался с подобным? Что возможно не так я делаю. Может это компилятор грешит? (Делаю в AVR Studio 4.07). Помогите пожалуйста!!!
*


Посмотри Fuse "ATMega103 Compatibility Mode" - он должен быть выключен, иначе с подпрограммами, скорее всего, работать не будет!
Атмел AtMega128 почему-то всегда поставляет с включенным этим флагом.
Go to the top of the page
 
+Quote Post
tonjo
сообщение Aug 15 2005, 06:30
Сообщение #6


Местный
***

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



Цитата(BorisRozentsvaig @ Aug 15 2005, 09:23)
Посмотри Fuse "ATMega103 Compatibility Mode" - он должен быть выключен,  иначе с подпрограммами, скорее всего, работать не будет!
Атмел AtMega128 почему-то всегда поставляет с включенным этим флагом.
*


Да, действительно такой фьюз у меня включен. Сейчас отключу. ОГРОМНОЕ СПАСИБО!!!
Go to the top of the page
 
+Quote Post
MALLOY2
сообщение Aug 15 2005, 06:33
Сообщение #7


Знающий
****

Группа: Validating
Сообщений: 838
Регистрация: 31-01-05
Пользователь №: 2 317



Цитата(tonjo @ Aug 15 2005, 08:48)
У меня проблема: пишу проект на асме для 128Меги с использованием подпрограмм, все компилируется Ок, зашиваю проект в контроллер-не работает.Тот  же самый код, только не в подпрограммах  также компилируется, прошиваю - ВСЁ РАБОТАЕТ! Кто-нибудь сталкивался с подобным? Что возможно не так я делаю. Может это компилятор грешит? (Делаю в AVR Studio 4.07). Помогите пожалуйста!!!
*


У них немного адресные пространства отличаются, тобиш у меги128 доп регистры введены, может с этим связано, стек может туда попадпет, и еще запрограмируй фуз совместимости с м103 и посмотри как работает.
Go to the top of the page
 
+Quote Post
lolikandr
сообщение Aug 15 2005, 14:00
Сообщение #8


Участник
*

Группа: Свой
Сообщений: 56
Регистрация: 25-06-05
Пользователь №: 6 300



Напиши маленькую программу типа поморгать портом с подпрограммой и проинициализированным стеком. Если она будет работать, то у тебя почти наверняка некорректная работа с подпрограммами. Например вызвал подпрограмму и вернулся по rjmp, или не вызвав подпрограмму пришел к ее концу ret. Последнее часто бывает, если подпрограммы оформить по тексту в месте, куда программа может залететь без вызова подпрограмм. Поэтому подпрограммы лучше всего положить или в конец за последним rjmp Main или в начале поcле векторов прерываний перед основной программой.
Go to the top of the page
 
+Quote Post
tonjo
сообщение Aug 16 2005, 07:18
Сообщение #9


Местный
***

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



Спасибо всем кто откликнулся, в особенности BorisRozentsvaig. Он был полностью прав - надо было отключить ATMega103 Compatibility Mode и все зарулило!
Go to the top of the page
 
+Quote Post
BorisRozentsvaig
сообщение Aug 16 2005, 10:39
Сообщение #10


Участник
*

Группа: Свой
Сообщений: 36
Регистрация: 23-03-05
Из: Санкт-Петербург
Пользователь №: 3 617



Цитата(tonjo @ Aug 16 2005, 11:18)
Спасибо всем кто откликнулся, в особенности BorisRozentsvaig. Он был полностью прав - надо было отключить ATMega103 Compatibility Mode и все зарулило!
*


Да не за что smile.gif Всегда рад помочь. smile.gif
Go to the top of the page
 
+Quote Post

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

 


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


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