|
Помогите все это поместить во __flash. |
|
|
|
Nov 28 2009, 20:09
|
Участник

Группа: Участник
Сообщений: 65
Регистрация: 12-11-09
Пользователь №: 53 586

|
const struct FONT_DEF fonts[FONT_COUNT] = { {1, 7, five_1_table, 0, five_2_table,' '}, ......... {2, 8, six_1_table, 0, six_2_table, ' '}};
const char five_1_table[] = {0x00,0x00,0x00,...0x00,0x00}; const char five_2_table[] = {0x00,0x00,0x00,...0x00,0x00}; и тд.
|
|
|
|
|
Nov 28 2009, 21:02
|
Участник

Группа: Участник
Сообщений: 65
Регистрация: 12-11-09
Пользователь №: 53 586

|
Не годится... На структуру ставлю флеш - не ругается, но и все в RAM. На нижнее ставлю - говорит так нельзя.
|
|
|
|
|
Nov 28 2009, 21:34
|

Гуру
     
Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659

|
Цитата(kiv121 @ Nov 29 2009, 03:09)  Код typedef struct __MyStruct { int x; int y; int z; } MyStruct;
__flash MyStruct fonts[3] = { {1,2,3},{4,5,6},{7,8,9}, };
--------------------
|
|
|
|
|
Nov 28 2009, 21:47
|
Участник

Группа: Участник
Сообщений: 65
Регистрация: 12-11-09
Пользователь №: 53 586

|
Так- то понятно. А если это привязать к моей? Массивы как и положено байт по 500.
|
|
|
|
|
Nov 28 2009, 21:52
|

Гуру
     
Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659

|
Цитата(kiv121 @ Nov 29 2009, 04:47)  Так- то понятно. А если это привязать к моей? Массивы как и положено байт по 500. Код typedef struct __MyStruct { int x; int y; char __flash* m1; int z; char __flash* m2; } MyStruct;
__flash char five_1_table[] = {0x00,0x00,0x00,0x00,0x00}; __flash char five_2_table[] = {0x00,0x00,0x00,0x00,0x00}; __flash char five_3_table[] = {0x00,0x00,0x00,0x00,0x00};
__flash MyStruct fonts[3] = { {1,2, five_1_table, 3},{4,5, five_2_table, 6},{7,8, five_3_table, 9}, }; Код 25 typedef struct __MyStruct 26 { 27 int x; 28 int y; 29 char __flash* m1; 30 int z; 31 char __flash* m2; 32 33 } MyStruct; 34
\ In segment NEAR_F, align 1, keep-with-next 35 __flash char five_1_table[] = {0x00,0x00,0x00,0x00,0x00}; \ five_1_table: \ 00000000 0000000000 DC8 0, 0, 0, 0, 0
\ In segment NEAR_F, align 1, keep-with-next 36 __flash char five_2_table[] = {0x00,0x00,0x00,0x00,0x00}; \ five_2_table: \ 00000000 0000000000 DC8 0, 0, 0, 0, 0 37
\ In segment NEAR_F, align 1, keep-with-next 38 __flash MyStruct fonts[3] = \ fonts: \ 00000000 00010002.... DC16 1, 2, five_1_table, 3 \ 0003 \ 00000008 0000 DC8 0, 0 \ 0000000A 00040005.... DC16 4, 5, five_2_table, 6 \ 0006 \ 00000012 0000 DC8 0, 0 \ 00000014 00070008.... DC16 7, 8, five_1_table, 9 \ 0009 \ 0000001C 0000 DC8 0, 0 39 { 40 {1,2, five_1_table, 3},{4,5, five_2_table, 6},{7,8, five_1_table, 9}, 41 };
--------------------
|
|
|
|
|
Nov 28 2009, 22:35
|
Участник

Группа: Участник
Сообщений: 65
Регистрация: 12-11-09
Пользователь №: 53 586

|
Спасибо!
Вот тут ругается
{1,2, five_1_table, 3},{4,5, five_2_table, 6},{7,8, five_1_table, 9},
на массивы.
Мож компилятор?
Сообщение отредактировал kiv121 - Nov 28 2009, 22:46
|
|
|
|
|
Nov 29 2009, 06:59
|
Местный
  
Группа: Свой
Сообщений: 466
Регистрация: 21-06-05
Пользователь №: 6 205

|
Цитата(kiv121 @ Nov 29 2009, 00:35)  Вот тут ругается {1,2, five_1_table, 3},{4,5, five_2_table, 6},{7,8, five_1_table, 9}, Попробуй-те убрать в описании структуры строчку char __flash* m2;. И еще неплохо привести пример того КАК оно ругаеться!
|
|
|
|
|
Nov 29 2009, 08:31
|
Участник

Группа: Участник
Сообщений: 65
Регистрация: 12-11-09
Пользователь №: 53 586

|
Добрый день! У меня тоже IAR 5.3 А это реальный код. в .h файле: Код typedef struct __FONT_DEF { char store_width; char glyph_height; char __flash *glyph_table; char fixed_width; char __flash* width_table; char glyph_beg; char glyph_end; char glyph_def; } FONT_DEF;
__flash FONT_DEF fonts[FONT_COUNT]; в .с файле: Код __flash FONT_DEF fonts[FONT_COUNT] = { #ifdef EN_FIVE_DOT {1, 7, five_dot_glyph_table, 0, five_dot_width_table,' ','~','.'}, здесь так: Error[Pe144]: a value of type "char const *" cannot be used to initialize an entity of type "char __flash * #endif
#ifdef EN_SIX_DOT {2, 8, six_dot_glyph_table, 0, six_dot_width_table,' ','~','.'}, #endif и тд.... Код __flash char five_dot_glyph_table[] = {
0x00, /* [ ] */ 0x00, /* [ ] */ 0x00, /* [ ] */ 0x00, /* [ ] */ и тд... Не знаю зачем убирать строчку (выше указанную), пишет как и положено- много вылуев инициал-но.
Причина редактирования: Оформление цитаты исходника.
|
|
|
|
|
Nov 29 2009, 09:07
|
Участник

Группа: Участник
Сообщений: 65
Регистрация: 12-11-09
Пользователь №: 53 586

|
Заработало, спасибо!
Фишка в чем была. Этот проект был написан в кейле под LPC с обвеской памяти. Там заморочки с подзагрузкой шрифтов. Поэтому и в хидере и в чем только все лежало. Без .h все работает.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|