Бабушка, смотри, я сделал двач! Войти !bnw Сегодня Клубы
Да, сука, да! ‰ cat cbuf.h cbuf.c #ifndef __CBUF_H__ #define __CBUF_H__ #include <stdint.h> typedef struct { uint8_t *buf; uint16_t head, tail, len; } cbuf_t; void cbuf_init(cbuf_t *cbuf, uint8_t *buf, unsigned len); unsigned cbuf_read(cbuf_t *cbuf, uint8_t *buf, unsigned count); unsigned cbuf_write(cbuf_t *cbuf, const uint8_t *buf, unsigned count); #endif #include <stdint.h> #include "cbuf.h" void cbuf_init(cbuf_t *cbuf, uint8_t *buf, unsigned len) { cbuf->buf = buf; cbuf->head = 0; cbuf->tail = 0; cbuf->len = len; } unsigned cbuf_read(cbuf_t *cbuf, uint8_t *buf, unsigned count) { unsigned i; for (i = 0; i < count; ++i) { if (cbuf->tail == cbuf->head) { break; } buf[i] = cbuf->buf[cbuf->tail]; cbuf->tail = (cbuf->tail + 1) % cbuf->len; } return i; } unsigned cbuf_write(cbuf_t *cbuf, const uint8_t *buf, unsigned count) { for (unsigned i = 0; i < count; ++i) { cbuf->buf[cbuf->head] = buf[i]; cbuf->head = (cbuf->head + 1) % cbuf->len; } return count; }
#ONMSUV / @l29ah / 3243 дня назад

malloc запихни в инит и деинит напиши, и размер как-то проверяй штоль, чо как этот и вообще нинужно
#ONMSUV/9R9 / @mugiseyebrows / 3243 дня назад
@mugiseyebrows В моём микроконтроллере маллоков нет. Размеры все маленькие и механизма сообщения об ошибке в рантайме тоже нет.
#ONMSUV/2YW / @l29ah --> #ONMSUV/9R9 / 3243 дня назад
>unsigned len >uint16_t len; лан
#ONMSUV/7P2 / @plhk / 3243 дня назад
я взял с педивики буфер и все.
#ONMSUV/4Z0 / @mugi / 3243 дня назад
@mugi Чо где?
#ONMSUV/658 / @l29ah --> #ONMSUV/4Z0 / 3243 дня назад
@l29ah ну бля, кольцевой буфер, то что ты вон написал.
#ONMSUV/CII / @mugi --> #ONMSUV/658 / 3243 дня назад
@mugi Так где?
#ONMSUV/H9H / @l29ah --> #ONMSUV/CII / 3243 дня назад
@l29ah там походу с маллоком было. А вообще на изиэлектроникс вроде была где-то норм реализация. Бля не могу сейчас найти. Я походу тож свою реализацию делал. Вот может полезно будет еще http://microsin.net/programming/AVR/ring-buffer.html
#ONMSUV/M0M / @mugi --> #ONMSUV/H9H / 3243 дня назад
@l29ah > микроконтроллер > % да ты охуел
#ONMSUV/L33 / @anonymous --> #ONMSUV/2YW / 3243 дня назад
О чём пост?
#ONMSUV/PLA / @anonymous / 3243 дня назад
@anonymous Да, я тоже кирпичей откладываю, но Cortex M3 умеет делить хардверно, а 24МГц для текущих задач пока хватает.
#ONMSUV/914 / @l29ah --> #ONMSUV/L33 / 3243 дня назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.