Ну, как минимум, скорость вывода. Вы щитаете расточительством такое?
Смотря что выводится. Если меню на 100500 страниц - это одно, а если действительно книга - это совсем другое…
0.5 ? Срецтва? 32768 милилитров?
Тема не нова, ещё в 80-х тема страниц была актуальна!
Проблема в математике, 2^16 = 64кб. Нуникак ± нуникак нииначе.
ПоЭтому зачем в 328 страничная память??? Нипанятна.
Атмега 256х использует дополнительный extended бит адреса для программирования, так как при 16 разрядно адресе можно адресовать 64к 16 битных слов, что равняется 128 Кб. Но это никак не должно влиять на процесс программирования, так как ide сама распределяет сегменты памяти.
Не знаю как у 2560, но у 128 атмеги был фуз бит совместимости со 106 что ли атмегой, при установке которого прошивка не работала.
А ещё в конце флеша, если это ардуино плата, расположен бутлоадер, но это 512 или 1024 байт.
Ещё вопрос, все ли AVCC запитаны?
Как вариант, скиньте скетч, если он не коммерческий, чтобы люди на своих Ардуино сега проверили его работоспособность. Тогда будет понятно, атмега палёная у Вас или прошивка нерабочая.
Вот тут не понял. Можно поподробнее?
Да это про адресацию… Только это ни о чём, т.к. компилятор и программатор , конечно же " в курсе", даташит читали))
Можно. При программировании (прошивке) любого микроконтроллера авр как по spi, так и в параллельном режиме используется 16 битный адрес. Комбинация из 16 бит - это 0-65536. Практически все команды авр (опкоды) за небольшим исключением - это 16 битные слова, то есть два байта. Таким образом с помощью 16 битного адреса можно адресовать 65536 16 битных слов, что равняется 128 килобайтам. Так вот для микроконтроллеров авр с 256к флеша, чтобы адресовать верхнюю половину памяти программ используется дополнительный 17 бит адреса, который устанавливается или сбрасывается специальной командой про программировании.
Это всё подробно описано в даташите в разделе “programming”.
Я это знаю, потому что делал свои программаторы (не на avrdude) как ISP, так и параллельный. А с опкодами знаком, так как пытался создать ядро авр на ПЛИС.
Так уж получилось, что знакомство с пердуиной лично я начал с меги. Моргалово, дим, шим, дисплей 20х40. Шибко сильно помог протеус и авр-студия для отладки и тп. В том же протеусе именно для авр очень коассно всё симулируется и реально можно посмотреть абсолютно ВСЁ, ежли уметь пользоваться протеусом.
Мне одно не понятно, 2^16= FFFFh , с какого хера 128 кб???
@NMi , скажи честно - ты ребенок малый или до тебя с 20го…50го раза доходит?!
Тебя же уже банили за твою речь, а ты всё равно продолжаешь. «Пердуина» и другие «падонкаффскее» словечки на соответсвующих ресурсах используй. А здесь, будь любезен - пиши нормально, по русски!
Вроде бы всё достаточно доходчиво:
Вот как ты думаешь, знаю я это или нет? В двоичной системе исчисления эта циферка будет выглядеть гоОораздо "эпичнее….. )))
В твоём распоряжении три “нижних регистра”, они же, регистровые пары X, Y и Z , верно? Регистры у авр ВОСЬМИБИТНЫЕ, соответственно, регистровые пары будут ШЕСТНАДЦАТИБИТНЫМИ, верно? Каким образом ты сможешь косьвенной адресацией адресовать ячейку памяти больше, чем [ffffh]??? Как, карЛ???
Да всё правильно @Андрей пишет, чего пристал?))
Только программатор и компилятор “обязаны” всё это “знать” ИМХО
P.S.
Извини, не заметил. Пора другими делами заняться значит…
Если шьёте через Arduino IDE, значит используете загрузчик. А он записывается по определённым адресам в конце флеша. Если чип - подделка , и, память
то загрузчик скорее, даже и не запишется(стандартным способом, с помощью IDE)…
Если хотите - можете попробовать записать простейший блинк, но по адресу, ближе к концу памяти, перед загрузчиком. Диод мигает на РА0. Проверил на частоте 8мгц в Proteus.
:020000020000FC
:0600000000000D9400EF6A
:020000023000CC
:10DE000021E02093210021E02093220018E42CEB54
:10DE100034EC3A95F1F72A95D9F71A95C1F712E043
:10DE20001A95F1F70000000020E02093220018E48A
:10DE30002CEB34EC3A95F1F72A95D9F71A95C1F7FE
:0CDE400012E01A95F1F700000000DDCFA1
:00000001FF
Скопируйте, и сохраните в текстовом редакторе с расширением .hex
Если в вашем программаторе можно выставить границы адресов, то если
шить ДО 0х1F000 (0х3Е000 если в байтах), - загрузчик сохранится. Если шить по дефолту - загрузчик надо будет записывать заново
P.S. То есть, если заработает, то памяти точно не 128 КБ
У нас память адресуется 16-разрядными словами, поэтому адресное пространство составляет 128к. Если бы адресовалось байтами, было бы 64к. Если бы адресовалось двойными словами, было бы 256к.
Сам посчитай, какой объем займут 65536 16-разрядных слов.
На сегодняшний момент имею следующее:
Избавился от progmem полностью. Если прошивка более 128кб - вылетает ошибка в конце программирования ! =
Если прошивка в районе 122кб, программа виснет по-разному, тупит.
Если урезаю до 80-120кб - всë отлично работает. Такие дела
Да, и ещё момент: я не могу перезагружать мк: ни возврат в 0, ни активация собаки не помогают - идёт зависание.
Мегакоровский загрузчик тоже не решает.


