etc/프로젝트

[임시소] 기말 프로젝트 시작

uyt8989 2022. 6. 20. 13:41

 이번 학기에 임베디드 시스템 소프트웨어라는 과목을 수강하고 있다. 임베디드 환경에서 리눅스가 어떻게 동작하는지에 대한 내용을 배우고 있다. 중간고사 이전에는 주로 임베디드 환경이 어떤 식으로 구성되어 있는지, 리눅스 커널이 어떻게 동작하는지에 대해 배웠다(곁다리로 C 코드를 최적화하는 방법도 배움). 시스템 콜, 디바이스 드라이버 정도는 아직 기억에 잘 남아있는데 나머지는 거의 까먹기 직전이다.

 기말에는 커널이 메모리를 할당하는 방법, 인터럽트에 관한 내용을 배우고 마지막엔 안드로이드로 넘어와서 JDK, NDK에 대해서 배웠다. 그리고 파이널 프로젝트로 JNI와 디바이스 드라이버를 사용하는 선에서 자유 주제로 응용을 하나 만들면 된다. 주말간 주제를 고민해봤는데, 결국은 안드로이드는 최소화하고 로우 레벨을 많이 사용하기로 결정하고 랜덤으로 생성된 미로를 탈출하는 프로그램을 만들기로 했다.

 

1) 랜덤으로 미로를 생성하는 프로그램을 작성해야 한다.

 어차피 보드 상에서 출력할 수 있는 미로는 한계가 있다. DOT LED로 미로를 표현하고자 하는데 10x7밖에 되지 않는다. 따라서 복잡한 알고리즘이 필요하지 않다. 현재는 Recursive나 Binary Tree 알고리즘을 생각하고 있다.

 

2) 디바이스 드라이버를 만들어야 한다.

 현재 사용하려고 생각 중인 출력 장치는 DOT LED, FND, LED 정도가 있다. DOT LED는 미로를 보여주지는 않고 사용자가 지나온 길을 보여줄 수 있도록 한다. FND는 미로 탈출에 걸리는 시간을 측정하여 보여준다. LED는 사용자가 현재 미로를 몇 개 통과했는지를 LED로 나타내려고 한다.

 

3) 새로운 시스템 콜을 심고 싶다.

 시스템 콜을 배운 김에 새로운 걸 심어보고 싶은데 마땅이 생각나는 기능이 없다. 디바이스 드라이버랑 소통하는 시스템 콜을 심는 게 잘 될지 모르겠다.

 

4) 안드로이드 기능 최소화

 어차피 프로젝트가 안드로이드에 초점이 맞춰진 것이 아니므로 안드로이드 상에선 상하좌우 버튼과 리셋 버튼 정도만 구현할 생각이다. 

'etc > 프로젝트' 카테고리의 다른 글

[임시소] 랜덤 미로 생성  (0) 2022.06.20