AVR studio в вопросах и ответах
- COKPOWEHEU
- Говорящий с текстолитом
- Сообщения: 1525
- Зарегистрирован: Чт июн 10, 2010 20:11:19
Re: AVR studio 4 в вопросах и ответах
Судя по симптомам наиболее вероятно срыв стека или чтение из его области. Дальше мои телепатические способности не простираются.
- Реклама
Re: AVR studio 4 в вопросах и ответах
Я уже об этом думал, пишу на С. Обычно стек срывал когда на ассемблере писал. Не думал что и на С такое возможно!
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
Ну язык тут совсем не причём. Компилятору тяжело отследить использование стека. Взять ту же рекурсию - стек запороть на раз-два...
Re: AVR studio 4 в вопросах и ответах
Век живи век учись! Спасибо!
- COKPOWEHEU
- Говорящий с текстолитом
- Сообщения: 1525
- Зарегистрирован: Чт июн 10, 2010 20:11:19
Re: AVR studio 4 в вопросах и ответах
Невозможно сорвать стек на Си? Да я могу хоть 10 примеров привести, начиная от указателей и заканчивая рекурсией. Памяти у ATtiny13 всего 64 байта. Если память заполнена на 75% то на стек остается всего 16 байт, то есть максимум 8 уровней вложенности процедур. Это не считая сохраняемых при входе-выходе регистров, на которых Си не экономит.
- Реклама
Re: AVR studio 4 в вопросах и ответах
Вопрос о невозможности срыва не стоял. Тупо не знал что сорвать стек на Си проще простого.
- COKPOWEHEU
- Говорящий с текстолитом
- Сообщения: 1525
- Зарегистрирован: Чт июн 10, 2010 20:11:19
Re: AVR studio 4 в вопросах и ответах
В большинстве контроллеров AVR стек расположен в конце оперативной памяти. Не во всех, в некоторых он аппаратный и записать в него через st* нельзя. А уж с тиньками нужно быть предельно осторожным - памяти мало. Поэтому для них лучше программировать на ассемблере.
- Pink-Pank
- Опытный кот
- Сообщения: 721
- Зарегистрирован: Ср июн 11, 2014 09:43:13
- Откуда: США
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
Вы, наверное, хотели сказать, что большинство СИшных компиляторов его там делают? + сейчас производитель стал делать значения регистров SP после сброса указывающими на конец памяти.В большинстве контроллеров AVR стек расположен в конце оперативной памяти.
А так расположить стек можно где угодно. Keil, к примеру, для АРМов располагает стек и кучу перед основной программой.
Fucking static initialization order fiasco
- COKPOWEHEU
- Говорящий с текстолитом
- Сообщения: 1525
- Зарегистрирован: Чт июн 10, 2010 20:11:19
Re: AVR studio 4 в вопросах и ответах
Неправильно выразился. Обычно в AVR стек располагают в конце памяти. Хотя я и сам делал десяток отдельных стеков по всей памяти, когда делал модель ОС с вытесняющей многозадачностью.
- Pink-Pank
- Опытный кот
- Сообщения: 721
- Зарегистрирован: Ср июн 11, 2014 09:43:13
- Откуда: США
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
Нуууу... Я думаю, что стек основного родительского процесса (оно же ядро системы) все равно находился в конце, если Вы писали на СИ, разумеется?
Fucking static initialization order fiasco
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18649
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
если задача соответствует тиньке, то на Си можно работать спокойно и не особо тревожась. не нагоняйте страху без нуждыCOKPOWEHEU писал(а):А уж с тиньками нужно быть предельно осторожным - памяти мало. Поэтому для них лучше программировать на ассемблере.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- COKPOWEHEU
- Говорящий с текстолитом
- Сообщения: 1525
- Зарегистрирован: Чт июн 10, 2010 20:11:19
Re: AVR studio 4 в вопросах и ответах
Разумеется, на ассемблере. Там проще извращаться с адресами переходов и возвратов и стеком.Pink-Pank писал(а):Нуууу... Я думаю, что стек основного родительского процесса (оно же ядро системы) все равно находился в конце, если Вы писали на СИ, разумеется?
Понятие "соответствует" включает "помещается почти без запаса".ARV писал(а):если задача соответствует тиньке, то на Си можно работать спокойно и не особо тревожась. не нагоняйте страху без нужды
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18649
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
узнать, помещается или нет задача можно только после ее постановки и реализацииCOKPOWEHEU писал(а):Понятие "соответствует" включает "помещается почти без запаса".
например, для attiny13 вполне нормальным будет задача типа "диммер лампы накаливания с дистанционным управлением с самообучением командам любого пульта ДУ и включением-выключением лампы отдельной кнопкой". эта задача вполне комфортно решается на Си. или такая задача "лампа настроения с различными режимами работы и управлением с пульта ДУ".
разумеется, если нужно решать задачу с мощной математикой, большим количеством внешних прерываний, кнопок и т.п., то такую задачу для attiny13 ставить будет некорректно - тут и на ассемблере придется попотеть
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- COKPOWEHEU
- Говорящий с текстолитом
- Сообщения: 1525
- Зарегистрирован: Чт июн 10, 2010 20:11:19
Re: AVR studio 4 в вопросах и ответах
Я лишь к тому, что 64 байта для Си все-таки маловато, там часто вызываются вложенные процедуры и в каждой сохраняются регистры. А сохранить все регистры один раз - пол-памяти нет. Это, конечно, редкое событие, но внимательность сохранять надо.
- Xatrix
- Сверлит текстолит когтями
- Сообщения: 1296
- Зарегистрирован: Ср мар 10, 2010 22:28:34
- Откуда: Запад Беларуси
Re: AVR studio 4 в вопросах и ответах
Как можно переписывать младшие 4 бита порта не трогая остальных? tiny2313 На младших висит дешифратор, а на старших - USI с часами.
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
Код: Выделить всё
in temp,PORTX; читаем состояние порта
temp&= 0xF0; сбрасываем младшую тетраду
temp|= 0x0N; записываем в младшую тетраду N(должно быть четыре бита)
PORTX= temp; выводим в порт
Docendo discimus
Re: AVR studio 4 в вопросах и ответах
Tell Me The Truth
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: AVR studio 4 в вопросах и ответах
Зелёный светодиод на самом программаторе со стороны USB горит?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: AVR studio 4 в вопросах и ответах
Либо дрова криво встали, либо ещё что.
Попробуй обновить прошивку программатора, может он так увидится. В хэлпе студии по ARVISPmkII "4.2 Manual Firmware Upgrade".
Попробуй обновить прошивку программатора, может он так увидится. В хэлпе студии по ARVISPmkII "4.2 Manual Firmware Upgrade".
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]





