본문 바로가기

MCU 일반5

GCC와 IAR EWARM에서 packed 사용하기 저는 주로 네트워크 통신에서 packet 파싱하는 용도로 packed 구조체를 사용합니다. 다른 용도로는 거의 써본적이 없군요. 여튼 자주 쓰는 것은 아니다 보니 매번 쓸때마다 구문을 까먹고 메뉴얼 뒤지고 하는 중인데요... 오늘은 찾아본 김에 정리해놓을려구요 ^^; GCC에서 struct __attribute__ ((packed))Packed_Info { u8 Var8a; u16 Var16a; u8 Text[4]; }; typedef struct __attribute__ ((packed)) { u8 Var8a; u16 Var16a; u8 Text[4]; } Packed_Info; IAR에서 __packed struct Packed_Info { u8 Var8a; u16 Var16a; u8 Text[4];.. 2014. 6. 12.
STM32F PB3(JTDO)핀 GPIO로 사용하기 STM32F10x 시리즈 MCU의 PB3 핀은 기본적으로 JTDO로 사용됩니다. 필요한 경우 remap을 통하여 GPIO로 사용할 수 있습니다. JTAG 관련 5개 핀 모두 다 해당하는 말인데 콕찝어 PB3만 언급한 것은 이녀석이 SWO와도 multiplexing 되어 있기 때문입니다. 제가 격은 문제는 JTAG은 안쓰고 SWD만 쓰면서 어쩌다 보니 SWO가 활성화 되어버리면서 PB3를 제맘대로 못쓰는 일을 겪으면서 오늘 황금같은 토요일을 진창 날려버렸습니다. 아 열받어. 일단 SWO에 대한 언급은 STM32 데이터시트에 아래와 같이 언급되어 있습니다. 저 빨간 박스 쳐 놓은 저 주석 한줄이 끝입니다 -_-;;; asynchronous trace가 뭐냐 한참을 뒤졌네요. synchronous trace는.. 2011. 9. 24.
Byte Order - Little/Big Endian 컴퓨터에서 숫자를 메모리에 저장할 때 사용되는 두가지 방식이 있습니다. Byte order에 따라 구분되는 방식이구요, 각각 Little Endian, Big Endian이라 불립니다. 이 두가지에 대한 설명은 인터넷에 많이 있습니다. 몇가지 링크를 첨부하는 것으로 설명을 대신합니다. http://recipes.egloos.com/4993723 http://en.wikipedia.org/wiki/Endianness 요즘 프로세서들은 Little Endian쪽으로 많이 통일되어 가고 있습니다... 라고 말씀드리고 싶지만, Intel(AMD), ARM 계열이 거의 대부분인 현실에서 Intel과 ARM이 little endian을 사용하고 있으니 통일되어 가는 것 처럼 보이는 것일 뿐입니다;;; 참, AVR .. 2011. 6. 23.
[IO 포트] push-pull, open drain MCU나 74 시리즈 로직 칩들을 보다 보면 출력 타입이 여러가지가 있는 것을 볼 수 있다. 가장 기본적이면서 또 그만큼 많이 사용되는 두가지 출력 타입에 대해 이야기 해보려 한다. push-pull 타입과 open drain(혹은 open collector) 타입이 그것이다. Drain은 MOSFET의 Drain 핀을 의미한다. Collector는 BJT의 Collector이다. Open drain과 open collector는 동일한 동작 원리를 가지는 구성을 MOSFET로 만들었느냐 BJT로 만들었느냐의 차이일 뿐이다. 반면 push-pull 출력은 BJT나 MOSFET나 모두 같은 이름을 사용한다. 위 그림이 push-pull 출력단을 간단하게 그려본 것이다. push-pull 출력 포트는 2개의.. 2010. 7. 14.