Keil program size Rosize RW ZI 설명
2290 단어 STC 시리즈)
Code (inc. data) RO Data RW Data ZI Data Debug
10224 650 324 312 2160 375224 Grand Totals
10224 650 324 96 2160 375224 ELF Image Totals (compressed)
10224 650 324 96 0 0 ROM Totals
===========================================================================
Total RO Size (Code + RO Data) 10548 ( 10.30kB)
Total RW Size (RW Data + ZI Data) 2472 ( 2.41kB)
Total ROM Size (Code + RO Data + RW Data) 10644 ( 10.39kB)
===========================================================================
(1) 코드(inc.Data): 코드와 데이터 두 부분으로 구성됨
- 코드, 즉 프로그램 코드 섹션
- inline data. For example, literal pools, and short strings(짧은 문자열) 등.이것은 일반적으로 소홀히 여겨지니 모두 주의하세요!!!
(2) RO 데이터: read-only 데이터, 읽기 전용 데이터
Shows how many bytes are occupied by read-only data. This is in addition to the inline data included in the
Code (inc. data)
column. inline 데이터를 제외한 모든 읽기 전용 데이터입니다.(3) RW 데이터: read write 데이터, 읽기 및 쓰기 가능 데이터
Shows how many bytes are occupied by read-write data.
(4) ZI Data: zero initialized data, 초기화된 읽기 및 쓰기 변수 0개
Shows how many bytes are occupied by zero-initialized data.
keil 컴파일러는 기본적으로 초기화되지 않은 변수에 0을 부여합니다.0으로 초기화하거나 초기화되지 않은 변수는 모두 이 구역에 저장됩니다.
스토리지 크기:
RO size: Code + RO_data
RW size: RW_data + ZI_data
ROM (minimum)size = Code + RO_data + RW_데이터(FLASH/ROM에 프로그램을 굽거나 다운로드할 때 사용하는 최소 공간)
Total ROM Size(Code + RO Data + RW Data)라는 프로그램이 사용하는 ROM의 바이트 총수는 프로그램이 ROM 플래시에 다운로드한 크기를 말한다.왜 Rom에 RW를 저장해야 합니까? 전기가 떨어진 후에 RAM에 있는 모든 데이터를 잃어버렸기 때문입니다. 매번 RAM에 있는 데이터는 다시 값을 부여받은 것입니다. 매번 고정된 값은 Rom에 저장된 것입니다. 왜 ZI단을 포함하지 않습니까? ZI 데이터는 모두 0이기 때문에 포함할 필요가 없습니다. 프로그램이 실행되기 전에 ZI 데이터가 있는 구역을 일률적으로 삭제하면 됩니다.포함시키면 오히려 저장 공간을 낭비한다.
RAM size: RW Data + ZI Data(프로그램이 실행될 때 RAM이 사용하는 공간)
하나의 ARM 프로그램은 세 부분을 포함한다. RO단, RW단과 ZI단 RO는 프로그램의 지령과 상수 RW는 프로그램의 초기화 변수 ZI는 프로그램의 제로 초기화 변수이다. 상기 세 가지 설명에서 알 수 있듯이 RO는readonly이고 RW는read/write이며 ZI는zero이다.