회원가입 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
번호 분류 제목 글쓴이 조회 수 날짜
65 Allegro & OrCAD HOTpcb설계 초보 질문??1 정상에서 1035 2010.11.12
64 Allegro & OrCAD HOTorcad libraries 질문 입니다.2 아카 1285 2010.11.06
63 Allegro & OrCAD HOT이크 큰일이군 설치를 행하는데.. 어쩌면 ..... tomas 1010 2010.11.01
62 Allegro & OrCAD HOTPCB 레이아웃 질문 드릴게요 ^^2 이주영 1113 2010.10.18
61 Allegro & OrCAD HOT4층 PCB 제작 어렵나요?6 헨슨 2425 2010.10.07
60 Allegro & OrCAD HOTOrcad 16.2 버전에 gerber tool1 TreeOfDream 2488 2010.10.01
59 Allegro & OrCAD HOTpcb 기본용어1 아크마 2326 2010.09.08
58 Allegro & OrCAD HOT4층설계시 그라운드카퍼를 ... ....,3 1815 1904 2010.08.27
57 Allegro & OrCAD HOT좋은 책 소개 부탁그립니다. 미스메이커 1321 2010.08.27
56 Allegro & OrCAD HOTorCAD Capture에서 회사 로고 따위 삽입하기?3 Kaye 4707 2010.08.09
55 Allegro & OrCAD HOT아래 내용과 이어지는 오류입니다. 노뜨라인 1994 2010.08.03
54 Allegro & OrCAD HOTorcad 파형보는데 계속 오류가 나네요..2 노뜨라인 2278 2010.07.08
53 Allegro & OrCAD HOTorcad layout 보드 크기 표시2 TreeOfDream 1436 2010.07.04
52 Allegro & OrCAD HOTlayout 가 없는데요..2 그냥이임 1448 2010.06.16
51 Allegro & OrCAD HOTorcad에 관하여 궁금한점[이론] 케빈네쉬 1453 2010.06.15
50 Allegro & OrCAD HOT코퍼깔고 비아를 넣었는대 작업이 안된선이 있는것으로 나오면? 어떻게 해야 하나요 ?4 우가우가 1701 2010.06.14
49 Allegro & OrCAD HOT전자캐드기능사 준비중2 12몽키 1534 2010.06.07
48 Allegro & OrCAD HOT전원 배선3 MATY 1312 2010.05.31
47 Allegro & OrCAD HOTorcad에서 회로도 그리고요 powerpcb로 import하는부분이요~~2 최강유니 1567 2010.05.29
46 Allegro & OrCAD HOTfootprint만들기 질문입니다. ㅠㅜ4 우가우가 2095 2010.05.24
Prev 1 ... 3 4 5 6 7 8 9 10 11 12 Next
  • 좋은 전쟁 또는 나쁜 평화는 없다.
    - 프랭클린
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.