
#<함수형>***********************************
void _DataRom_쓰기_(unsigned long   p주소,
                   void           *p자료열,
                   unsigned long   p크기);

#<인수>
'p주소'
DATAROM 상의 쓰기 시작 위치.
'p자료열'
쓰기할 자료열 위치.
'p크기'
쓰기할 자료의 바이트 단위 총 크기.

#<반환값>

#******************************************

#<적용구분>

"맷돌 전용"

#<선언문서>

"_DataRom_쓰기_.h"

#<설명>

DATAROM 영역의 지정 위치에 지정 자료열을 저장합니다.

DATAROM 은 최소 "1 바이트 단위 - X 바이트 단위" 까지 한번에 [쓰기] 가 가능하며, [쓰기] 과정은
자동으로 지우기 과정을 수반하므로 사용자는 별도로 [지우기] 를 할 필요가 없습니다.

[쓰기] 는 [읽기] 보다 속도가 느리므로 너무 큰 자료열을 기록하는 경우는 시간이 많이 걸릴수 있습니다.

DATAROM 에 저장된 자료는 [맷돌-통합개발환경] 의 [지우기] 기능이나 [운영체제 재설치] 시에도 
지워지지 않으며 영구보존됩니다.

이 API 는 <VMOS:AT45DB041X> 계열의 운영체제에서만 지원됩니다.

["주의!!!"]{-------------------------------------------------------------------------
DATAROM 영역은 사용자가 설치한 가상기계(GVMX)의 크기에 따라 크기가 가변적인 영역이므로, 사용자 자료는 
<API:_DataRom_끝주소_> 로 얻은 DATAROM 영역의 끝 부터 저장하는 것이 좋습니다.
그렇지 않은 경우 이전에 저장해 놓은 자료가 더 큰 가상기계(GVMX)를 설치할때 덮어쓰여져 손상될수 있습니다.

DATAROM 은 AT45DB041X SPI Flash 를 사용하는 영역이므로 변수에 쓰는 것과 같은 너무 반복적인 쓰기는
무리가 갈수 있습니다. 따라서, 모든 저장 자료는 일단 내부 변수에 정리 후 한꺼번에 저장하는 방법을 사용하는
것이 좋습니다.

쓰기 시에는 바이트 단위 접근 보다는 자료 단위 접근이 처리 속도가 훨씬 빠릅니다.
}-----------------------------------------------------------------------------------


#<예제>

  //[VAR]
  //{ 
      unsigned long  DataRom_끝주소;
  
      //1K 바이트 자료를 저장할수 있는 저장소.
      unsigned char  자료열[1024];
  
  //}

  // ...

  //DATAROM 끝 주소얻기.  
  DataRom_끝주소 = _DataRom_끝주소_();

  //DATAROM 끝 부분 1K 바이트 영역에 1K 바이트 크기 자료열을 저장.
  //기록할 크기-------------------------------------v
  //기록할 자료열-----------------------------v
  //기록 시작 위치--v  
  _DataRom_쓰기_((DataRom_끝주소 + 1) - 1024, 자료열, 1024);
  
  // ...

