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

Инициализация данных при прошивке

Пишу простенькую программу.

В программе нужно с помощью IAP считывать данные из определенной области. Иногда в эту область нужно записывать данные.

А как эти данные проинициализировать при прошивке, чтобы при первом считывании не получить мусор?

Работаю с LPC2378, среда Keil uVision.

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


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

А как эти данные проинициализировать при прошивке, чтобы при первом считывании не получить мусор?
Если я правильно понял вопрос, то объявить константный массив, задав ему конкретный адрес или сегмент (что-то вроде @ addr, не знаю точно как это будет у кейла). Что-то вроде такого:
typedef struct
{
   uint32_t a;
   uint8_t b;
} my_struct_t;

my_struct_t const  config_array[] @ 0x12345 =
{
  { 1,2},
  {3, 4}
}

Тогда содержимое этого массива попадет в файл прошивки. И еще надо позаботиться, чтобы компилятор не выкинул этот массив при оптимизации. Но раз планируется чтение, то значит обращение к этому массиву будет, и коомпилятор его оставит.

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


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

Если я правильно понял вопрос, то объявить константный массив, задав ему конкретный адрес или сегмент (что-то вроде @ addr, не знаю точно как это будет у кейла).

Спасибо за наводку.

У Keil'a будет так:

 

#include <absacc.h>

 

int var __at (0x4000E800) = 100;

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


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

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

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

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

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

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

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

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

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

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