Например TDA7294

Форум РадиоКот • Просмотр темы - Вопросик про стэк
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Пн июл 21, 2025 08:04:45

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 18 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Вопросик про стэк
СообщениеДобавлено: Вт апр 24, 2007 18:30:34 
Грызет канифоль
Аватар пользователя

Зарегистрирован: Сб сен 09, 2006 19:00:18
Сообщений: 257
Откуда: СССР
Рейтинг сообщения: 0
Ошибка вылазит в обработке прерывания таймера, на команде reti: Program counter outside the valid space
Че может быть? может стэк маленький? Как вообще правильно указывать стэк?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросик про стэк
СообщениеДобавлено: Вт апр 24, 2007 18:34:52 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
Tohey писал(а):
Ошибка вылазит в обработке прерывания таймера, на команде reti: Program counter outside the valid space


Наверно у вас вектора прерываний не прописаны в проге.

Tohey писал(а):
Как вообще правильно указывать стэк?


можно в листинге компилятора посмотреть можно в обучалке можно в VMLAB проект создать и увидеть.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 24, 2007 18:42:03 
Грызет канифоль
Аватар пользователя

Зарегистрирован: Сб сен 09, 2006 19:00:18
Сообщений: 257
Откуда: СССР
Рейтинг сообщения: 0
Цитата:
Наверно у вас вектора прерываний не прописаны в проге.

да не, всё прописано. Дело в том что в обработке прерывания вызывается ещё несколько "подфункций", штук 3. Т.е. в прерывании вызывается функция, а в этой функции вызывается ещё функция. И на каком то N-ном возврате вылазит эта ошибка. А в памяти смотрел - то похоже вылазит за пределы указателя (если я правельно понял).
Как можно увеличить стэк? Возможно ли на каждую функцию зделать свой собственный стэк?


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 24, 2007 18:51:51 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
Вот тебе сделал в CVAVR 2 листинга АСМ - в одном стак 256 а в другом 500.

Найди отличия и доложи :lol:


Вернуться наверх
 
Выбираем индустриальные и медицинские источники питания MEAN WELL в открытом исполнении

Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.

Подробнее>>
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 24, 2007 18:59:01 
Грызет канифоль
Аватар пользователя

Зарегистрирован: Сб сен 09, 2006 19:00:18
Сообщений: 257
Откуда: СССР
Рейтинг сообщения: 0
Спасибо! Уже разобрался, POP не там заPOPил :shock:, то есть сначала шло - rcall потом, push, потом reti :))) , 2 дня потерял :cry:
А вообще возможно несколько стэков делать?


Последний раз редактировалось Tohey Вт апр 24, 2007 19:04:49, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 24, 2007 18:59:01 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
Стэк 500 байт размещает в 60h - 253h

кроме того аппаратный стак 524 байт расположен
в адресах 254h - 45Fh

======

а стэк 256 байт в 60h - 15Fh

и аппаратный стак 768 байт расположен в адресах 160h - 45Fh


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 24, 2007 19:01:22 
Грызет канифоль
Аватар пользователя

Зарегистрирован: Сб сен 09, 2006 19:00:18
Сообщений: 257
Откуда: СССР
Рейтинг сообщения: 0
Цитата:
Стэк 500 байт размещает в 60h - 253h
А вообще стэк с конца памяти заполняется?


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 24, 2007 20:36:14 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2116
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18403
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
У МК семейства AVR указатель стека уменьшается при занасении в стек данных, т.е. движется "от конца" к "началу".
Следует различать стек программы и стек данных.
Аппаратный стек есть только у AT90S1200, если мне память не изменяет, а во всех моделях с ОЗУ стек программный, т.е. управляется из программы - что в SPL\SPH занесешь - там стек и будет.
Пример с ассемблерным листингом программы на си - имхо, худшее, что можно привести для понимания принципа работы стека. Интересно, что вы скажете про стек данных?
Цитата:
;DATA STACK POINTER INITIALIZATION
LDI R28,LOW(0x160)
LDI R29,HIGH(0x160)

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 24, 2007 22:25:31 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
И чем же хуже текст АСМ листинга из компилятора :shock:

Код:
;STACK POINTER INITIALIZATION
   LDI  R30,LOW(0x45F)
   OUT  SPL,R30
   LDI  R30,HIGH(0x45F)
   OUT  SPH,R30

;DATA STACK POINTER INITIALIZATION
   LDI  R28,LOW(0x254)
   LDI  R29,HIGH(0x254)


Все с комментариями ...


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 24, 2007 23:02:40 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2116
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18403
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
хуже хотя бы тем, что из едва ли не сотни строк нужных всего десяток, а во вторых - описано 2 стека... Это всем понятно?

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср апр 25, 2007 00:31:21 
Грызет канифоль
Аватар пользователя

Зарегистрирован: Сб сен 09, 2006 19:00:18
Сообщений: 257
Откуда: СССР
Рейтинг сообщения: 0
Про стэк данных впервые слышу! А как в него и что в него записуют?


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср апр 25, 2007 01:27:13 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
Советую не забивать голову а просто писать програмы на Си и радоваться результату.

Или вы в профи метите ? За ARV-ом вам все равно не угнаться :lol: Место на монументе уже занято :cry:


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср апр 25, 2007 08:07:09 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2116
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18403
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Едкая ирония совершенно неуместна: приведен пример кода, в котором ясно видно, что организовано 2 стека - и никаких объяснений по этому поводу не дано. Давайть куски кода без пояснений на форуме для начинающих - дурной тон, имхо. Понимать, что происходит - необходимо каждому программисту, если конечно не наплевательски относиться к своему делу, поэтому "использовать и не париться" - так же нехороший совет. Использовать надо, понимая что к чему (раз уж дело зашло о стеке, не смотря на Си).
Стеков может быть сколько угодно - но это обман зрения, программный трюк, вынужденная мера (ядро процессора все равно имеет только один указатель стека).
Стек данных используется компилятром Си (или другого языка высокого уровня) для организации передачи параметров функций и т.п. через отдельную область памяти, которая может быть и не на кристалле - это жертва универсальности языка.
Для примера: в Windows каждой задаче выделяется собственный стек, есть еще несколько стеков системных...

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср апр 25, 2007 09:46:18 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
ARV писал(а):
Едкая ирония совершенно неуместна

Давайть куски кода без пояснений на форуме для начинающих - дурной тон, имхо.


И где же в вашем сообщении от " Вт Апр 24, 2007 8:36 pm" комментарии к коду ???

Дурным тоном промышляете-с Козьма ?

Начните с себя !


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср апр 25, 2007 11:20:08 
Грызет канифоль
Аватар пользователя

Зарегистрирован: Сб сен 09, 2006 19:00:18
Сообщений: 257
Откуда: СССР
Рейтинг сообщения: 0
tych писал(а):
Советую не забивать голову а просто писать програмы на Си и радоваться результату.

Мне на асме понятней и удобней писать. На си буду писать только тогда, когда математику применять придется.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср апр 25, 2007 11:27:27 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2116
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18403
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Tohey писал(а):
Мне на асме понятней и удобней писать. На си буду писать только тогда, когда математику применять придется.

Уважаю!
Для математики на асме есть готовые подпрограммы всех арифметических действий - умножение, деление, сложение и т.п. как целых чисел (поставляются в комплекте с AVRStudio), так и с плавающей точкой (есть много в интернете), так что всегда можно обойтись только асмом.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср апр 25, 2007 12:00:00 
Грызет канифоль
Аватар пользователя

Зарегистрирован: Сб сен 09, 2006 19:00:18
Сообщений: 257
Откуда: СССР
Рейтинг сообщения: 0
ARV писал(а):
на асме есть готовые подпрограммы всех арифметических действий - умножение, деление, сложение и т.п. как целых чисел (поставляются в комплекте с AVRStudio)
НЕЗНАЛ :shock: Замечательно :)) !


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср апр 25, 2007 12:08:47 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2116
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18403
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
рекомендую http://www.avr-asm-tutorial.net/avr_en/calc/index.html - много примеров вычислений

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 18 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y