Перейти к содержанию
    

Axer

Участник
  • Постов

    7
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Контакты

  • ICQ
    Array
  1. WinAVR & External memory

    Сделал тест памяти. Все работает. С указателями ситуация так и не ясна. Когда он во встроенной памяти - все работает. Как только во внешнюю его помещаю, начинается ерунда.
  2. WinAVR & External memory

    А это здесь причем? Во внешней или во внутренней, все равно глючит. А во внешней вот почему: EXTMEMOPTS = -Wl,-Tdata=0x801100,--defsym=__heap_end=0x8090ff Подразумевается, что char* a используется для хранения различных строк. Да, они практически не отличаются. Читаю.
  3. WinAVR & External memory

    так: ce210_print("string"); или так: char* a; ce210_print(a);
  4. WinAVR & External memory

    Я ответил. void ce210_print(char *s) { while (*s) ce210_send(*s++); } это вся функция. Samsung 328А Попробую так...
  5. WinAVR & External memory

    Нет, не в этом дело :( Да и не мог указатель так далеко забраться, я памяти мало использую.
  6. WinAVR & External memory

    void ce210_print(char *s) { while (*s) ce210_send(*s++); } Я совершенно уверен, что дело тут не в приоритетах, как я уже сказал, без внешней памяти все работает правильно. Да, еще одно наблюдение. При инициализации всей памяти, которая учавствует в memmove(), ошибки вроде исчезают. Шаманство какое-то...
  7. WinAVR & External memory

    Здравствуйте. У меня проблема с внешней памятью при работе с АтМега64. Есть программа, рабочая. При подключении внешней памяти начинаются непонятные ошибки, причем ошибки начинаются при выполнении команды memmove() или при выполнении функции вывода строки: while (*s) ce210_send(*s++); Вот строчка в мейкфайле, где включаю память, и потом флаги: EXTMEMOPTS = -Wl,-Tdata=0x801100,--defsym=__heap_end=0x8090ff ASFLAGS = -Wa,-ahlms=$(<:%.S=lst/%.lst),-gstabs -mmcu=$(MCU) CPFLAGS = -MMD -g -O$(OPT) -funsigned-char -funsigned-bitfields -fpack-struct -Wall -Wstrict-prototypes -Wa,-ahlms=$(<:%.c=lst/%.lst) -mmcu=$(MCU) $(CDEFS) LDFLAGS = -Wl,-Map=lst/$(TRG).map,--cref, -L$(LIBDIR), $(EXTMEMOPTS) -lm -mmcu=$(MCU) Вот инициализация в программе: setreg(MCUCR, SRE, 1); // enable external memory (xram) setreg(MCUCR, SRW10, 1); // configure xram XMCRA = _BV(SRW00) | _BV(SRW01) | _BV(SRW11); // Видно, что проблемы именно с памятью, но вот только где конкретно, не могу понять. Что не так? P.S. Версия ВинАВР последняя.
×
×
  • Создать...