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

 
 
> ATMega128: в 3х соснах заблудился, программа в 5 строчек крашится
A. Fig Lee
сообщение May 27 2014, 12:29
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



Вопчем работал мой Атмел, а через 2 месяца, когда достал с полки - перестал.
Выбросил все практически, пустая программа, крашится если записал что нибудь в UCSR1C.
Опять на начало скачет.
Чувствую, хочет какойто интеррапт, которого нет? Почему раньше не хотело?
В талмуде по Атмеге128 нет толкового описания UCSRC, какято художественная литература.
У майкрочипа все четко расписано.

Вот код (если закомментировать запись в UCSR1C, доходит до лупа и крутится):

CODE
/*
* Crashtest.c
*
* Created: 5/27/2014 12:23:37 PM
* Author: Administrator
*/


#include <avr/io.h>
#include <avr/interrupt.h>
#include <string.h>

#define __enable_interrupt sei
#define __disable_interrupt cli


void Init()
{


}

void test()
{
UCSR1C = 0;

}

volatile uint32_t s;

int main(void)
{
Init();
__enable_interrupt();
test();

while(1)
{
s++;
}
}


Сообщение отредактировал IgorKossak - May 27 2014, 15:05


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
A. Fig Lee
сообщение May 28 2014, 07:08
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



Цитата(alexeyv @ May 28 2014, 00:14) *
Может быть что то в настройках проекта полетело? Например, имя проца не то
В какой среде пишете?


AVR Studio 6.1
Вчера проапгрейдил gcc и до AVR Studio 6.2
gcc попробовал, результат тот же.


Цитата(Сергей Борщ @ May 28 2014, 01:58) *
Такое ощущение, что процессор исполняет одну программу, а отладчик показывает вам листинг от другой. То есть он показывает вам не дизассемблированное на лету содержимое памяти, а загруженный в отладчик готовый листинг. Такое наблюдалось когда в процессе запуска отладчика не заливаелась прошивка. Там нигде галочка вроде "заливать образ перед отладкой" не снята?

И да, среды бывают разные, вы наблюдаете это при шагании в окне исходника или в окне дизассемблера? Некоторые среды в окне исходников показывают сгенерированный листинг, а "честное" дизассемблированное содержимое памяти только в окне дизассемблера.


Да, есть такое ощущение, я даже дизассемблерные коды посмотрел в .lss, сверил с hex файлом,
Есть там "10 92" и так далее.
Галочка не снята, верификация есть.
Если компилирую программу с -O2 (новый gcc -O1 тоже) или -Os то проблем нет,
но инструкцию эту выбрасывает.
Получается, заливка работает, так как меняется поведение.

Я сейчас на 80% грешу что там таки М103 compatibility какая то проблема.
Фьюз хоть и показывает, что Мега128 мод, но я ему не верю.
По пробую erase весь чип..
Делаю паралельный программатор, может от 12 В прошьется.
Чтото мне не везет с Атмелами, лежит At90s2313, At90s8515 не шьются последовательным
программатором, наверное фьюз слетел.

Да, и попробую
1) скомпилить для М103 мода (маленькая программка, мне должно и его хватить) и
2) поигратся с инструкциями не характерными для Меги128 - убедится насчет М103 мода..

Спасибо всем за помощь, проинформирую, что помогло, если поможет


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post



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

 


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


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