본 자료는
1. RAM 영역
1-1. 저장소 메모리(Object Store) / RAM Disk 영역
1-2. 프로그램 메모리(Program Memory) 영역
2. 저장 장치 영역(내부/외부)
2-1. Flash Disk 영역(내부)
2-2. 외부저장장치 영역(SD Card Memory, USB Memory)
3. 저장소 메모리(RAM Disk)와 실행 프로그램 용량의 관계
3-1. 실행 프로그램 용량 확인하는 방법
3-2. 저장소 메모리(Object Store)의 용량 확인 방법
3-3. IEC-Series 장비 별로 기본 셋팅 되어있는 메모리 크기
3-4. 저장소 메모리(RAM Disk)보다 용량이 큰 프로그램을 다운로드하는 경우 오류 발생
4. 프로그램 배포 시 발생하는 오류를 해결하는 방법
4-1. 저장소 메모리(Object Store)의 사이즈를 조절
4-2. 최신 버전의 .NET Compact Framework 배포 선택 체크 해지
4-3. 프로그램 용량을 최적화, 상위 버전 모델 사용, 저장 장치 영역으로 수동 복사
순서로 진행합니다.
Windows CE에서 RAM은 두 개의 영역으로 나누어지며, 하나는 저장소 메모리(Object Store) / RAM Disk 영역, 다른 하나는 프로그램 메모리(Program Memory) 영역입니다.
1-1. 저장소 메모리(Object Store) / RAM Disk 영역
개발 PC에서 IEC-Series로 프로그램을 배포할 때 필요한 공간이며 IEC-Series의 내 장치에서 Flash Disk를 제외한 모든 영역(응용 프로그램 데이터, My Documents, Program Files, Temp, Windows)을 의미합니다. 시스템을 재부팅 시 저장소 메모리(Object Store) 내의 데이터는 삭제(초기화)됩니다.
1-2. 프로그램 메모리(Program Memory) 영역
IEC-Series에서 프로그램을 실행할 때 사용되는 공간이며 Program Memory는 실행 중인 어플리케이션의 Heap과 Stack 등의 영역으로 할당됩니다.
2. 저장 장치 영역(내부/외부) 2-1. Flash Disk 영역(내부)
IEC-Series의 NAND Flash Memory의 영역은 크게 Boot 영역, O/S 영역, Flash Disk 영역으로 나누어져 있으며, 여기서 Flash Disk 영역은 Registry 영역, Flash Disk File System 영역으로 나누어집니다. Flash Disk 영역은 사용자가 응용 프로그램 및 관련 파일 저장 또는 임의로 파일을 쓰거나 삭제할 수 있는 영역으로 전원이 차단되어도 데이터는 유지됩니다. 과도한 읽기/쓰기 작업은 피하시기 바랍니다. (사용자가 사용하는 영역입니다.)
2-2. 외부저장장치 영역(SD Card Memory, USB Memory)
외부저장장치 | SD Card Memory | USB Memory |
---|---|---|
특징 | 데이터를 자유롭게 큰 용량을 읽기/쓰기 하기 위해서 사용되는 외부 메모리로 SD 카드 메모리와 USB 메모리를 나타내며 사용자 응용 프로그램 저장 및 사용자가 임의대로 데이터를 쓰거나 삭제할 수 있는 영역입니다. (사용자가 사용하는 영역입니다.) |
|
최대 지원 용량 | 128G | |
권장 파일 포맷 | exFAT (32G 초과의 경우) / FAT32 (32G 이하의 경우) | |
IEC-Series 연결 시 표시 | "SD Card"로 표시됨 | "하드 디스크"로 표시됨 |
외부저장 장치 |
SD Card Memory |
USB Memory |
---|---|---|
특징 | 데이터를 자유롭게 큰 용량을 읽기/쓰기 하기 위해서 사용되는 외부 메모리로 SD 카드 메모리와 USB 메모리를 나타내며 사용자 응용 프로그램 저장 및 사용자가 임의대로 데이터를 쓰거나 삭제할 수 있는 영역입니다. (사용자가 사용하는 영역입니다.) |
|
최대 지원 용량 |
128G | |
권장 파일 포맷 |
exFAT (32G 초과의 경우) / FAT32 (32G 이하의 경우) |
|
IEC-Series 연결 시 표시 | "SD Card"로 표시됨 |
"하드 디스크"로 표시됨 |
3. 저장소 메모리(RAM Disk)와 실행 프로그램 용량의 관계
만약 프로그래머가 제작한 실행 프로그램의 총 사이즈(실행파일 + 관련 DLL + SmartX Framework DLL 파일 등)이 저장소 메모리(RAM Disk)를 초과하는 경우 IEC-Series로 프로그램 배포 시 "프로그램 메모리 부족" 등의 에러가 발생할 수 있습니다.
3-1. 실행 프로그램 용량 확인하는 방법
Visual Studio 2008에서 C#, VB.NET, C++을 사용하여 솔루션 구성을 Release로 설정하고 프로그램을 작성하면 실행 파일은 해당 "프로젝트 폴더\bin\Release 폴더"에 위치하게 되며 실행 프로그램 용량을 확인하기 위해서 Release 폴더의 용량을 확인하면 됩니다.
Ex) "SmartADC\SmartADC\bin\Release" (실행파일의 위치 경로)
- [STEP-1] Release 폴더 또는 Release 폴더 내부의 파일을 전체 선택한 다음 마우스 우측을 클릭하고 속성 버튼을 클릭
- [STEP-2] 크기에서 용량을 확인합니다. 여기서는 1.16MB가 실행 프로그램의 총 용량입니다.
3-2. 저장소 메모리(RAM Disk)의 용량 확인 방법
※ 해당 과정은 권장하지 않는 방법입니다. 급한 상황일 때 참고해주시길 바랍니다.
권장하는 방법은 아래와 같습니다.
1. Flash Disk 내 불필요한 파일 삭제 혹은 초기화
2. 상위 제품으로 구매
3. SDK 메모리를 사용
- [STEP-1] IEC-Series를 개발 모드로 부팅 → [내 장치] → [제어판] → [시스템] → [메모리] → [저장소 메모리의 할당량] 체크
- [STEP-2] 크기에서 용량을 확인합니다. 여기서는 1.16MB가 실행 프로그램의 총 용량입니다.
-
[내장치]
-
[제어판]
-
[시스템]
-
[메모리의 저장소 메모리 공간확인]
OS Standard 실제 용량 기준 (KB/MB표시) |
IEC266-Series (B15) |
IEC667-Series (B23) |
IEC1000-Series (B5) |
---|---|---|---|
메모리 사이즈 (저장소 + 프로그램 메모리) |
38604KB 37MB |
196,956KB 192MB |
393,836KB 384MB |
저장소 메모리 (RAM Disk) |
8,292KB 8MB |
20,416KB 19MB |
50,112KB 48MB |
프로그램 메모리 (ProgramMemory) |
30312KB 29MB |
176,540KB 172MB |
343,724KB 335MB |
OS Stand ard 실제 용량 기준 (KB/MB표시) |
IEC266 Series (B15) |
IEC667 Series (B23) |
IEC1000 Series (B5) |
---|---|---|---|
메모리 사이즈 (저장소 + 프로그램 메모리) |
38604KB 37MB |
196,956KB 192MB |
393,836KB 384MB |
저장소 메모리 (RAM Disk) |
8,292KB 8MB |
20,416KB 19MB |
50,112KB 48MB |
프로그램 메모리 (Program Memory) |
30312KB 29MB |
176,540KB 172MB |
343,724KB 335MB |
3-4. 저장소 메모리(RAM Disk)보다 용량이 더 큰 프로그램을 다운로드하는 경우 오류 발생
저장소 메모리(RAM Disk) 용량보다 실행 프로그램 용량이 더 큰 경우 Visual Studio에서 프로그램 배포 시 다음과 같은 에러 메시지가 발생합니다.
------ 배포 시작: 프로젝트: ProgramMemory, 구성 : Release Any CPU ------
다음 오류로 인해 배포 및 /또는 등록하지 못했습니다. 0x8973190e.
'%CSIDL_PROGRAM_FILES%\ProgramMemory\ProgramMemory.exe'
파일에 쓰는 동안 오류가 발생했습니다. 오류 0x80070070: 디스크 공간이 부족합니다.
즉, 응용 프로그램의 정상적인 배포를 위해서는 저장소 메모리(RAM Disk) 용량이 실행 프로그램 용량보다 더 커야만 합니다. (최소 2~3MB 많은 용량 권장)
4. 프로그램 배포 시 발생하는 오류를 해결하는 방법 4-1. 저장소 메모리(Object Store)의 사이즈를 조절
- [STEP-1] IEC-Series를 개발 모드로 부팅 → [내 장치] → [제어판] → [시스템] → [메모리] → Scroll Bar 버튼을 좌 → 우 방향으로 이동합니다.
전체 메모리(저장소 메모리+프로그램 메모리)의 사이즈는 고정이지만 Scroll Bar를 우측으로 이동한 만큼 저장소 메모리는 증가하고 프로그램 메모리는 감소됩니다.
- [STEP-2] 저장소 메모리(RAM Disk)를 조정한 다음 해당 내용을 저장하기 위해 바탕화면의 Registry Save를 클릭하고 제품의 전원을 OFF → ON 하고 나서 프로그램을 재배포해 봅니다. 만약 동일한 에러가 발생하는 경우보다 많은 저장소 메모리를 확보하시기 바랍니다.
개발이 끝나고 제품을 양산하는 시점에서는 IEC-Series의 메모리를 초기 상태에 지정된 용량(사이즈)으로 복원시켜서 시스템 최적화를 해주시기 바랍니다.
참고만약 IEC-Series 초기 상태의 저장소 메모리(RAM Disk)의 용량(사이즈)를 모르는 경우에는 IEC-Series의 제품 초기화를 진행하시기 바랍니다.
주의제품 초기화 시 IEC-Series의 모든 내용은 지워지므로 Flash Disk의 파일 백업 후 진행바랍니다.
4-2. 최신 버전의 .NET Compact Framework 배포 선택 체크 해지
4-3. 프로그램 용량을 최적화, 상위 버전 모델 사용, 저장 장치 영역으로 수동 복사
- 프로그램 최적화를 위해 프로그램에 사용되는 이미지의 확장자를 PNG와 해상도 96DPI로 통일 시킵니다.
- IEC-Series는 크게 IEC266/667/1000-Series로 구분되며 상위 모델이 하위 모델보다 더 큰 메모리를 갖습니다.
메모리 용량 비교 : IEC266 < IEC667 < IEC1000-Series
- 외부저장장치(SD Card Memory, USB Memory)를 사용하여 실행 프로그램을 수동으로 IEC-Series의 Flash Disk로 복사하여 사용하셔도 무방합니다.