то-есть нужно вручную написать функцию для перевода текста в управляющий символ?
Для того, чтобы компилятор добавил процедуру __do_copy_data, ее надо явно объявить:
.global __do_copy_data
Тогда компилятор добавит код заполнения данных в SRAM из Flash, о котором Вы писали ранее.
.global __do_copy_data
создаёт ссылку на символ и линковщик его прилинковывает к программе.Возможно, gcc так компилирует код на Си
нигде не встречал информацию о том, что для загрузки в SRAM нужно что-то отдельно прописывать в компилятор.
avr-gcc -g -mmcu=avr4
Тоесть, значение не устанавливается только при инициализации в сегции .data
Sections:
Idx Name Size VMA LMA File off Algn
0 .data 00000124 00800100 00001db0 00001e44 2**0
CONTENTS, ALLOC, LOAD, DATA
...
00000000 <__vectors>:
0: 19 c0 rjmp .+50 ; 0x34 <__ctors_end>
...
00000034 <__ctors_end>:
34: 11 24 eor r1, r1
36: 1f be out 0x3f, r1 ; 63
38: cf ef ldi r28, 0xFF ; 255
3a: d4 e0 ldi r29, 0x04 ; 4
3c: de bf out 0x3e, r29 ; 62
3e: cd bf out 0x3d, r28 ; 61
00000040 <__do_copy_data>:
40: 12 e0 ldi r17, 0x02 ; 2
42: a0 e0 ldi r26, 0x00 ; 0
44: b1 e0 ldi r27, 0x01 ; 1
46: e0 eb ldi r30, 0xB0 ; 176
48: fd e1 ldi r31, 0x1D ; 29
4a: 02 c0 rjmp .+4 ; 0x50 <__do_copy_data+0x10>
4c: 05 90 lpm r0, Z+
4e: 0d 92 st X+, r0
50: a4 32 cpi r26, 0x24 ; 36
52: b1 07 cpc r27, r17
54: d9 f7 brne .-10 ; 0x4c <__do_copy_data+0xc>