реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Помогите все это поместить во __flash.
kiv121
сообщение Nov 28 2009, 20:09
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 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};
и тд.
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Nov 28 2009, 20:26
Сообщение #2


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



__flash const и т. д.
Go to the top of the page
 
+Quote Post
kiv121
сообщение Nov 28 2009, 21:02
Сообщение #3


Участник
*

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



Не годится...
На структуру ставлю флеш - не ругается, но и все в RAM.
На нижнее ставлю - говорит так нельзя.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Nov 28 2009, 21:34
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 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},
};


--------------------
Go to the top of the page
 
+Quote Post
kiv121
сообщение Nov 28 2009, 21:47
Сообщение #5


Участник
*

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



Так- то понятно.
А если это привязать к моей?
Массивы как и положено байт по 500.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Nov 28 2009, 21:52
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 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          };


--------------------
Go to the top of the page
 
+Quote Post
kiv121
сообщение Nov 28 2009, 22:35
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
prottoss
сообщение Nov 29 2009, 04:53
Сообщение #8


Гуру
******

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



Цитата(kiv121 @ Nov 29 2009, 05:35) *
Мож компилятор?
Я сделал с помощью IAR 5.30


--------------------
Go to the top of the page
 
+Quote Post
kurtis
сообщение Nov 29 2009, 06:59
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 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;. И еще неплохо привести пример того КАК оно ругаеться!
Go to the top of the page
 
+Quote Post
kiv121
сообщение Nov 29 2009, 08:31
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 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,     /*  [  ]  */
и тд...

Не знаю зачем убирать строчку (выше указанную),
пишет как и положено- много вылуев инициал-но.
Причина редактирования: Оформление цитаты исходника.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Nov 29 2009, 08:46
Сообщение #11


Гуру
******

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



Цитата(kiv121 @ Nov 29 2009, 15:31) *
У меня весь Ваш код приведенный код компилируется прекрасно. Листинги я уже показывал. Не понятно только, зачем объявление массива __flash FONT_DEF fonts[FONT_COUNT]; Вы запихали в хедер.

Я все вставил в си-файл и все скомпилилось прекрасно.


--------------------
Go to the top of the page
 
+Quote Post
kiv121
сообщение Nov 29 2009, 09:07
Сообщение #12


Участник
*

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



Заработало, спасибо!

Фишка в чем была. Этот проект был написан в кейле под LPC
с обвеской памяти. Там заморочки с подзагрузкой шрифтов.
Поэтому и в хидере и в чем только все лежало.
Без .h все работает.
Go to the top of the page
 
+Quote Post
bbill
сообщение Nov 30 2009, 16:10
Сообщение #13


Частый гость
**

Группа: Участник
Сообщений: 76
Регистрация: 21-10-05
Пользователь №: 9 941



Скажите, а как объявить эту же структуру во втором файле *.с этого же проекта(в проекте два *.с файла).
Спасибо.

Сообщение отредактировал bbill - Nov 30 2009, 16:29
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Nov 30 2009, 17:23
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(bbill @ Nov 30 2009, 20:10) *
как объявить эту же структуру во втором файле

Ключевое слово typedef, про которое Вы можете прочитать в любом учебнике, который у Вас, конечно же, уже есть.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
bbill
сообщение Nov 30 2009, 17:42
Сообщение #15


Частый гость
**

Группа: Участник
Сообщений: 76
Регистрация: 21-10-05
Пользователь №: 9 941



Так у меня получилось, НО только если структура объявляется в хидере(file1.h) file1.с файла. При переносе ее(структуры) из хидера в file1.c в файле file2.c она уже не видна(компилятор(IAR)пишет о том что не определено такое-то ...).
Понимаю, что делаю что-то не так.
К сожалению ни в одном учебнике явно это не рассматривается.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 17:59
Рейтинг@Mail.ru


Страница сгенерированна за 0.02586 секунд с 7
ELECTRONIX ©2004-2016