회원가입 ID/PW 찾기
AA

1. USART1_IRQHandler() 가 발생되면 데이터를 버퍼(큐) 에 저장하고, 0x0D / 0x0A 가 나오게 되면

   수신된 데이터를 분석하고, FLASH 에 저장하게 됩니다. 이때, FLASH ERASE 를 하게 되는데요.

   FLASH ERASE 를 하는 중에 TIM2_IRQHandler 혹은 USART1_IRQHandler() 가 발생할 경우가 생기게 되는데.

   FLASH ERASE 가 시간이 걸려서 그런지 위 두 인터럽트가 발생하지 않습니다.

   TIM2_IRQHandler 가 발생하게 되면 LED 를 깜박거리게 해 놓았는데, FLASH ERASE 하는 중에는 잠시 멈추는 현상이 되네요.

   그리고, FLASH ERASE 를 하는 중에 USART1_IRQHandler() 가 발생하여 받은 데이터를 또 다시 처리를 해야 하는데.

   FLASH ERASE 를 하는 중에는 데이터가 수신이 되지 않습니다.

 

2. Virtual COM Port 를 이용해서 디버그 메시지를 출력하도록 구현

  : USB_LP_CAN1_RX0_IRQHandler() : USB_Istr() 와 같이 구현하고, 출력 데이터는 버퍼(큐) 에 저장하고,

    ST 에서 제공하는 EP1_IN_Callback() 과 SOF_Callback() 으로 데이터 유실 없이 출력하도록 구현하였습니다.

  : 그런데, 위 1번과 마찬가지로 USART 에서 수신된 데이터를 Virtual COM Port 로 출력을 하는 중에

    데이터가 수신되었음에도 불구하고  USART1_IRQHandler() 가 발생을 하지 않습니다.

 

위와 같은 상황을 해결하려면 RTOS 를 넣어야 할까요? 아니면 잘 모르지만 Mode Privilege 를 이용해야 할까요?

 

이 상황을 간단히 재현하기 위해서 아래와 같은 테스트를 해 보았습니다.

 

1. main() 함수에서 특정한 문자가 들어올 경우 while(1){} 를 하도록 하면, TIM2_IRQHandler 가 발생을 하더군요.

2. USART1_IRQHandler() 가 발생할 경우 while(1){} 를 하도록 하면, CPU 가 멈추는 현상이 발생하여

   TIM2_IRQHandler 가 발생을 하지 않습니다.

 

제가 간단히 테스트를 한 것이 Mode Privilege 랑 연관성이 있을까요?

 

답변 부탁드립니다.

 

댓글 2
  • No Profile
    저두 이제막 접한거라 부족하지만;;;

    플래그를 활성하 하시면 그나마 풀리지 않을까 생각 듭니다
    그리고 cpu가 다운 먹는다기보단 중간에 연산과정에서 무한 루프를 돌고 있을수 있습니다.
    인터럽트 처리중 또 인터럽트가 들어와 연산 과정중 꼬이는 현상이 발생하더라구요;;;
    그래서 연산을 마무리 짓고 빠져 나와야 하는데 수치가 중간에 바뀐다던가 해서 연산식을 못 빠져 나가는
    현상이 생기더라구요;;

    통신을 모두 받고 나서 cr, lf 가 수신 되었을시 플래그 변수 를 하나 넣어서 참으로 바뀌게 한뒤
    while에서 조건 문을 넣어놓고 플래그가 참일경우 연산하게 구현을 해야 할듯 합니다.

    그렇게 되면 중간에 통신 받는중에 또 받 더라도 최종적인 데이터만 처리하게 되겠죠;;;

    횡설수설 한것 같은데 ㅠㅠ ;; 인터럽트 ㅠㅠㅠ 무조건 쓴다고 좋을줄 알았는데 저도 이래저래 막히는게 생기네요 ㅠㅠ
    도움이 되셨는지 모르겠네요 ㅠㅠ
  • No Profile
    아;; 인터럽트 순서는 정하셨죠?

하드웨어 설계 및 개발에 대하여 개발자들이 자유롭게 토론하는 공간입니다.
- Q&A, 자유주재 토론, 관련 정보 공유
- 분야 : 마이크로프로세서 응용, 전기/전자(아날로그/디지털) 회로 설계, C/C++ 프로그래밍, 펌웨어,
         PCB Artwork, 트러블슈팅 등 하드웨어 설계에 관한 전반인 내용
※ 게시글에 맞는 분류를 선택하여 글을 작성해 주시면 쾌적한 사이트 운영에 많은 도움이 됩니다.
※ 하드웨어 인사이트는 회원들간의 거래정보를 게재할 뿐이지, 그 어떤 책임과 의무도 가지지 않습니다.

search
번호 분류 제목 글쓴이 조회 수 날짜
66 개발용역 HOTPCB Art Work 제작9 박팔뚝 5512 2010.10.18
65 개발용역 HOT계약직 또는 알바 형태로 프로그램 짜 주실분 찾습니다.(종료) 푸른하늘은하수 5670 2010.10.14
64 개발용역 HOT자동차 밧데리 충전기 개발1 C1 6578 2010.10.11
63 개발용역 HOT의뢰: Arduino로 제작된 코드를 ARM7용으로 포팅해 주실 분을 찾습니다.1 센서블유아이 5246 2010.09.28
62 개발용역 HOT삼성 3.5인치 TFT-LCD (Touch 포함) 싸게 드려요. 삼성 3.5인치 TFT-LCD (Touch 포함) 싸게 드려요. 띵요루슛 4723 2010.09.17
61 개발용역 HOT8051: 적외선 물체 감지3 enshiper 6464 2010.09.13
60 개발용역 HOTPCB 임베디드 프로그래밍 , 아르바이트 의뢰. 업체도 문의 가능1 대경 11846 2010.09.05
59 개발용역 HOT고압 파워 개발1 미스메이커 5546 2010.08.27
58 개발용역 HOTPCB 아트웍 / PCB 제작 / PCB 조립 전문 업체1 용가리3 12193 2010.08.14
57 개발용역 HOTPCB ARTWORK 설계 / 교육 업체 CADROOM 입니다.1 코딱지 5520 2010.08.11
56 개발용역 HOTserial port data를 pc로 전송하여 그래프화를 하고 싶습니다.1 Cool™ 5507 2010.08.10
55 개발용역 HOT사인파를 정류해서 led로 표시할려면3 초초 6217 2010.08.04
54 개발용역 HOT이런것도 개발 의뢰라고 해야하나...4 밤귀신 6254 2010.07.27
53 개발용역 HOT회로설계 & pcb 아트웍 배우고 싶으신분10 용가리3 12037 2010.07.17
52 개발용역 HOTWireless + Touch 제품 MCU S/W 개발 알바가능하신분 연락바랍니다. Quadro 11756 2010.07.17
51 개발용역 HOT전자회로,펌웨어등 유능한 인재를 모십니다. 파워짱 6407 2010.06.05
50 개발용역 HOTled콘트롤5 아크마 6847 2010.05.27
49 개발용역 HOT제작의뢰 : 8051 적외선센서5 벤트너 6204 2010.05.09
48 개발용역 HOT전광판 컨트롤러 개발자료 가지고 계신분 모십니다.3 쓰나미 5600 2010.05.03
47 개발용역 HOT샘플 보드 손으로 smd 땜해 주실분 있나요?5 땜고수 5138 2010.04.29
Prev 1 ... 3 4 5 6 7 8 9 10 11 12 Next
  • 확실한 벗은 불확실한 처지에 있을 때 알려지다.
    - 시세로
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.