Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: uc/Gui 3.32a
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы
BioWolf2000
Как заставить компилятор 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
AlexandrY
Еще бы не ругаться.
У IAR-а ведь функции работы с FLASH имеют уникальные названия.
Придется круто патчить GUI
IgorKossak
BioWolf2000
Вам следует в файле GUI_ConfDefaults.h переопределить определение
Код
#ifndef GUI_CONST_STORAGE
 #define GUI_CONST_STORAGE const
#endif
на следующее
Код
#ifndef GUI_CONST_STORAGE
 #define GUI_CONST_STORAGE __flash
#endif
IgorKossak
Кстати, я говорил об исправлениях в версии 3.90a.

Что касается Вашей версии, то у меня её нет, но решение должно быть аналогичным.
Не могли бы Вы привести полностью сообщение компилятора?
BioWolf2000
Цитата(IgorKossak @ Oct 13 2005, 10:08)
Кстати, я говорил об исправлениях в версии 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
Цитата(IgorKossak @ Oct 13 2005, 09:54)
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 выдаёт туже ошибку...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.