MIPS 머신을 구할 수 있다면 좋겠지만, 보통 PC 환경이라면 MIPS 어셈블리어 코드를 빌드하고 실행해보려면 크로스 컴파일러와 시뮬레이터가 필요합니다. 크로스 컴파일러는 컴파일러 소스를 이용해서 만드는데요, Host(PC를 운영중인 환경)와 다른 환경인 Target(실제 빌드된 바이너리를 실행할 환경)에서 실행가능한 바이너리를 생성하는 역할을 합니다. 지금처럼 Intel Architecture인 PC로부터 MIPS Architecture를 사용하는 다른 장비용 바이너리를 생성하는 것이지요. ^^;;;


사실 크로스 컴파일러를 만드는 건 상당히 힘든 작업입니다. 컴파일러 소스의 버전과 실제 코드를 컴파일하는 Host PC의 컴파일러 버전, 그리고 리눅스 환경이라면 커널 소스 코드의 버전에 따라 에러를 내뿜기도 하거든요. ㅠㅠ MINT64 OS도 크로스 컴파일러를 만들어 사용하는데, 이 부분 때문에 지금 많은 분들이 어려움을 겪고 계십니다. ㅠㅠ(죄송합니다. 조만간 깔끔한 해결책을 내놓겠습니다. ㅠㅠ)


MIPS 개발 자료는 http://www.imgtec.com/mips/developers/에서 많이 찾으실 수 있는데요, 크로스 컴파일러를 만드는 자료는 http://developer.mips.com/tools/compilers/open-source-toolchain-linux/에서 찾아 보실 수 있습니다.


<MIPS 크로스 컴파일러 다운로드 및 빌드 방법>


저는 이미 빌드된 바이너리가 잘 실행되지 않아서 직접 소스를 내려받아서 빌드를 했는데요, 빌드는 중간쯤에 보시면 아래와 같이 Mips_linux_toolchain_src-1.1.tar.bz2를 다운로드 할 수 있는 부분부터 보시면 됩니다. ^^ 보통 컴파일러 소스 코드를 다운받아서 빌드하면 문제가 많이 생기는데, 깔끔하게 묶어놔서 그런지 문제없이 한 번에 빌드가 되네요. ^^ 아래는 빌드하는 방법인데, 간단하게 압축을 풀고 빌드한 결과물이 저장될 디렉터리만 지정하면 됩니다.

> tar vfxj Mips_toolchain_src-1.1.tar.bz2
> ./build-mips-sde-elf.sh --prefix=DIR


그럼 좋은 하루 되세요. ^^

MIPS를 사용하는 기기를 만질 일이 있어서 MIPS 어셈블리어랑 구조를 볼 기회가 생겼습니다. ^^;;; 그런데… 뭐랄까요… 이게 생소한게 한 두 가지가 아니더라구요. 일단 MIPS 어셈블리어의 형태가 x86과 달라서 이해하는데 시간이 엄청 들었고… 겨우 어셈블리어로 프로그래밍을 시작했을 때 이걸 실행해 볼 수가 없어서 엄청 고민했습니다. ㅠㅠ


그런데, 이런 고민을 저만 한 게 아닌가 보더군요. ^^;;; 일반 PC 환경에서 MIPS 기기를 에뮬레이션 해주는 SPIM이라는 프로그램이 있었습니다. 다운로드는 여기에서 받을 수 있습니다. 사실 MIPS 어셈블리어 코드를 실행해보려면 컴파일러/링커와 MIPS 머신이 필요한데요, 이런 부분을 하나로 합쳐서 어셈블리어 소스 코드를 넣으면 직접 실행해줍니다. ^^


게다가 오픈 소스에 윈도우/리눅스/맥까지 지원하고 있어서 더 멋지다는~!! MIPS가 명령어도 x86 계열에 비해 단순하고, 명령어 바이트도 4바이트로 고정되어 있어서 에뮬레이터를 만들기가 좀 수월할 것 같기도 합니다. 나중에 시간이 나면 소스 코드도 한 번 훝어봐야겠네요.


ps) MIPS 어셈블리어가 궁금하다면 여기를 참고하세요 ^^

+ Recent posts