OS/vxWorks ๋ง๋ฒ„ํผ Examples(ring_buffer.c)
  • 728x90
    ๋ฐ˜์‘ํ˜•

     

    ring_buffer.c
    ๋‹ค์šด๋กœ๋“œ

     

     

     

     

    ๐Ÿ“Œ Ring buffer 

     

     

    • rngCreate() ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋ง๋ฒ„ํผ๋ฅผ ๋งŒ๋“ ๋‹ค.
    • ํ•จ์ˆ˜์ธ์ž๋กœ ๋ง๋ฒ„ํผ์˜ ์ „์ฒด ํฌ๊ธฐ๊ฐ€ ๋“ค์–ด๊ฐ€๋ฉฐ ์œ„ ์†Œ์Šค์—์„œ๋Š” ๊ตฌ์กฐ์ฒด ํฌ๊ธฐ 20byte * 10 = 200byteํฌ๊ธฐ์˜ ๋ง๋ฒ„ํผ๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.
    • rngBufPut() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ง๋ฒ„ํผ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค.
    • rngFreeBytes() ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋ง๋ฒ„ํผ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๋‚จ์€ ๊ณต๊ฐ„์˜ ํฌ๊ธฐ๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
    • rngNBytes() ํ•จ์ˆ˜๋ฅผํ†ตํ•ด ํ˜„์žฌ ์‚ฌ์šฉํ•˜๊ณ ์žˆ๋Š” ๊ณต๊ฐ„์˜ ํฌ๊ธฐ๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
    • rngIsFull() ํ•จ์ˆ˜๋ฅผํ†ตํ•ด ๋ง๋ฒ„ํผ๊ฐ€ ๊ฝ‰์ฐป๋Š”์ง€์˜ ์—ฌ๋ถ€๋ฅผ BOOL ํƒ€์ž…์œผ๋กœ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
    • rngIsEmpty() ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋ฒ„ํผ๊ฐ€ ๋น„์–ด์žˆ๋Š”์ง€์˜ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๋‹ค.
    • rngBufGet() ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋ง๋ฒ„ํผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜ฌ ์ˆ˜ ์žˆ๋‹ค.
    • rngDelete() ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋ง๋ฒ„ํผ๋ฅผ ์‚ญ์ œํ•œ๋‹ค.

     

     

    ๐Ÿ’ก ์‹คํ–‰ ๊ฒฐ๊ณผ 

     

     

     

     

     

    728x90
    ๋ฐ˜์‘ํ˜•
์ƒ๋‹จ์œผ๋กœ