ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
20 мая
41010 Топик полностью
ReAl (07.10.2005 19:29, просмотров: 1) ответил misyachniy на WinAvr и внешняя память
Хех... Хотел послать на электроникс на мой ответ по размещении определённых данных во флеше MSP430 да вспомнил, что тут может захотеться более сложного. === xdata.h #define XDATA __attribute__((section(".xdata"))) #define XBSS __attribute__((section(".xbss"))) === test.c uint8_t XDATA xd1 = 5; uint8_t *xptr XDATA = &xd1; // указатель в xdata uint8_t XBSS xdbuf[1024]; === ldscript (на базе штатного скрипта для меги128 MEMORY { text (rx) : ORIGIN = 0, LENGTH = 128K data (rw!x) : ORIGIN = 0x800100, LENGTH = 4K eeprom (rw!x) : ORIGIN = 0x810000, LENGTH = 4K /* sections xdata and xbss */ xdata (rw!x) : ORIGIN = 0x808000, LENGTH = 32K } ... поскипано /* это было */ .eeprom : AT (ADDR (.text) + SIZEOF (.text) + SIZEOF (.data)) { *(.eeprom*) __eeprom_end = . ; } > eeprom /* это добавили */ .xdata : AT (ADDR(.text) + SIZEOF(.text) + SIZEOF(.data) + SIZEOF(.eeprom)) { PROVIDE (__xdata_start = .); *(.xdata*) PROVIDE (__xdata_end = .); } > xdata __xdata_load_start = LOADADDR(.xdata); __xdata_load_end = __xdata_load_start + SIZEOF(.xdata); .xbss SIZEOF(.xdata) + ADDR(.xdata) : { PROVIDE (__xbss_start = .) ; *(.xbss) PROVIDE (__xbss_end = .) ; } > xdata /*это было*/ /* Stabs debugging sections. */ ... поскипано