Пытаюсь подружить mspgcc и scmrtos. Вроде уже компилируется:-)
Но не работает.
Такое впечатление, что не вызываются глобальные конструкторы.
Смотрю листинг, вижу что сразу после копирования data и очистки bss прыгает на main:
Код
00001100 <_reset_vector__>:
1100: b2 40 80 5a mov #23168, &0x0120;#0x5a80
1104: 20 01
1106: 3f 40 6a 1b mov #7018, r15;#0x1b6a
110a: 3e 40 00 02 mov #512, r14;#0x0200
110e: 3d 40 e0 04 mov #1248, r13;#0x04e0
1112: 0d 9e cmp r14, r13;
1114: 05 24 jz $+12 ;abs 0x1120
1116: fe 4f 00 00 mov.b @r15+, 0(r14);
111a: 1e 53 inc r14;
111c: 0e 9d cmp r13, r14;
111e: fb 2b jnc $-8 ;abs 0x1116
1120: 3f 40 e0 04 mov #1248, r15;#0x04e0
1124: 3d 40 e0 04 mov #1248, r13;#0x04e0
1128: 0d 9f cmp r15, r13;
112a: 05 24 jz $+12 ;abs 0x1136
112c: cf 43 00 00 mov.b #0, 0(r15);r3 As==00
1130: 1f 53 inc r15;
1132: 0f 9d cmp r13, r15;
1134: fb 2b jnc $-8 ;abs 0x112c
1136: 30 40 9e 18 br #0x189e;
1100: b2 40 80 5a mov #23168, &0x0120;#0x5a80
1104: 20 01
1106: 3f 40 6a 1b mov #7018, r15;#0x1b6a
110a: 3e 40 00 02 mov #512, r14;#0x0200
110e: 3d 40 e0 04 mov #1248, r13;#0x04e0
1112: 0d 9e cmp r14, r13;
1114: 05 24 jz $+12 ;abs 0x1120
1116: fe 4f 00 00 mov.b @r15+, 0(r14);
111a: 1e 53 inc r14;
111c: 0e 9d cmp r13, r14;
111e: fb 2b jnc $-8 ;abs 0x1116
1120: 3f 40 e0 04 mov #1248, r15;#0x04e0
1124: 3d 40 e0 04 mov #1248, r13;#0x04e0
1128: 0d 9f cmp r15, r13;
112a: 05 24 jz $+12 ;abs 0x1136
112c: cf 43 00 00 mov.b #0, 0(r15);r3 As==00
1130: 1f 53 inc r15;
1132: 0f 9d cmp r13, r15;
1134: fb 2b jnc $-8 ;abs 0x112c
1136: 30 40 9e 18 br #0x189e;
0x189e - это уже main.
Это я глючу, или mspgcc? :-)
Проект прилагается.