본문 바로가기
OldStory/WORKS

FreeROTS MMU and Cache

by Alnilam 2010. 9. 7.

RTOS에서 MP3를 소프트웨어로 디코딩 하는데 nucleus에서는 잘되는데 FreeRTOS에서는 소리가 끊어지는 현상이 발생하였다.

실제 타이머를 사용하여 측정결과 nucleus는 한 프레임 디코딩 하는데 10 ms 전후로 되는데 FreeRTOS에서는 100 ms 이상 걸렸다.

nucleus는 ADS 컴파일러를 사용하였고, FreeRTOS는 GCC를 사용하여 컴파일러 옵션에 문제가 있는 줄 알았는데 알고 보니 cache 설정 문제 였다.

FreeRTOS에서는 MMU를 지원 하지 않는다고 하여 따로 캐시 설정를 안하였는데 nucleus의 boot 코드를 보고 mmu 와 cache를 활성화 해 주었더니 정상 동작 하였다.

FreeRTOS에서도 MMU와 I/D cache를 사용하면 10배 가까운 속도 향상을 볼 수 있다.

'OldStory > WORKS' 카테고리의 다른 글

Embedded Qt at TW2880  (0) 2010.09.28
strtok()  (0) 2010.09.13
stack overflow  (0) 2010.08.18
Task Run Time Stats  (0) 2010.07.22
Task List  (0) 2010.07.21