회원가입 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
번호 분류 제목 글쓴이 조회 수 날짜
35 Software & IDEs HOT빠쑝님께서 올리신 api 통신함수에 대한 질문입니다.1 momozizi 1042 2010.11.17
34 Software & IDEs HOTcrc 계산1 푸른하늘은하수 4070 2010.11.13
33 Software & IDEs HOT어떤언어를 배우는것이 가장 쉬운가요?4 멍치 1082 2010.10.29
32 Software & IDEs HOTVC++로 만들껀데요. ^^4 이란주 981 2010.08.30
31 Software & IDEs HOTbin파일에관한 질문드립니다.1 왕초보틱 962 2010.08.26
30 Software & IDEs HOT[matlab] 사용했던 변수 저장에 관하여 키핀 983 2010.08.05
29 Software & IDEs HOT마이크로 컨트롤러 질문???5 진구짱 977 2010.06.04
28 Software & IDEs HOT게임만들기 전!!2 잉어aa 1121 2010.05.29
27 Software & IDEs HOTData = Data * 0x100 무슨 의미 인가요4 파인 윤 1197 2010.05.22
26 Software & IDEs HOT리모콘 모듈을 제작해주는 곳이 있을까요?2 철방이 957 2010.05.11
25 Software & IDEs HOT13 jeonity 899 2010.04.30
24 Software & IDEs HOT지그비 ZBS-200 프로그램 질문입니다!!2 소울 1728 2010.04.11
23 Software & IDEs HOTVisual C++ 6.0 프로그램이 비스타 작동 안하나요?6 fairlady 1302 2010.03.30
22 Software & IDEs HOT안녕하세요 혹시 소스나 이전에 프로그래밍되있는것을 찾을곳이있을까요?3 꿀이 896 2010.03.30
21 Software & IDEs HOT초보에게 추천해주실 트레이닝 키트와 서적부탁드릴게요4 꿀이 922 2010.03.29
20 Software & IDEs HOT저기 레포트점 도와주세요1 메리짱 791 2010.03.22
19 Software & IDEs HOT반도체 설계/개발 관련 프로그래밍 언어는 어떤 것이 있는지5 트리스탄 1485 2010.03.19
18 Software & IDEs HOT오브젝트씨..쓰시는분들 볼트와너트 1150 2010.03.12
17 Software & IDEs HOT이해하기 쉬운 자료구좀 책좀 소개좀 해주세요..9 남보살 1031 2010.03.02
16 Software & IDEs HOTatmega128에 대해 알기 쉬운 책 좀 알려주세요..5 마이무따이가 1473 2010.02.03
  • 사랑은 너무 어려 양심이 무엇인지 모른다. 그러나 양심이 사랑에서 태어나는 것을 누가 모르는가?
    - 셰익스피어
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.