프로그래밍 4

우분투 14.04에서 시스템 호출 구현하기

오랜만에 리눅스 카테고리에 포스팅합니다. 학부 때 시스템 프로그래밍 이후에 리눅스를 쓸 일이 없을 거라고 생각했는데, 이번 학기에 관련 수업을 들어서 다시 사용하게 되었네요. 이번 포스팅에서는 우분투 환경에서의 시스템 호출을 구현해보도록 하겠습니다. (사실 포스팅이 귀찮아서 안 하는데 인터넷에 있는 정보가 대부분 예전 정보라 공부도 할 겸 정리용 포스팅입니다.) 본 포스팅에서 사용한 시스템 환경입니다. - Ubuntu 14.04.4 LTS (64 bit) - Oracle VM VirtualBox 5.0.16 ※ VMware Player 테스트에서는 커널 빌드후 부팅 불가능 문제가 있었음. 우분투 설치에 대해서는 이전에 포스팅한 #Step 01. 리눅스 설치 포스팅을 참고하세요. VirtualBox 셋팅 ..

ATmega128 GPS 이야기 - 마지막 (15.05.12)

[UST-SNR-GPS] 드디어 지겨웠던 GPS와의 마지막 이야기이다. 첫번째로 삽질 했던 점은 레귤레이터를 이용해서 구성한 회로에서 3.3V가 아닌 2V가 나왔다.아마 저번에 무언가 탔던게 문제였던거 같다. 두번째로 UART통신에 폴링으로 불러와서 저장시킨후 strtok()를 사용했는데.. 아무래도 폴링방식이라 중간에 날라가는 문자열들이 있었다. 허허... 저런것 때문에 삽질을 하다니 ㅜㅜ 결국 UART 인터럽트를 이용하여 문자열 저장후 자르니 정상적으로 나온다.그리고 필요한 데이터를 이래 저래 뽑아오니 잘 나온다. 실내에서는 수신감도가 영 별로라 잡히지 않아서 실외에서 15분정도 기다리니 신호가 잡혔다.생각했던데로 위도 경도 잘 받아온다. (DMM방식으로) 사실 이것도 구글 지도에 나타내기 위해서 D..

AVR Studio 4, UART에서 printf() 사용

테스트 환경AVR Studio 4.14ATmega128 (16MHz) [뉴티씨 AB-M128Pro-A] UART에서 printf()함수 사용. #include #include #include void UartTx(char message) { while ((UCSR0A&0x20) == 0); UDR0 = message; UCSR0A |= 0x20; } static int Putchar(char c, FILE *stream) { UartTx(c); return 0; } void Uart_Init(void) { UCSR0B = 0x08; UBRR0H = 0x00; UBRR0L = 0x67; } void Device_Init(void) { Uart_Init(); fdevopen(Putchar,0); } int ..

반응형