[an error occurred while processing this directive]
|
При перекомпиляции Powerswitcha (см. ссылку) IAR_ом под мегу48 компилятор ругается:
Error[e16]: Segment TINY_Z (size: 0x16 align: 0) is too long for segment definition. At least 0x15 more bytes
needed. The problem occurred while processing the segment placement command
"-Z(DATA)TINY_I,TINY_Z,TINY_N=_..X_SRAM_BASE-_..X_SRAM_TEND", where at the moment of placement the available
memory ranges were "DATA:100-100"
Reserved ranges relevant to this placement:
DATA:100-100 TINY_I
Описание из iarcompat.h:
#ifndef USB_BUFFER_SECTION
# define USB_BUFFER_SECTION "TINY_Z" /* if user has not selected a named section */
#endif
При чем avr-gcc использует описание сегмента .dss и работает правильно.
Цитата из usbconfig-prototype.h
/* #define USB_BUFFER_SECTION ".bss" */
/* The USB receive buffer (variable "usbRxBuf") with a length of 22 bytes
* MUST NOT cross a 256 byte boundary. We have introduced this configuration
* option to allow you to change the data segment where this buffer is
* allocated. If you have problems with the default segment (start of .bss),
* you may change this setting. See the comment in usbdrv.h for details.
* On IAR C, the default is the TINY_Z segment (first 256 bytes). You must
* change this default for devices which don't have RAM below 0x100.
*/
Вопрос- Как описать этот сегмент, чтобы иар не ругался?
E-mail: info@telesys.ru