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

 
 
> Логирование данных во внешнюю память.
Jenya7
сообщение Feb 4 2015, 09:25
Сообщение #1


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

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



мне нужно логировать данные во внешнюю память.
каждая запись это структура. думал сделать circular buffer чтоб можно было читать/писать из разных потоков. вопрос есть ли какая нибудь готовая библиотека чтоб не городить свои велосипеды?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
toweroff
сообщение Feb 4 2015, 13:32
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(Jenya7 @ Feb 4 2015, 12:25) *
мне нужно логировать данные во внешнюю память.
каждая запись это структура. думал сделать circular buffer чтоб можно было читать/писать из разных потоков. вопрос есть ли какая нибудь готовая библиотека чтоб не городить свои велосипеды?

что-то типа:
Код
#define    IBUF_LENGTH        (32)
#define    IBUF_MASK        (IBUF_LENGTH-1)

#define    OBUF_LENGTH        (32)
#define    OBUF_MASK        (OBUF_LENGTH-1)

uint32_t ibus_start, ibuf_end, obuf_start, obuf_end;

char    BufOut[OBUF_LENGTH];
char    BufIn[IBUF_LENGTH];

void obuf_init()
{
    obuf_start = obuf_end = 0;
}

void ibuf_init()
{
    ibuf_start = ibuf_end = 0;
}

void put(char c)
{
    while((ibuf_start+IBUF_LENGTH) == ibuf_end);
    BufIn[ibuf_end++ & IBUF_MASK] = c;
}

char get(void)
{
    while(obuf_end == obuf_start);
    return BufOut[obuf_start++ & OBUF_MASK];
}


на скорую руку, так что проверяйте sm.gif

недостаток - размер массивов по степени двойки, тип, разумеется, можно сделать какой нужно
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Jenya7   Логирование данных во внешнюю память.   Feb 4 2015, 09:25
|- - Jenya7   Цитата(toweroff @ Feb 4 2015, 19:32) что-...   Feb 4 2015, 14:14
|- - CrimsonPig   Цитата(toweroff @ Feb 4 2015, 13:32) что-...   Feb 4 2015, 14:20
|- - Kabdim   Цитата(CrimsonPig @ Feb 4 2015, 17:20) Ес...   Feb 4 2015, 15:18
|- - Jenya7   Цитата(Kabdim @ Feb 4 2015, 21:18) А заче...   Feb 4 2015, 15:30
|- - Kabdim   Цитата(Jenya7 @ Feb 4 2015, 18:30) мда......   Feb 5 2015, 10:53
- - Jenya7   упрощенно, в первом приближении написал так. как ...   Feb 4 2015, 15:15
|- - CrimsonPig   Цитата(Jenya7 @ Feb 4 2015, 15:15) не гор...   Feb 4 2015, 15:43
|- - Jenya7   Цитата(CrimsonPig @ Feb 4 2015, 21:43) То...   Feb 4 2015, 15:47
|- - CrimsonPig   Цитата(Jenya7 @ Feb 4 2015, 15:47) ок. а ...   Feb 4 2015, 15:57
|- - Jenya7   Цитата(CrimsonPig @ Feb 4 2015, 21:57) - ...   Feb 4 2015, 16:07
|- - CrimsonPig   Цитата(Jenya7 @ Feb 4 2015, 16:07) вот я ...   Feb 4 2015, 16:15
|- - Jenya7   Цитата(CrimsonPig @ Feb 4 2015, 22:15) А ...   Feb 4 2015, 16:26
- - WitFed   Я бы порекомендовал от вечных шлюх последнего врем...   Feb 4 2015, 16:26
- - CrimsonPig   Цитата(Jenya7 @ Feb 4 2015, 16:26) да вот...   Feb 4 2015, 16:37
- - Jenya7   Цитата(CrimsonPig @ Feb 4 2015, 22:37) А,...   Feb 4 2015, 16:45


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

 


RSS Текстовая версия Сейчас: 29th July 2025 - 02:28
Рейтинг@Mail.ru


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