Подключил к ATmega64 внешнюю память, как только выставляю флажок
доступности внешней SRAM (MCUCR=80h) программа зависает.
Никаких обращений к внешней памяти нет. Компилятор не знает о наличии внешней памяти.
Предполагал обращаться к внешней памяти вот так:
Цитата
adr_RAM = (char *) 0x1100;
#asm
lds R26, _adr_RAM; Загрузить адрес куда производится запись данных
lds R27, _adr_RAM+1; Содержимое переменной в регистр X
.....
st X+,r1;сохранить содержимое r1 по адресу X с постинкрементом
#endasm
#asm
lds R26, _adr_RAM; Загрузить адрес куда производится запись данных
lds R27, _adr_RAM+1; Содержимое переменной в регистр X
.....
st X+,r1;сохранить содержимое r1 по адресу X с постинкрементом
#endasm
Код работы с внешней памяти пока закомментировал.
Схема внизу, все стробы соответствуют описанию, ALE начинает плясать, все биты адреса тоже пляшут, никто не зашунтирован. Регистр-защелку (74HCT573) проверял, байт защелкивает при ALE=0, стробы RD,WR (BS62LV256) висят в "1". То есть обращений
к внешней памяти нет, выход SRAM находится в высокоомном состоянии.
Может, при включении внешней памяти помимо MCUCR=80 надо еще что-то прописать???
Например, чтобы корректно работали шины адреса/данных???
Нажмите для просмотра прикрепленного файла