임베디드에는 가상 메모리가 없나?
·
Embedded
지난번에 STM32F103C8T6 칩으로 고추건조기를 만든 임베디드 프로젝트를 진행했다. STM32F103C8T6 칩은 Cortex-M3 코어에 Flash 64KB, SRAM 20KB짜리 칩이다. 그때 프로젝트를 진행하면서 가졌던 의문이 하나 있었다. "얘는 가상 메모리가 없는 것 같은데?" 데스크톱에서 돌아가는 프로그램은 가상 주소 공간 위에서 동작한다. 프로세스마다 같은 가상 주소가 서로 다른 물리 주소로 매핑되고, 그 변환을 하드웨어가 처리한다. 그런데 이 칩의 펌웨어에서는 그런 변환 계층이 보이지 않았다. 데이터시트의 메모리 맵에 적힌 주소가 코드에서 쓰는 주소와 그대로 같았다. 찾아보니 이 칩에 가상 메모리가 없는 것은 맞았다. 다만 "임베디드에는 가상 메모리가 없다"로 일반화하면 틀린다는 것도..