Q&A

  • 메모리를 빠르게 다른 메모리로 이동시키는 방
Analog Digital Transfer Card를 사용해서 데이터를 입력받는 프로그램을 제작중입니다.

300KHz의 속도로 데이터를 읽다보니 데이터를 다른 곳으로 옮기는 중간에 데이터

손실이 발생되는군요...

현재 Dual DMA를 사용해서 DMA Buffer A, B를 설정해 놓고서

Buffer A에 AD보드가 입력 내용을 기록하는 동안에 B의 내용을 다른 메모리로 복사하고 Buffer B에 기록하는 동안에 A의 내용을 다른 메모리로 이동을 시킵니다.



제가 궁금한 것은 한 30000Byte정도 되는 메모리를 한꺼번에 쭈욱 다른 메모리로 옮기는 방법이 없나 하는 것입니다. 지금은 원시적으로 Buffer 맨압부터 포인터로 처리해서 real형으로 읽어들여 순차적으로 다른 메모리로 옮기고 있습니다.

이 메모리 블럭을 한꺼번에 옮기는 방법은 없을까요?



C에서 보면 메모리를 카피하는 함수가 있던데, 델파이에서는 못찾겠더군요...



여러 고수분들의 조언 기다리겠습니다.



1  COMMENTS
  • Profile
    구창민 1999.07.20 07:29
    지승용 께서 말씀하시기를...

    > Analog Digital Transfer Card를 사용해서 데이터를 입력받는 프로그램을 제작중입니다.

    > 300KHz의 속도로 데이터를 읽다보니 데이터를 다른 곳으로 옮기는 중간에 데이터

    > 손실이 발생되는군요...

    > 현재 Dual DMA를 사용해서 DMA Buffer A, B를 설정해 놓고서

    > Buffer A에 AD보드가 입력 내용을 기록하는 동안에 B의 내용을 다른 메모리로 복사하고 Buffer B에 기록하는 동안에 A의 내용을 다른 메모리로 이동을 시킵니다.

    >

    > 제가 궁금한 것은 한 30000Byte정도 되는 메모리를 한꺼번에 쭈욱 다른 메모리로 옮기는 방법이 없나 하는 것입니다. 지금은 원시적으로 Buffer 맨압부터 포인터로 처리해서 real형으로 읽어들여 순차적으로 다른 메모리로 옮기고 있습니다.

    > 이 메모리 블럭을 한꺼번에 옮기는 방법은 없을까요?

    >

    > C에서 보면 메모리를 카피하는 함수가 있던데, 델파이에서는 못찾겠더군요...

    >

    > 여러 고수분들의 조언 기다리겠습니다.

    >



    지승용님 안녕하세요?

    저도 일전에 C++로 작성된 소스를 델파이로 포팅하는

    작업을 한적이 있는데 포인터와 메모리 함수 때문에

    많이 애를 먹었었습니다.

    일전에 영대님께 질문을 드려 도움을 받은

    함수명을 아래에 올립니다.

    하지만 C++하구는 사용법이 차이가 있더라구요.

    사실 델파이는 C++많큼 메모리 함수를 난해히(?) 지원해주지

    않는거 같아요..에궁..

    그럼 즐거운 프로그래밍 되시구요~~



    <메모리 초기화>

    FillChar



    <메모리 복사>

    Move <--- C의 memcpy

    StrCopy

    StrCat

    StrECopy

    StrMove



    <메모리 비교>

    StrComp

    StrIComp

    StrLComp

    StrLIComp