리눅스

포스트: 554|조회수: 0|TERM
Items

Posts

554 posts

[라즈베리파이][리눅스커널] 인터럽트 소개(0)

Guillermo Austin Kim|2018년 3월 2일

인터럽트란인터럽트란 단어가 여러분들은 생소하신가요? 낯설게 들리는 분도 있고 귀에 익은 분도 있을 텐데요. 평소 인터럽트를 뭐라고 하죠? 일상생활에서 인터럽트는 보통 갑자기 생긴 일이나 하던 일을 멈춘다는 의미죠. 예를 들면 책을 읽다가 전화가 와서 읽던 책을 덮어 놓고 전화를 받는 상황이죠. 임베디드 시스템 관점으로 인터럽트는 뭘 의미하죠? 우선 하드웨어 관점으로는 하드웨어 변화를 감지해서 외부 입력으로 전달되는 전기 신호로 볼 수 있습니다. 예를 들면 키보드를 손으로 입력하면 하드웨어적으로 키보드 하드웨어의 변화를 감지하고 신호를 유발하죠. 보통 하드웨어 개발자들은 종종 오실로스코프란 장비로 인터럽트가 제대로 올라오는지 측정을 하죠. 인터럽트 신호를 측정하면 아래와 같은 파형을 볼 수 있는데요. 참고

[bash: nl, awk] 결과 출력에 행번호를 같이 표시하기

반달가면|2018년 2월 28일

화면에 결과를 출력할 때 행번호를 같이 표시할 필요하 있다면 nl을 이용할 수 있다. 아래의 예시를 보자. cat my_file.txt | nl 1 abc 2 def ... nl에서 아무련 옵션을 주지 않았을 경우, 6칸을 행번호 폭으로 할당하고 행번호와 출력 내용은 탭(tab)으로 구분된다. 만약 행번호의 폭을 1칸으로 하려면 -w 옵션을 사용하고, 구분자를 바꾸고 싶다면 -s 옵션을 사용하면 되겠다. # 행번호 폭 1칸, 구분자 콜론(:) cat my_file.txt | nl -w 1 -s ":" 1:abc 2:def ... 9:abc 10:def ... 출력 행수가 많아서 행번호 자리수가 -w에서 지정한 폭을 넘어갈 경우에는 당연히

[프로세스] 실행 중인 cpu 정보 업데이트(커널 4.9.65 )

Guillermo Austin Kim|2018년 2월 23일

ARM64 비트 리눅스 커널 4.9.65 버전에서 아래 구조체가 변경됐습니다.특히 해당 프로세스가 돌고 있던 CPU 정보를 담고 있는 int cpu 멤버가 사라졌는데요.crash64> struct thread_infostruct thread_info { unsigned long flags; mm_segment_t addr_limit; int preempt_count;} 기존 Linux version 4.6.0 버전crash64> p linux_bannerlinux_banner = $1 = "Linux version 4.6.0 (sudhakar.koppiset@ubuntu) (gcc version 5.2.1 20151005 (Linaro GCC 5.2-2015.11-2) ) #1

[라즈베리파이] 인터럽트 소개(0)

[라즈베리파이] 인터럽트 소개(0)

Guillermo Austin Kim|2018년 2월 19일

인터럽트란"인터럽트 걸지마!", "인터럽트가 계속 걸려와 일을 제때 못 끝냈어요." 평소에 이런 소리 들어봤나요? 이렇게 인터럽트는 일상생활에서 쓰는 단어 같습니다. 그럼, 사람들은 인터럽트를 뭐라고 생각하죠? 보통 갑자기 생긴 일이나 하던 일을 멈추는 상황을 말하죠. 책을 읽다가 전화가 와서 읽던 책을 덮어 놓고 전화를 받는 상황을 예로 들 수 있습니다. 그럼 임베디드 세상에서 인터럽트란 단어는 자주 쓰일까요? 정답은 “아주 자주 씁니다.”입니다. 프로젝트 개발 도중 리눅스 드라이버 개발자들이 “인터럽트가 저 동작에서는 제대로 뜨지 않아”, “인터럽트를 설정해도 핸들러 호출이 안 되네” 그리고 “인터럽트 신호를 오실로스코프 장비로 찍어 봐야겠네.”"라고 말하죠. 임베디드 시스템 관점으로 인터럽트는 뭘 의