테크노트 [기고] 속도 향상을 위해 코드의 위치를 RAM으로 변경
[첨단 헬로티] 메모리의 접근 속도, 다시 말해 메모리의 정보를 읽고 쓴는 속도는 메모리 구조상 ROM 또는 Flash 영역보다 RAM의 속도가 빠르다. 하지만 RAM은 휘발성 메모리이기 때문에 전원공급이 없으면 메모리의 데이터는 삭제된다. 따라서, 일반적으로 코드 저장 용도로 사용하지 않는다. 하지만 소스코드의 속도를 최대한 올려야하는 경우 코드를 RAM으로 복사해 RAM 메모리에서 수행하도록 하는 방법이 있다. 우선 코드를 RAM에 배치하는 크게 두 가지 경우가 있다. 디버깅 중 RAM에 모든 코드/데이터를 배치해 실행하는 방법과 ROM 또는 Flash 영역에 코드/데이터를 저장해 두고 MCU 초기화 과정에서 RAM으로 함수를 복사한 후 실행하는 방법이 있다. 디버깅에서 코드/데이터를 모두 RAM에 위치시키는 방법 이 방업은 별도의 특별한 코드의 수정이나 옵션의 설정 사항은 없다. 링커 설정 파일(.icf)내 readonly 속성의 코드와 데이터가 배치되는 영역을 모두 RAM의 주소 영역으로 변경하면 링커가 모든 위치를 RAM의 주소로 배치하게 된다. 다음의 링커 설정 파일의 예를 참조한다. 다음은 빌드 후 링커 map 파일의 내용이다. 모든 코드와 데이