마이크로 프로세서 참으로 만만한 프로그래밍이 아니네요 -_-

비동기 직렬 통신 실험 프로그램을 짜는데 인터럽트에 의한 통신.

인터럽트 들어오면 수신 버퍼에 넣어주고

그걸 읽어서 처리하고..

만약에 송신버퍼가 비었으면 송신 인터럽트를 막다가 송신이 생기면 열어주고..

송신 버퍼에 있는 내용을 송신 레지스터에 쭉 전달한 후에 다시 비면 막아주고..

속도는 몇으로 하고..

크리티컬 섹션같은 인터럽트 막기와 열기..

무엇보다 괴로운건 테스팅.

모든 상황을 고려해 봐서

송수신 버퍼가 모두 찼을때..(속도가 빨라 잘 일어나지 않으니 버퍼를 모두 채우는 방법 고려)
한파이트씩 읽고 보내는 실험..

.... 문제 발생하면 원인 분석하는데 한참 -_-;;





게다가 덤으로 고급운영체제 리눅스에서 생산자와 소비자 문제를 스케쥴링을 고려해서 프로그래밍까지..

누군가 너의 두개골과 뇌를 분리시켜 주마!!! 라고 외치는것 같습니다.