Цитата(avesat @ Aug 14 2005, 20:47)
Как отрезать кусок памяти программ для своих целей в mspgcc? В IAR просто редактируется xcl и все. (см. FAQ Сергея Борща). Для gcc я таких опций линкера не нашел, или плохо искал?
-----делаем новый линкерный скрипт msp430x149.xf (изменения относительно msp430x149.x)
MEMORY
{
flashinfo (rw) : ORIGIN = 0x1100, LENGTH = 0x100
text (rx) : ORIGIN = 0x1200, LENGTH = 0xede0
...
.flashinfo :
{
*(.flashinfo)
} > flashinfo
.bss SIZEOF(.data) + ADDR(.data) :
...
----- test.c
#define FLASHINFO __attribute__((section(".flashinfo")))
unsigned FLASHINFO fcfg = 10;
typedef struct {
unsigned u;
char s[10];
} fstru_t;
fstru_t FLASHINFO fstru1 = { 5, "abcXYZ" };
----- вот что показывает msp430-objdump -D
Disassembly of section .text:
00001200 <_reset_vector__>:
1200: b2 40 80 5a mov #23168, &0x0120 ;#0x5a80
1204: 20 01
...
Disassembly of section .flashinfo:
00001100 <fcfg>:
1100: 0a 00 .word 0x000a; ????
00001102 <fstru>:
1102: 05 00 .word 0x0005; ????
1104: 61 62 addc.b #4, r1 ;r2 As==10
1106: 63 58 .word 0x5863; ????
1108: 59 5a 00 00 add.b 0(r10), r9 ;