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

uc/Gui 3.32a

Как заставить компилятор Iar 4.11a размещать фонты во flash памяти?

 

В Gui.h есть строки

/* GUI_FLASH allows to put constants into a special memory area

For most CPUs, this is not necessary hence the default is "".

(This makes sense for CPUs like ATMEL AT90 or 8051, where

default pointers are unable to reach ROM/FLASH memory in some

memory models)

*/

#ifndef GUI_FLASH

#define GUI_FLASH

#endif

 

если исправить #define GUI_FLASH на #define GUI_FLASH __flash то компилятор ругается.

 

зы контроллер t6963

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еще бы не ругаться.

У IAR-а ведь функции работы с FLASH имеют уникальные названия.

Придется круто патчить GUI

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

BioWolf2000

Вам следует в файле GUI_ConfDefaults.h переопределить определение

#ifndef GUI_CONST_STORAGE
 #define GUI_CONST_STORAGE const
#endif

на следующее

#ifndef GUI_CONST_STORAGE
 #define GUI_CONST_STORAGE __flash
#endif

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кстати, я говорил об исправлениях в версии 3.90a.

 

Что касается Вашей версии, то у меня её нет, но решение должно быть аналогичным.

Не могли бы Вы привести полностью сообщение компилятора?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кстати, я говорил об исправлениях в версии 3.90a.

 

Что касается Вашей версии, то у меня её нет, но решение должно быть аналогичным.

Не могли бы Вы привести полностью сообщение компилятора?

Не нашёл в своей версии GUI_CONST_STORAGE, искал во всех файлах. Может в более поздних версиях GUI ввели?

может кто скинет мне на почту zhukowski {at } tut.by?

 

вот что выдаёт компилятор, если я определяю #define GUI_FLASH __flash

 

Building configuration: ip-6 - Debug

Updating build tree...

 

F6x8.C

iccavr.exe D:\IAR Systems\Project\IP-6\gui\Font\F6x8.C -v3 --enhanced_core -ms -o D:\IAR Systems\Project\IP-6\Debug\Obj\ -y --initializers_in_flash

--root_variables -z9 --debug -DENABLE_BIT_DEFINITIONS -e --enable_multibytes -I D:\IAR Systems\Project\IP-6\Source\ -I D:\IAR Systems\Project\IP-6\

rtc\src\ -I D:\IAR Systems\Project\IP-6\gui\ -I D:\IAR Systems\Project\IP-6\SDFlash\ -I D:\IAR Systems\Project\IP-6\ -I D:\IAR Systems\Project\IP-6\Config\

-I D:\IAR Systems\Project\IP-6\AVR\SOURCE\ -I D:\IAR Systems\Project\IP-6\gui\Core\ -I D:\IAR Systems\Project\IP-6\gui\AntiAlias\ -I D:\IAR Systems\

Project\IP-6\gui\ConvertColor\ -I D:\IAR Systems\Project\IP-6\gui\ConvertMono\ -I D:\IAR Systems\Project\IP-6\gui\Font\ -I D:\IAR Systems\Project\IP-6\

gui\LCDDriver\ -I D:\IAR Systems\Project\IP-6\gui\MemDev\ -I D:\IAR Systems\Project\IP-6\gui\Widget\ -I D:\IAR Systems\Project\IP-6\gui\WM\ -I D:\IAR

Systems\Embedded Workbench 4.0 Evaluation\avr\INC\ -I D:\IAR Systems\Embedded Workbench 4.0 Evaluation\avr\INC\CLIB\ --eeprom_size 4096

 

IAR Atmel AVR C/C++ Compiler V4.11A/W32, Evaluation Version

Copyright 1996-2005 IAR Systems. All rights reserved.

Error[Pe144]: a value of type "struct <unnamed> const __flash *" cannot be used to initialize an entity of type "struct <unnamed> const *" D:\IAR Systems\Project\IP-6\gui\Font\F6x8.C 2219

Error[Pe144]: a value of type "void __flash *" cannot be used to initialize an entity of type "void *" D:\IAR Systems\Project\IP-6\gui\Font\F6x8.C 2224

Error[Pe144]: a value of type "void __flash *" cannot be used to initialize an entity of type "void *" D:\IAR Systems\Project\IP-6\gui\Font\F6x8.C 2225

Error[Pe144]: a value of type "struct <unnamed> const __flash *" cannot be used to initialize an entity of type "struct <unnamed> const *" D:\IAR Systems\Project\IP-6\gui\Font\F6x8.C 2226

Error[Pe147]: declaration is incompatible with "GUI_FONT const __flash GUI_Font6x8" (declared at line 2230) D:\IAR Systems\Project\IP-6\gui\Font\F6x8.C 2230

Error[Pe144]: a value of type "void __flash *" cannot be used to initialize an entity of type "void *" D:\IAR Systems\Project\IP-6\gui\Font\F6x8.C 2230

Error[Pe147]: declaration is incompatible with "GUI_FONT const __flash GUI_Font6x9" (declared at line 2231) D:\IAR Systems\Project\IP-6\gui\Font\F6x8.C 2231

Error[Pe144]: a value of type "void __flash *" cannot be used to initialize an entity of type "void *" D:\IAR Systems\Project\IP-6\gui\Font\F6x8.C 2231

 

Errors: 8

Warnings: none

 

Total number of errors: 8

Total number of warnings: 0

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

BioWolf2000

Вам следует в файле GUI_ConfDefaults.h переопределить определение

#ifndef GUI_CONST_STORAGE
 #define GUI_CONST_STORAGE const
#endif

на следующее

#ifndef GUI_CONST_STORAGE
 #define GUI_CONST_STORAGE __flash
#endif

 

В версии 3.90a прописал как указано выше __flash выдаёт туже ошибку...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...