Реализация кольцевого буфера на ассемблере AVR

AVR
Для очередного эксперимента понадобился мне такой вот буфер. Что это такое, можно почитать в Википедии, а также здесь, поэтому углубляться не буду.
Оговорки:
  1. я не профессиональный программист и наверное им не стану, поэтому возможно, что нижеприведенное потребует оптимизации/переработки;
  2. на Сях и прочих высокоуровневых языках не пишу — не умею;
  3. долго искать готовое решение на ассемблере не стал, а изобретать колесо вроде как и не запрещено (хоть иногда и глупо), зато интересно.
Ниже будет краткое описание того, что я наделал.

Читать дальше

Реализация кольцевого буфера на языке Verilog HDL. Пара слов о поиске ошибок.

У нас уже есть примеры реализации кольцевого буфера на языках Assembler (для STM32) [1], C [2] и C++ [3]. Пожалуй, продолжим. В этой статье я приведу пример реализации простенького кольцевого буфера на языке Verilog HDL. Так же будет приведен разбор типовой ошибки, которую я допустил при написании этого кода.


Читать дальше
  • +2
  • 06 апреля 2011, 22:25
  • Alatar

Кольцевой буфер на С++ для МК.

Кольцевой буфер (КБ)(Ring Buffer) — структура данных типа FIFO (First In First Out — первым вошел, первым вышел), находит очень широкое применение в том числе при программировании МК. Кольцевые буферы часто используют для организации различных очередей сообщений и буферов приёма-передачи различных коммуникационных интерфейсов. Популярность КБ обусловлена тем, что это один из самых простых и эффективных способов организовать FIFO без использования динамической памяти. Существует множество разновидностей КБ, о них можно почитать, например тут en.wikipedia.org/wiki/Circular_buffer Рассмотрим одну очень быструю и компактную реализацию КБ на С++.


Читать дальше