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

 
 
> Запись структуры во флэш.
Jenya7
сообщение Nov 25 2014, 08:32
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Я работаю с камнем EFM32TG842. У него есть сектор во флэше для записи данных пользователя - страница 512 байт. Я хочу записать туда свою структуру.
Код
struct sFlashParam
{
    uint16_t customerID;
    uint32_t mainCounter;        
    uint32_t CWcounter;
    uint8_t  mode;                
    uint8_t  channel;             
    uint8_t  meter_type;
       …и так далее.
}

и потом пишу.
Код
      
WriteToFlash(0x0FE00000, (uint32_t*)&flashParam1);

функция выглядит так
Код
void WriteToFlash(uint32_t address, uint32_t *data)
{
    uint32_t *addr = (uint32_t *) address;  //(uint32_t *)0x0FE00000;
    MSC_Init();
    MSC_ErasePage(addr);
    MSC_WriteWord(addr, data, sizeof(data));
    MSC_Deinit();
}

вопрос как структура запишется? каждый член структуры в 32-битный регистр?
и как мне считать структуру из флэша?


Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Golikov A.
сообщение Nov 25 2014, 17:58
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



но как я понимаю главное в коде не забыться и не начать обращаться к переменным из флеша на запись? Можно конечно их все объявить константами, но тогда будет не очень удобно обновлять параметры из меню пользователя или через внешний протокол... если это только константы, то да удобно. Я во флэш пихал таблицы остатков при расчете crc16, очень удобно и они прям оттуда и брались при работе
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Nov 25 2014, 22:43
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(Golikov A. @ Nov 25 2014, 19:58) *
Можно конечно их все объявить константами, но тогда будет не очень удобно обновлять параметры из меню пользователя или через внешний протокол... если это только константы, то да удобно.

Если параметры во флэше, - а я бы назвал это настройками, - обновляются не по 10 раз в секунду, а в какие-либо ключевые моменты жизни приложения, после чего последнее пользуется результатами и делает свою работу, то почему же не удобно обновлять прямо во флэше? Например, коэффициенты коррекций и поправок в системе с ADC, и т.п. Ну, вначале, при калибровке, может и надо будет раз 20 перезаписать настройки, но потом они будут довольно долго неизменны. Или вот пример из нашей практики. Надо управлять светодиодами через ШИМ. Характеристка вход-выход выражается степенной функцией (гамма-коррекция). Если считать на лету каждый раз по формуле для нескольких каналов, можно перегрузить процессор. Можно работать и по таблице, но ее надо качать по каналу. Мы же меняем показатель (гамму) короткой командой, а процессор тут же единожды вычисляет и создает таблицу, которой потом и пользуется постоянно. Все во флэше.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Jenya7   Запись структуры во флэш.   Nov 25 2014, 08:32
- - редактор   Скорее всего как в памяти отображается так и запиш...   Nov 25 2014, 09:17
- - Golikov A.   а вы запишите, считайте и узнаете наверняка есть ...   Nov 25 2014, 09:18
|- - Jenya7   Цитата(Golikov A. @ Nov 25 2014, 15:18) а...   Nov 25 2014, 09:38
|- - scifi   Цитата(Jenya7 @ Nov 25 2014, 12:38) Кодvo...   Nov 25 2014, 09:54
- - jcxz   Цитата(Jenya7 @ Nov 25 2014, 14:32) вопро...   Nov 25 2014, 09:29
- - Golikov A.   тут прикол в другом uint32_t size а при вызове ...   Nov 25 2014, 10:00
|- - Jenya7   Цитата(Golikov A. @ Nov 25 2014, 16:00) т...   Nov 25 2014, 10:12
- - mantech   Цитата(Jenya7 @ Nov 25 2014, 11:32) У нег...   Nov 25 2014, 10:06
- - Golikov A.   ЦитатаИ что, прямо так и записывается, без всяких ...   Nov 25 2014, 10:16
|- - Jenya7   Цитата(Golikov A. @ Nov 25 2014, 16:16) п...   Nov 25 2014, 11:02
- - Golikov A.   sizeof - выдает длину в байтах. и для инта_32 буде...   Nov 25 2014, 11:07
- - Jenya7   сделал по совету scifi . Код memcpy(...   Nov 25 2014, 11:22
|- - scifi   Цитата(Jenya7 @ Nov 25 2014, 14:22) Кодme...   Nov 25 2014, 12:00
|- - Jenya7   Цитата(scifi @ Nov 25 2014, 17:00) Вы буд...   Nov 25 2014, 12:20
|- - juvf   Цитата(scifi @ Nov 25 2014, 17:00) Вы буд...   Nov 26 2014, 04:40
|- - Jenya7   Цитата(juvf @ Nov 26 2014, 09:40) это сов...   Nov 26 2014, 07:02
||- - KnightIgor   Цитата(Jenya7 @ Nov 26 2014, 09:02) Я пиш...   Nov 26 2014, 09:34
||- - Jenya7   Цитата(KnightIgor @ Nov 26 2014, 14:34) О...   Nov 26 2014, 13:32
||- - KnightIgor   Цитата(Jenya7 @ Nov 26 2014, 15:32) нашел...   Nov 27 2014, 15:40
||- - AHTOXA   Нет, RAM-функции надо не в bss (это неинициализиро...   Nov 27 2014, 18:08
|- - Сергей Борщ   Цитата(juvf @ Nov 26 2014, 06:40) так стр...   Nov 26 2014, 07:05
- - Golikov A.   КодflashParam1 = *(struct sFlashParam1*)0x...   Nov 25 2014, 12:39
|- - Jenya7   Цитата(Golikov A. @ Nov 25 2014, 17:39) К...   Nov 25 2014, 12:48
|- - scifi   Цитата(Golikov A. @ Nov 25 2014, 15:39) К...   Nov 25 2014, 16:54
|- - Aaron   Цитата(Golikov A. @ Nov 25 2014, 15:39) К...   Nov 28 2014, 07:57
|- - KnightIgor   Цитата(Aaron @ Nov 28 2014, 09:57) Это, т...   Nov 28 2014, 08:18
|- - Сергей Борщ   Цитата(KnightIgor @ Nov 28 2014, 10:18) А...   Nov 28 2014, 09:53
|- - KnightIgor   Цитата(Сергей Борщ @ Nov 28 2014, 11:53) ...   Nov 28 2014, 18:28
- - Golikov A.   Мне как-то кажется такое присвоение не корректным,...   Nov 25 2014, 13:48
- - KnightIgor   Цитата(Jenya7 @ Nov 25 2014, 10:32) Я раб...   Nov 25 2014, 14:25
|- - Jenya7   Цитата(KnightIgor @ Nov 25 2014, 19:25) ....   Nov 25 2014, 14:43
|- - KnightIgor   Цитата(Jenya7 @ Nov 25 2014, 16:43) спаси...   Nov 25 2014, 17:37
- - Golikov A.   получается копирование структур по указателю выдае...   Nov 25 2014, 16:47
- - Golikov A.   да вот что-то получается что так наоборот даже бол...   Nov 26 2014, 06:26
|- - scifi   Цитата(Golikov A. @ Nov 26 2014, 09:26) н...   Nov 26 2014, 07:25
- - Golikov A.   Прикольно, но все же не очень красиво. Дефайн пере...   Nov 26 2014, 08:33
|- - scifi   Цитата(Golikov A. @ Nov 26 2014, 11:33) П...   Nov 26 2014, 09:07
- - Velund   Конкретно для иара... #pragma pack(1) описание с...   Nov 26 2014, 09:07
- - Golikov A.   ЦитатаНа это ИМХО могу ответить фактами: ничего не...   Nov 26 2014, 10:31
|- - scifi   Цитата(Golikov A. @ Nov 26 2014, 13:31) а...   Nov 26 2014, 11:40
- - Golikov A.   спасибо, погляжу   Nov 26 2014, 12:13
- - Golikov A.   ну да на стэке как то логичнее... Он же локальный....   Nov 28 2014, 10:57


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 16:45
Рейтинг@Mail.ru


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