разумеется! после старта отладки через меню Debug - Up/Download MemoryKaspar писал(а):Существует ли возможность загрузки EEPROM файла, генерируемого AVR Studio в его же симулятор? На мой взгляд очень неправильно, что это не делается сразу по-умолчанию...
AVR studio в вопросах и ответах
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Negor
- Вымогатель припоя
- Сообщения: 586
- Зарегистрирован: Ср мар 07, 2007 22:58:02
- Откуда: Черкассы, Украина
- Контактная информация:
Кто нибуть может научить меня в каком ассемблере чего нельзя делать. Вот например в авр студии билд 528 кажется был такой фокус - в ассемблере 2 нельзя юзать запись/чтение из РАМ с пост инкрементом, зато в асме 1 всё хорошо. Теперь поставил дома саму последнюю авр студию и там не работает постинкремент, а в ассемблере 1 нельзя в макросах юзать макросы... есть гденить стандарты или описания?
There is only 10 kind of people: those who understands binary code and those who dont!!!
Negor писал(а):Кто нибуть может научить меня в каком ассемблере чего нельзя делать. Вот например в авр студии билд 528 кажется был такой фокус - в ассемблере 2 нельзя юзать запись/чтение из РАМ с пост инкрементом, зато в асме 1 всё хорошо. Теперь поставил дома саму последнюю авр студию и там не работает постинкремент, а в ассемблере 1 нельзя в макросах юзать макросы... есть гденить стандарты или описания?
С постинкрементом там все хорошо, по крайней мере у меня ни разу проблем не возникало (Вы бы код показали, может что-то не так делаете). Описания есть в хелпе студии - Assembler help.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
принципиальная разница между вторым и первым ассемблером AVR Studio в том, что второй более Си-ориентирован: он понимает и обрабатывает все макросы Си-стиля, например, вместо директивы .def можно использовать #define и т.п. В остальном разницы нет. Ну, разве что второй ассемблер поддерживает последние новинки, а первый они похоже забросили в плане обновления.
Ни о каком "стандарте" ассемблера речь не идет - слишком мелкие масштабы у Atmel, чтобы их детище стало стандартом. Речь идет лишь о внутрикорпоративном подходе, а потому "что хочу, то и ворочу". Не используйте первый ассемблер, да и все. Второй прекрасно понимает программы в стиле первого (но не наоборот).
2 Aheir : стандартов Си действительно существует более одного, классика - ANSII C, при этом Си по Кернигану и Ритчи несколько от него отличается (и тем не менее де-факто тоже является стандартом). Есть еще модификации стандарта ISO C90, ISO C99 и еще ряд менее распространенных. Отличия между ними порой весьма существенные, например, С99 позволяет делать определение переменных в любом месте, а ANSII С - нет.
Ни о каком "стандарте" ассемблера речь не идет - слишком мелкие масштабы у Atmel, чтобы их детище стало стандартом. Речь идет лишь о внутрикорпоративном подходе, а потому "что хочу, то и ворочу". Не используйте первый ассемблер, да и все. Второй прекрасно понимает программы в стиле первого (но не наоборот).
2 Aheir : стандартов Си действительно существует более одного, классика - ANSII C, при этом Си по Кернигану и Ритчи несколько от него отличается (и тем не менее де-факто тоже является стандартом). Есть еще модификации стандарта ISO C90, ISO C99 и еще ряд менее распространенных. Отличия между ними порой весьма существенные, например, С99 позволяет делать определение переменных в любом месте, а ANSII С - нет.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
AVR Studio - это лишь оболочка, а для работы с С++ нужен компилятор. подключайте WinAVR, работайте, только вот с отладкой могут быть проблемы...Anatrulij писал(а):А как настроить AVR Studio на работу с С++ кодом?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
что то не пойму на что ругается 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
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
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что то снова не так... 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) в основной цикл.
почему так?
вроде правильно инициализировал:
; ******************************************************
; 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) в основной цикл.
почему так?
Alexeus писал(а):что то снова не так... Stack underflow at 0x005d, invalid opcode at 0xffff at adress 0x00ffff
вроде правильно инициализировал:
...
почему так?
Похоже на то, что вы когда возвращаетесь из подпрограммы выполняете ret 2 раза, при этом Ваша подпрограмма была вызвана из основного цикла, в результате происходит выборка адреса возврата из стека по несуществующему адресу.
И еще, таблица прерывания скорее всего не правильная, т. к. подозреваю что у вашего контроллера два слова программной памяти на каждый вектор прервывания. А вообще лучше код целиком покажите.
EEPROM
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.
А в докуметации написано что должна писать ???
Используйте VMLAB или PROTEUS с библиотекой от 7.5 - будет работать.
А студию скачайте 4.16
-
BerZerK-ku
- Мучитель микросхем
- Сообщения: 492
- Зарегистрирован: Вт июл 22, 2008 08:10:54