[an error occurred while processing this directive]
|
#include int putchar(int c) { int main( void ) static const __farflash char sl[] = "2"; Выводит 0x31 0x31 0x00 x00 и так дальше ноли в цикле Использую стандартный проект IAR 4.20, только проц поменял на мегу128. Без printf_P в цикле нормально выводится единица. Переменная sl лежит в FAR_F Вот MAP файл SEGMENT SPACE START ADDRESS END ADDRESS SIZE TYPE ALIGN Вот ассемблерный листинг 17 static const __farflash char sl[] = "2"; \ In segment FAR_F, align 1, keep-with-next \ In segment NEAR_ID, align 1, keep-with-next \ In segment NEAR_I, align 1, keep-with-next
#include
#include
while(!(UCSR0A & (1 << UDRE0)));
UDR0 = c;
return c;
}
{
UCSR0B = (1 << RXCIE0)|(1 << TXCIE0)|(1 << RXEN0)|(1 << TXEN0);
UCSR0C = (1 << UCSZ01)|(1 << UCSZ00);
UBRR0L = 51;
for (;;) {
printf("1");
printf_P(sl);
}
}
Я так понимаю первый раз на printf_P все просто перегружается, потом входит в какой то цикл.
======= ===== ============= =========== ==== ==== =====
INTVEC CODE 00000000 - 00000003 4 com 1
?FILL1 CODE 00000004 - 0000008B 88 rel 0
NEAR_F CODE 0000008C - 000000C0 35 rel 0
SWITCH CODE 000000C2 - 000000F5 34 rel 1
CODE CODE 000000F6 - 00001279 1184 rel 1
FAR_F CODE 0000127A - 0000127B 2 rel 0
INITTAB CODE 0000127C - 00001282 7 rel 0
NEAR_ID CODE 00001283 - 00001284 2 rel 0
ABSOLUTE DATA 0000001C rel 0
DATA 0000001D
DATA 0000001E
DATA 0000001F
DATA 00000029 - 0000002C 4
DATA 00000095 - 00000095 1
CSTACK DATA 00000100 - 0000011F 20 dse 0
RSTACK DATA 00000120 - 0000013F 20 dse 0
NEAR_I DATA 00000140 - 00000141 2 rel 0
18 for (;;) {
19 printf("1");
\ ??main_0:
\ 0000000E .... LDI R16, LOW(`?
\ 00000010 .... LDI R17, (`?
\ 00000012 ........ CALL printf
20 printf_P(sl);
\ 00000016 .... LDI R16, LOW(??sl)
\ 00000018 .... LDI R17, HIGH(??sl)
\ 0000001A .... LDI R18, (??sl) >> 16
\ 0000001C ........ CALL printf_P
\ 00000020 CFF6 RJMP ??main_0
21 }
22 }
\ ??sl:
\ 00000000 0032 DB "2"
\ `?
\ 00000000 0031 DB "1"
\ 00000000 REQUIRE `?
\ `?
\ 00000000 DS 2
\ 00000002 REQUIRE `?
ЧТО НЕ ТАК КТО-НИБУДЬ ВИДИТ?
Ответы
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание