Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Инициализация данных при прошивке
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
buktak
Пишу простенькую программу.
В программе нужно с помощью IAP считывать данные из определенной области. Иногда в эту область нужно записывать данные.
А как эти данные проинициализировать при прошивке, чтобы при первом считывании не получить мусор?
Работаю с LPC2378, среда Keil uVision.
aaarrr
Добавьте magic number и/или CRC, и инициализируйте при несовпадении.
Сергей Борщ
Цитата(buktak @ Jun 3 2009, 18:46) *
А как эти данные проинициализировать при прошивке, чтобы при первом считывании не получить мусор?
Если я правильно понял вопрос, то объявить константный массив, задав ему конкретный адрес или сегмент (что-то вроде @ addr, не знаю точно как это будет у кейла). Что-то вроде такого:
Код
typedef struct
{
   uint32_t a;
   uint8_t b;
} my_struct_t;

my_struct_t const  config_array[] @ 0x12345 =
{
  { 1,2},
  {3, 4}
}
Тогда содержимое этого массива попадет в файл прошивки. И еще надо позаботиться, чтобы компилятор не выкинул этот массив при оптимизации. Но раз планируется чтение, то значит обращение к этому массиву будет, и коомпилятор его оставит.
buktak
Цитата(Сергей Борщ @ Jun 4 2009, 02:47) *
Если я правильно понял вопрос, то объявить константный массив, задав ему конкретный адрес или сегмент (что-то вроде @ addr, не знаю точно как это будет у кейла).

Спасибо за наводку.
У Keil'a будет так:

#include <absacc.h>

int var __at (0x4000E800) = 100;
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.