guestbook

  1. 하늘바라기

    프로젝트 우선 순위가 밀려 쉬엄쉬엄 알아보다.
    좀 어이없게 문제가 해결? 까지는 아니고 ISR calling delay 줄이는 방법을 알아냈네요... ㅋㅋ
    별거아니지만 같이 공유해봅니다.
    kernel 에서 power mengement 부분에서 Idle mode를 disable하면 ISR calling delay 가 거의 사라지네요
    traser를 이용하여 보니 각 process들이 idle mode로 들어갔다 wakeup하는 시간이 짧게는 몇 us에서 몇십 us까지 걸리는 것을
    보고 try 해봤더니 확실히 개선이 되는군요... ㅠㅠ
    이걸 몇달을 삽질했네요...
    ^^
    항상 블로그에 올려주시는 글 잘보고 있습니다.
    감사힙니다.

    2016.03.31 09:38 신고 [ EDIT/ DEL : REPLY ]
    • 와.. 좋은 정보 감사합니다 ㅎㅎ
      그나저나.. sleep mode가 isr에 영향을 크게 줄거라고 생각을 못했네요
      그렇게 짧게짧게 sleep이 들어갈줄은.. ㄷㄷ

      2016.03.31 09:52 신고 [ EDIT/ DEL ]
  2. 비밀댓글입니다

    2016.03.03 15:55 [ EDIT/ DEL : REPLY ]
    • 고정밀 타이머라고.. HPET 쪽을 지원하면 해상도를 올릴 순 있으나 인터럽트를 제시간에 하려면.. nice를 올리는 그리 좋지 못한 방법외에는 딱히 떠오르는 방법이 없는것 같습니다.(음수의 nice 값을 지정하면 우선순위가 높아져 레이턴시가 조금은 더 고르게 나오지 않을까 합니다)
      아니면 별도의 마이컴을 이용해서 hard RT를 요구하는 부분을 따로 꺼내거나 하는 식으로 처리 해야 하지 않을까 합니다.

      http://www.slideshare.net/jserv/realtime-linux

      그리고.. 멀티 프로세서라면 affinity 지정해서 특정 한가한 cpu에 고정할당하는 식으로 테스트 해보시는 것도 방법일 것 같습니다.

      2016.03.03 13:16 신고 [ EDIT/ DEL ]
  3. 비밀댓글입니다

    2016.03.03 15:55 [ EDIT/ DEL : REPLY ]
  4. 하늘바라기

    ^^ 인사가 늦었습니다.
    새해 복 많이 받으시고
    새해에는 원하시는 모든 일 다 이루시길 바랍니다... ^^
    행복하세요~!

    2016.01.05 11:42 신고 [ EDIT/ DEL : REPLY ]
  5. 하늘바라기

    별말씀을 다하십니다....
    항상 누군가에게 물어볼수 있고 성의있게 답해준다는 것만으로도...
    많은 도움과 힘이 납니다...
    항상 감사합니다. ^^

    2015.12.08 08:43 신고 [ EDIT/ DEL : REPLY ]
  6. 하늘바라기

    ^^;;;;;
    해결했습니다....
    While문안에서 너무 delay가 적어서 그랬네요.... ㅠㅠ
    CPU 속도가 높아진걸 관과했네요...
    항상 성의있는 답변 감사합니다...

    2015.12.07 17:50 신고 [ EDIT/ DEL : REPLY ]
    • 매번 별 도움이 못되는것 같은걸요 ㅠㅠ
      잘해결하시는거 보니 부럽습니다 ㅠㅠ

      2015.12.07 21:04 신고 [ EDIT/ DEL ]
  7. 하늘바라기

    우선 답변감사합니다.
    이부분이 새로작선한 code가 아니라 At91sam9g45로 이미 구현했던 것을 TI사 AM3352로 포팅하고 있는 거라서요...
    User영역 부분은 기존과 동일해서요... (기존에는 잘 돌아갔는데...)
    그리고 계속 Waiting하는 것이아니고 kernel 영역에서 setting되는 flag를 User 영역에서 While문에서 1usec에 한번씩 read해서
    값이 셋이되면 break로 나오게 되어있습니다. ^^;;;
    preemptive scheduling 설정이나 spin lock 같은 걸로 해결이 안될까요?

    2015.12.07 15:46 신고 [ EDIT/ DEL : REPLY ]
    • 드라이버 쪽을 구현해본 경험이 적어서 말씀 드리기 힘들지만...
      interrupt가 아닌 polling 방식으로 구현하면 이래저래 cpu 소비가 높아서 효율이 좋진 않을것 같습니다.
      저도 찾아 봐야 할듯 합니다만...
      일단 kernel mode에서 user mode 프로세스 쪽으로 signal이나 인터럽트를 통해 값이 변경되었음을 알려주는게 올바른 설계방법이 아닐까요?

      http://stackoverflow.com/questions/3614213/user-mode-and-kernel-driver-communication

      2015.12.07 15:54 신고 [ EDIT/ DEL ]
  8. 하늘바라기

    안녕하세요? timer interrupt 관련하여 질문이 있어 문의 드립니다.
    kernel 영역: PWM timer
    user 영역 : 상태값(PWM timer 종료 상태 check flag)을 1usec sleep을 주고 while문으로 기다림

    kernel에서 PWM timer 동작은 잘하는데...
    동작하는 상황에서 user영역에서 상태값을 기다리기위해 while문으로 진입하면 kernel 영역에 timer가 delay가 발생하면서
    광장히 느리가 동작하네요...
    kernel 영역와 user영역이 서로 간섭을 하는 것으로 보이는데...
    이런 경우엔 어떤 부분을 봐야 할까요?
    그럼 남은 오후도 즐거운 시간되세요.

    2015.12.07 14:07 신고 [ EDIT/ DEL : REPLY ]
    • 1msec도 아니고 1usec이면.. busy-waiting 수준이라
      cpu를 많이 먹어서 kernel 모드로 들어가려고 하면서 thrashing 발생하는게 아닐까 합니다. 그리고.. arm이 좋아졌다고는 해도..
      usec 단위로는 몇개 명령어 처리 못할테니 유의미하게 컨텍스트 스위칭을 하긴 힘들것 같고.. 그런 time critical한 작동은 mcu로 독립시키거나 하는게 가장 옳은 설계 방법이 아닐까 합니다.
      아니면.. RTOS나 RT 패치 하셔서 쓰기전에는 무리가 아닐까 합니다.

      2015.12.07 15:12 신고 [ EDIT/ DEL ]
  9. 오충용

    안녕하세요? 구차니님
    회사에서 vTiger와 Suite 중에서 하나를 골라서 사용해 보자.. 라고 이야기를 했는데 모든 개발자들이 눈만 꿈뻑이면서 꼼짝도 안 하고 있어서 혹시 구차니님께서 가능 하시다면 구로디지탈단지에 있는 저희 회사로 강사 초빙을 할 테니 1시간 정도 저희 개발자들에게 vTiger와 Suite를 가지고 사용하려면 어디 어디가 정말 힘들고 어려운지 한 말씀 해 주실 수 있으시겠는지요? 강의는 언제든지 그리고 어느 시간대라도 상관 없으며 강사비는 잘 준비해 드리겠습니다. ^^
    제 전화번호는 010-5296-6174 이니 언제든지 문자나 전화 주십시오. 감사합니다.

    2015.12.05 22:09 신고 [ EDIT/ DEL : REPLY ]
    • 죄송하지만 vTiger 도입해보려다가 저도 포기해서
      남들에게 사용법을 알려드릴 만큼 써보지를 못했습니다.
      죄송합니다 ㅠㅠ

      2015.12.05 23:01 신고 [ EDIT/ DEL ]
  10. 하늘바라기

    ^^;;; 제가 블로그를 하지 않아서요...
    신경써주셔서 감사합니다.
    제가 자주 들어오겠습니다.

    2015.11.05 08:37 신고 [ EDIT/ DEL : REPLY ]