Raspberry Pi 개발환경 #3- Connection refused
By 느린번개 | 2017년 1월 18일 |
가장 최근에 업데이트 된 RASPBIAN JESSIE image를 다운받게 되면, SSH가 접속이 되지 않는다.아래처럼 Connection reused가 발생을 할것이다.Ping 을 날려보면 정상적으로 응답을 하고 있는데 말이다.라즈비안 릴리즈 노트를 확인해보면 SSH 를 default를 disable 시켰다고 한다.. 젠장......http://downloads.raspberrypi.org/raspbian/release_notes.txtSD카드에 "ssh" 라는 파일명으로 빈 파일을 하나 만든후, 다시 시작하면 ssh가 enable 된다.https://www.raspberrypi.org/blog/a-security-update-for-raspbian-pixel/ ㅠㅠ 이걸 몰라서 죄없는 RPi
[라즈베리파이] 커널 타이머 - 동적 타이머 실행 코드
By Guillermo Austin Kim | 2018년 8월 8일 |
동적 타이머를 초기화만 하면 동적 타이머를 쓸 수 없습니다. 동적 타이머를 실행해야 합니다. 이를 위해 add_timer()/add_timer_on() 이나 mod_timer() 함수에 적절한 인자를 채워 호출해야 합니다. 보통 add_timer() 함수를 써서 동적 타이머를 실행하며 이후 동적 타이머 만료 시간을 다시 설정한 후 동적 타이머를 실행시킬 때 mod_timer() 함수를 씁니다. add_timer()와 mod_timer() 함수를 써서 로컬 타이머를 설정하는 코드를 살펴보겠습니다. 먼저 라즈비안에서 로컬 타이머를 실행하는 코드를 봅시다.1 bool bcm2835_sdhost_send_command(struct bcm2835_host *host,2 struct mmc_command
[라즈베리파이] 인터럽트 백터 어셈블리 코드 및 동작 분석
By Guillermo Austin Kim | 2018년 2월 13일 |
인터럽트가 발생하면 __irq_svc 벡터로 점프합니다. 물론 해당 프로세스는 하던 일을 멈출 수 밖에 없는데요.그럼 인터럽트 벡터에서 어떤 동작을 하는 지 어셈블리 코드를 분석하겠습니다. #__irq_svc 코드 리뷰[1]: 스택 공간을 0x4C 바이트만큼 확보합니다. [2]--[3]: 현재 실행 중인 레지스터 R0부터 R14, PC까지 스택에 푸쉬합니다. [4]: 0x80705398 메모리 공간에 있는 메모리 덤프 0x80c089ac를 로딩합니다. 0x80c089ac는 handle_arch_irq란 함수 포인터 역할을 하는 변수인데 이 변수에는 gic_handle_irq가 지정되어 있습니다.crash> p -x handle_arch_irqhandle_arch_irq = $3 = 0xc01
[라즈베리파이] 인터럽트 핸들러 등록(2) - #CS
By Guillermo Austin Kim | 2018년 5월 25일 |
[라즈베리파이] 인터럽트 핸들러 등록(1) - #CShttp://rousalome.egloos.com/9976901에서 계속 ... 이번에는 다른 코드를 입력해서 인터럽트 핸들러와 인터럽트 디스크립터에 대해 알아볼게요. 다음 패치는 인터럽트 핸들러를 등록한 후 바로 해당 인터럽트 번호로 인터럽트 디스크립터를 커널 함수로 읽어와 인터럽트 설정 정보를 출력합니다. 제대로 인터럽트 핸들러를 등록했는지 점검하고 싶을 때 활용하면 좋은 코드입니다. 파라미터가 인터럽트 번호이므로 인터럽트 번호만 대입하면 다른 함수에서도 호출할 수 있죠. 이제부터 코드를 어떻게 작성했는지 함께 살펴볼까요? 우선 dwc_otg_driver_probe 함수 위에 다음 코드를 입력합니다.1 static void interrupt_de