개요 - 오류증상. | |
실리콘 랩사의 Simplicity Studio(버전3, 2016년 3월 15일 시점 최신버전) 의 Configurator 의 USB Library 로 생성된 코드 설정이 정확하지 않은 버그가 있고 이를 해결하는법 정리.
오류증상. 확인된 오류 상황. 타겟칩 : EFM8 UB1 으로 하여 Simplicity Studio 의 Configurator에서 제공되는 USB 라이브러리를 활성화 하고 endpoint 를 사용함으로 설정하였음에도 자동생성된 펌웨어 코드에서는 해당 endpoint 가 비활성화되어있는 오류가 있다. 본 오류는 타겟칩 무관하게 즉, EFM32에서 USB Library 사용시에도 발생 한다.
오류상세. 아래처럼 Simplicity Studio 의 Configurator 에서 USB Library를 선택하고 EP1 OUT, EP1 IN 을 모두 enable 시켰다.
위와같이 endpoint 설정하고 자동생성시킨 코드 중에 emf8_usbd.c 를 보면 활성화 되어있어야 할 EP1IN 과 EP1OUT 이 비활성화되어있다. 전체 코드가 동일하게 이런 식으로 되어있다.
| |
|
해결책. | |
상기 오류를 해결하기 위해서는 프로젝트 설정에서 inclue 경로를 아래 붉은 박스처럼 수동으로 추가하면 된다. 파란색 박스에서 보이듯이 우리가 지정한 EP1IN 과 EP1OUT 부분이 enable 된다.
endpoint 정상화는 위 1개의 include 경로만 추가한 것으로도 해결되나, 안전하게 아래처럼 추가 2개의 USB Library 관련경로도 추가하자.
| |
|
///715.
'임베디드.일렉트로닉스' 카테고리의 다른 글
Microsoft OS 2.0 Descriptors Specification.-USB (0) | 2016.06.05 |
---|---|
keil compiler. __attribute__((at(address))) variable attribute. 주로 내부플래시 영역에 변수 할당하기 위함. (0) | 2016.04.14 |
EFM8UB1 Chip ID를 USB 시리얼로 설정하기. (0) | 2016.03.12 |
EFM8UB1 Unique ID (Chip ID) (0) | 2016.03.12 |
ALTIUM (알티움) 비아 써말릴리프 없애기. (0) | 2016.03.06 |
댓글