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

 
 
> TnKernel и очереди
megajohn
сообщение Mar 27 2013, 09:33
Сообщение #1


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

Группа: Свой
Сообщений: 1 080
Регистрация: 16-11-04
Из: СПб
Пользователь №: 1 143



на данный момент одна задача шлет в другую следующие структуры
Код
typedef struct{
    u8 id;
    void* buff;
    u16 buff_len;
    u16 arg;
}Smsg;


Но так как очереди в tnKernel это void* то приходится

Код
send:
Smsg* item = MALLOC( sizeof(Smsg) );
item->id=...
item->buff=...
....
tn_queue_send(...);


для увеличения скорости видится такая реализация

Код
#define QUE_ITEMS 10
Smsg que[QUE_ITEMS];

tn_queue2_create( ..., (void*)que, sizeof( Smsg ), QUE_ITEMS )

Smsg item;
item.id=...
item.buff=...
tn_queue_send( &item );


то есть избавляемся от кучи

Собсвенно вопрос: кто-нибудь такое реализовывал и может поделится ?
А то задача тривиальная и обыденная, а лисапед не хочется писать =)


--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
Go to the top of the page
 
+Quote Post



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

 


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


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