Цитата(Сергей Борщ @ Mar 14 2008, 14:00)

А вот родилась мысль - может они хотели сделать быстрое копирование, копируя по два байта за каждый проход цикла? Или может так оно и было когда-то, но потом отказались, а это выравнивание - рудимент?
Хм... Как раз на днях макет один начал делать, для серии - зашивает тестовую програму в изделие, дёргает за разные ноги, то-сё, потом зашивает рабочую программу. Это всё без компа работать будет (точнее, прошивки от него получать, на тему серийных номеров общаться оно будет, но там свой контроллер в стенде и он будет шить).
Ну так вот забыл уже, что avreal-то давно уже при неполном слове в .hex для флеша от себя добавляет недостающий байт 0xFF.
А для стенда писал из головы, там не надо сильно много всего, проще было заново. Нарвался на то, что в доп. секции во флеше с серийным номером и калибровочными константами, имеющей нечётное число байт - последний байт не записывается во флеш. Тут-то и вспомнил, что в avreal-е сделано дописывание от себя до полного слова. Ну, для данной задачи было проще в линкерном скрипте для секции .cfg добавить .=ALIGN(2); чем усложнять программу макета

А секция .data летит в .hex и при её нечётной длине в хексе какой-то программатор может и обломиться (у AVR по программирования флеша сделано с временным байтовым регистром и если не записать старший байт, то всё слово в буфер страницы не пойдёт, если не писать младший, только старший - то в данном слове продублируется младший из предыдущего слова).