|
Как инициализировать структуру в ЕЕПРОМ |
|
|
|
Aug 5 2009, 18:57
|

Частый гость
 
Группа: Участник
Сообщений: 83
Регистрация: 4-08-09
Из: Болгария / София
Пользователь №: 51 737

|
Как можно инициализировать структуру в ЕЕПРОМ използуя полей (имена полей) внутри структуры?
Сегодня из форума я узнал как сделать инициализацию ЕЕПРОМа с фиксированного адреса:
__root __eeprom uint8_t zast1[11] @ 0x2A = {0xFF, 0x44, 0x33, 0x11, 0x88, 0xAA, 0x77, 0x22, 0x44, 0xEE};
Но не могу понять как инициализировать структуру в ЕЕПРОМ ползуя имена полей. Например:
typedef struct { uint8_t status; /* STATUS */ uint8_t ID; /* ID */ uint16_t VER; /* VER */ } header_t;
Как можно инициализировать например поле status, ID, VER индивидуально? Я не хочу тратит програмный памяти для установки данны, хочу поставить данны директно в ЕЕПРОМ (EEP file).
__root __eeprom header_t myEEPROM = { status = 2, ID = 14, VER = 8 }; /* НЕ РАБОТАЕТ */
Конечно я могу установить ЕЕПРОМ не применяя полей структуры, но код будет хуже для поддержки.
Сообщение отредактировал Student2 - Aug 5 2009, 19:00
|
|
|
|
|
 |
Ответов
|
Aug 6 2009, 06:06
|
Знающий
   
Группа: Validating
Сообщений: 838
Регистрация: 31-01-05
Пользователь №: 2 317

|
можно так Код typedef struct { char status; /* STATUS */ char ID; /* ID */ int VER; /* VER */ } header_t;
__root __eeprom header_t myEEPROM = {.status = 2, .ID = 14, .VER = 8}; P.S. пока инет тормозил уже ответили.
|
|
|
|
|
Aug 7 2009, 06:56
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(xelax @ Aug 7 2009, 08:50)  В С++, есть конструкторы для таких вещей. Только С-99 инициализация с именами полей (и с индексами массивов int array[20] = { [10] = 5 }; ) - это операция времени компиляции, которая заносит значения в секцию инициализированных данных и "бесплатна" с точки зрения размера кода, а С++ - конструкторы - это операция времени выполнения и дополнительный код. "А в остальном, прекрасная маркиза, всё хорошо, всё хо-ро-шо".
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
Сообщений в этой теме
Student2 Как инициализировать структуру в ЕЕПРОМ Aug 5 2009, 18:57 Dog Pawlowa Или = { 2, 14, 8 }
или myEEPROM.status=2; myEEPROM... Aug 6 2009, 04:49 xelax Я что-то не понимаю какая разница где расположена ... Aug 6 2009, 06:05     xelax Цитата(ReAl @ Aug 7 2009, 10:56) Только С... Aug 7 2009, 08:27      ReAl Цитата(xelax @ Aug 7 2009, 11:27) А конст... Aug 7 2009, 13:15    Сергей Борщ Цитата(xelax @ Aug 7 2009, 08:50) В С++, ... Aug 7 2009, 07:33 xelax Ну да всё правильно говорите.
Я и не утверждал чт... Aug 7 2009, 13:45
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|