AVR studio в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

Kaspar писал(а):Существует ли возможность загрузки EEPROM файла, генерируемого AVR Studio в его же симулятор? На мой взгляд очень неправильно, что это не делается сразу по-умолчанию...
разумеется! после старта отладки через меню Debug - Up/Download Memory
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Negor
Вымогатель припоя
Сообщения: 586
Зарегистрирован: Ср мар 07, 2007 22:58:02
Откуда: Черкассы, Украина
Контактная информация:

Сообщение Negor »

Кто нибуть может научить меня в каком ассемблере чего нельзя делать. Вот например в авр студии билд 528 кажется был такой фокус - в ассемблере 2 нельзя юзать запись/чтение из РАМ с пост инкрементом, зато в асме 1 всё хорошо. Теперь поставил дома саму последнюю авр студию и там не работает постинкремент, а в ассемблере 1 нельзя в макросах юзать макросы... есть гденить стандарты или описания?
There is only 10 kind of people: those who understands binary code and those who dont!!!
smac
Мучитель микросхем
Сообщения: 459
Зарегистрирован: Вс июн 01, 2008 12:16:38

Сообщение smac »

Negor писал(а):Кто нибуть может научить меня в каком ассемблере чего нельзя делать. Вот например в авр студии билд 528 кажется был такой фокус - в ассемблере 2 нельзя юзать запись/чтение из РАМ с пост инкрементом, зато в асме 1 всё хорошо. Теперь поставил дома саму последнюю авр студию и там не работает постинкремент, а в ассемблере 1 нельзя в макросах юзать макросы... есть гденить стандарты или описания?

С постинкрементом там все хорошо, по крайней мере у меня ни разу проблем не возникало (Вы бы код показали, может что-то не так делаете). Описания есть в хелпе студии - Assembler help.
Аватара пользователя
Negor
Вымогатель припоя
Сообщения: 586
Зарегистрирован: Ср мар 07, 2007 22:58:02
Откуда: Черкассы, Украина
Контактная информация:

Сообщение Negor »

Я имел ввиду описание разници между асм 1 и асм 2. Вот для С тоже ж есть много стандартов....
There is only 10 kind of people: those who understands binary code and those who dont!!!
Аватара пользователя
Aheir
Модератор
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург
Контактная информация:

Сообщение Aheir »

Это какие же?
Оптимизм х (Опыт + Знания) = const
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

принципиальная разница между вторым и первым ассемблером AVR Studio в том, что второй более Си-ориентирован: он понимает и обрабатывает все макросы Си-стиля, например, вместо директивы .def можно использовать #define и т.п. В остальном разницы нет. Ну, разве что второй ассемблер поддерживает последние новинки, а первый они похоже забросили в плане обновления.

Ни о каком "стандарте" ассемблера речь не идет - слишком мелкие масштабы у Atmel, чтобы их детище стало стандартом. Речь идет лишь о внутрикорпоративном подходе, а потому "что хочу, то и ворочу". Не используйте первый ассемблер, да и все. Второй прекрасно понимает программы в стиле первого (но не наоборот).

2 Aheir : стандартов Си действительно существует более одного, классика - ANSII C, при этом Си по Кернигану и Ритчи несколько от него отличается (и тем не менее де-факто тоже является стандартом). Есть еще модификации стандарта ISO C90, ISO C99 и еще ряд менее распространенных. Отличия между ними порой весьма существенные, например, С99 позволяет делать определение переменных в любом месте, а ANSII С - нет.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Anatrulij
Первый раз сказал Мяу!
Сообщения: 28
Зарегистрирован: Вс июл 20, 2008 12:37:07

Сообщение Anatrulij »

А как настроить AVR Studio на работу с С++ кодом?
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

Anatrulij писал(а):А как настроить AVR Studio на работу с С++ кодом?
AVR Studio - это лишь оболочка, а для работы с С++ нужен компилятор. подключайте WinAVR, работайте, только вот с отладкой могут быть проблемы...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Anatrulij
Первый раз сказал Мяу!
Сообщения: 28
Зарегистрирован: Вс июл 20, 2008 12:37:07

Сообщение Anatrulij »

ARV писал(а):AVR Studio - это лишь оболочка, а для работы с С++ нужен компилятор. подключайте WinAVR, работайте, только вот с отладкой могут быть проблемы...


По поводу оболочьки - это понятно. Но я не знаю как эту оболочьку настроить именно под C++.
Аватара пользователя
Aheir
Модератор
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург
Контактная информация:

Сообщение Aheir »

Ага, ARV, спасибо. Как раз их названия искал...
Оптимизм х (Опыт + Знания) = const
Аватара пользователя
Alexeus
Вымогатель припоя
Сообщения: 690
Зарегистрирован: Вс мар 04, 2007 01:17:12

Сообщение Alexeus »

что то не пойму на что ругается AVR Studio:

AVR Simulator: IO Module: CAN (AVRSimIOCAN00.SimIOCAN00) not supported

Собираюсь программировать AT90CAN128, как раз нужен будет интерфейс CAN, а тут такое сообщение возникает уже при компиляции кода безобидного мигания светодиодом. А когда пытаюсь активировать CAN, пишет:

error: Operand 1 out of range: 0xd8

на это:

ldi r16,0x02
out CANGCON,r16
smac
Мучитель микросхем
Сообщения: 459
Зарегистрирован: Вс июн 01, 2008 12:16:38

Сообщение smac »

Alexeus писал(а):что то не пойму на что ругается AVR Studio: ...
А когда пытаюсь активировать CAN, пишет:

error: Operand 1 out of range: 0xd8

на это:

ldi r16,0x02
out CANGCON,r16

Это значит что адрес SFR CANGCON больше 0x5f к такому SFR нельзя применять команду out , нужно сделать так:

Код: Выделить всё

ldi r16,0x02
sts CANGCON,r16
Аватара пользователя
Alexeus
Вымогатель припоя
Сообщения: 690
Зарегистрирован: Вс мар 04, 2007 01:17:12

Сообщение Alexeus »

что то снова не так... Stack underflow at 0x005d, invalid opcode at 0xffff at adress 0x00ffff

вроде правильно инициализировал:
; ******************************************************
; BASIC .ASM template file for AVR
; ******************************************************

.include "can128def.inc"

; Define here the variables
;
.def temp =r16
.def temp2 =r17
.def temp3 =r18
.def DATA =r19
.def counter =r20

.cseg
.org 0

rjmp reset
reti
...
reti
;всего 36 reti

reset:
ldi r16,high(RAMEND); Main program start
out SPH,r16 ; Set Stack Pointer to top of RAM
ldi r16,low(RAMEND)
out SPL,r16
sei ;cli interrupts

; Program starts here after Reset
ldi temp,0b11111000
out PORTA,temp
....

появляется при возврате (ret) из вызванной функции (rcall) в основной цикл.

почему так?
smac
Мучитель микросхем
Сообщения: 459
Зарегистрирован: Вс июн 01, 2008 12:16:38

Сообщение smac »

Alexeus писал(а):что то снова не так... Stack underflow at 0x005d, invalid opcode at 0xffff at adress 0x00ffff

вроде правильно инициализировал:
...
почему так?

Похоже на то, что вы когда возвращаетесь из подпрограммы выполняете ret 2 раза, при этом Ваша подпрограмма была вызвана из основного цикла, в результате происходит выборка адреса возврата из стека по несуществующему адресу.
И еще, таблица прерывания скорее всего не правильная, т. к. подозреваю что у вашего контроллера два слова программной памяти на каждый вектор прервывания. А вообще лучше код целиком покажите.
Аватара пользователя
Alexeus
Вымогатель припоя
Сообщения: 690
Зарегистрирован: Вс мар 04, 2007 01:17:12

Сообщение Alexeus »

контроллер AT90CAN128
smac проверь личку

...

Мяу!!! вот тупанул, нужно было вызывать подпрограмму (Call), а я прыгал на нее (Jmp) Невнимательность... :)

Спасибо Smac
Pitty
Родился
Сообщения: 3
Зарегистрирован: Сб мар 14, 2009 11:02:14

EEPROM

Сообщение Pitty »

Kaspar писал(а):Существует ли возможность загрузки EEPROM файла, генерируемого AVR Studio в его же симулятор? На мой взгляд очень неправильно, что это не делается сразу по-умолчанию...

Несмотря на ответ на этот вопрос: можно загружать через load memory, хочу уточнить вопрос:
Можно ли как-то заставить ассемблер пихать данные EEPROM в HEX файл, а не в отдельный файл.
Можно ли написать какой-то скрипт, чтобы автоматом загружалась память еепром при симуляции?
Работает ли симуляция еепром для тини26??? У меня не работает. Попробовал симулировать 261 с тем же кодом - работает, а с 26 не работает. Кто-нибудь сталкивался?
Ещё последний вопрос: есть ли возможность заставить понипрог автоматом открывать eep файл при загрузке HEX???
Как-то всё блин глючно... блин-блин-блин.
BerZerK-ku
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вт июл 22, 2008 08:10:54

Сообщение BerZerK-ku »

AVR Studio 4.08. Столкнулся с подобной проблемой: при симуляции ни в какую не хочет писать в ЕЕПРОМ, проверял 100% рабочий код на Tint2313 и Mega8.
Аватара пользователя
ikarab
Опытный кот
Сообщения: 828
Зарегистрирован: Пн мар 16, 2009 21:40:57
Контактная информация:

Сообщение ikarab »

BerZerK-ku писал(а):AVR Studio 4.08. Столкнулся с подобной проблемой: при симуляции ни в какую не хочет писать в ЕЕПРОМ, проверял 100% рабочий код на Tint2313 и Mega8.


А в докуметации написано что должна писать ???

Используйте VMLAB или PROTEUS с библиотекой от 7.5 - будет работать.

А студию скачайте 4.16
BerZerK-ku
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вт июл 22, 2008 08:10:54

Сообщение BerZerK-ku »

ikarab писал(а):А в докуметации написано что должна писать ???

Может Вам покажется это странным, но написано.
ikarab писал(а):Используйте VMLAB или PROTEUS с библиотекой от 7.5 - будет работать.
А студию скачайте 4.16

Это тут вообще причем? [/quote]
Аватара пользователя
sachok
Опытный кот
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк
Контактная информация:

Сообщение sachok »

Подскажите в Studio ясть окно терминала где можно посмотреть что передается по USART? В книге видел что в старой версии есть,а в 4,16 найти немогу.
Я не Сашок!!!
Ответить

Вернуться в «AVR»