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

satory2600

Новичок
  • Постов

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

  • Посещение

Репутация

0 Обычный
  1. УРА!!! Поборол проблему. Все, видимо, оказалось в процедуре вывода строк на экран ЖКИ. Раньше она выглядела так: __flash char *SOFTREV = { "Soft rev. - 1.00 ", }; void DrawString(char *str) { for(char i=0;i<18;i++) { DrawSymbol(str); } } И для вывода строки использовалась: DrawString(SOFTREV); Или можно прямо: DrawString(”1234567890zzzzzzz”); //------------------------------------------------------------------------------ Я поменял код на: void DrawString(char __flash *str I) { for(char i=0;i<18;i++) { char P=*(str+i); DrawSymbol(P); } } и void DrawStringC(char *str) { for(char i=0;i<18;i++) { char P=*(str+i); DrawSymbol(P); } } И для вызова использую их так: char str[18]= ”1234567890zzzzzzz”; __flash char *SOFTREV[18] = { "Soft rev. - 1.00 ", }; DrawString(&SOFTREV[0]); DrawStringC(str); Т.е. при передаче параметров в процедуру использую адрес [0]- го элемента массива. Ошибка исчезла. Компилируется нормально. Всем спасибо!!!
  2. Все строки я объявляю через дерективу __flash char *
  3. Помогите пожалуйста разобраться, в чем ошибка. Добавил в проект менюшку, вылезла ошибка. Как с этим бороться?(((( Как я понимаю, не хватает памяти ОЗУ для глобальных переменных. Что мне делать?((( Error[e16]: Segment NEAR_Z (size: 0x36a align: 0) is too long for segment definition. At least 0x39 more bytes needed. The problem occurred while processing the segment placement command "-Z(DATA)NEAR_I,NEAR_Z=_..X_SRAM_BASE-Error[e16]: Segment NEAR_Z (size: 0x36a align: 0) is too long for segment definition. At least 0x39 more bytes needed. The problem occurred while processing the segment placement command "-Z(DATA)NEAR_I,NEAR_Z=_..X_SRAM_BASE-_..X_SRAM_END,_..X_EXT_SRAM_BASE:+_..X_EXT_SRAM_SIZE", where at the moment of placement the available memory ranges were "DATA:dcf-10ff,DATA:10ff--1"
×
×
  • Создать...