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

Размещение массива структур во _flash в среде KEIL.

Помогите разместить данную таблицу во флэш АРМ ADUC7060 в среде KEIL. Слово const, похоже, не работает и как проверить?

struct ROW_TABLE
{
    unsigned char state;          
    unsigned char event;           
    unsigned char nextState;     
    void (*pStateFunc)(void);                       
};

// *** F U N C T I O N S *** //
  void EmptyFunc(void);
  void EmptyFunc1(void);

// *** S T A T E   T A B L E *** //
const struct ROW_TABLE table[] = {
  //  STATE              EVENT          NEXT STATE          STATE_FUNC    
  //  ----------------------------------------------------------------
    { STATE_Normal        , EVENT_Timer_1,    STATE_Next_state,   EmptyFunc },
    { STATE_Next_state     , EVENT_Timer_1,    STATE_Normal,       EmptyFunc1 },

    { 0,                   0,           0,                  EmptyFunc }
        
};

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


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

const надо перед объявлением переменной писать. Либо я не понимаю что у вас написано.

const struct ROW_TABLE table[] = {

вот это что такое?

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


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

Это обьявление массива структур. Похоже данный код заработал, и массив "лёг" куда нужно.

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


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

Это обьявление массива структур. Похоже данный код заработал, и массив "лёг" куда нужно.

В подобных объявлениях переменной, можно описывать тип через typedef

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


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

может кто подскажет? как поместить эту структуру в определённое (заданное) место программы.

пытался ld скрипт менять, что-то ничего не получается

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


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

может кто подскажет? как поместить эту структуру в определённое (заданное) место программы.

пытался ld скрипт менять, что-то ничего не получается

#ifdef ( __CC_ARM )  // Keil
#include <absacc.h>
#endif
const struct ROW_TABLE table[]  __at (0x00001000) = 
{
...
};

 

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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