반응형

Embedded 34

[C] Typedef 손쉽게 이해하기.

C언어에서 Typedef 는 자료형을 재정의 할 수 있도록 하는 아주 유용한 키워드입니다. typedef (자료형이름) (재정의할 자료형 이름) 로 되어있는 아주 쉬운 구조이죠. 사용방법을 간략하게 예를들면 아래와 같습니다. typedef int INT32; //int를 INT32로 재정의해서 사용할거에요! INT32 a = 1000; // int a = 1000 이랑 같은 뜻! 사실 위와같은 케이스에 대해 이해하는건 정말 쉽습니다. 그런데 이에 대하여 처음 접하거나 익숙하지 않은 경우 간혹 헷갈리는것들이 있습니다. typedef void (*fun)(int,int); //함수포인터 자료형! typedef int (*arr)[10]; //포인터 배열 자료형! 위 두개는 함수포인터의 자료형과 포인터 배열의..

[C] 매크로 함수 이해하기

아래와 같은 코드가 있습니다. #include int add_int(int x, int y); float add_float(float x, float y); #define fun( name0, name1, x, y )name0##_##name1(x,y) #define out( name0, name1, data )out_##name1(name0, name, data) #define out_int(name0, name1, data)printf(#name0"_"#name1 ": [ %d ]\n", data) #define out_float(name0, name1, data)printf(#name0"_"#name1 ": [ %f ]\n", data) void main() { int ia = 200, ib = 3..

[C] 매크로 함수에서 do~while(0)을 쓰는 이유

매크로 함수를 보다보면 do~while(0) 형태로 되어있는것을 보게 됩니다. #define add(a,b,c) do{a = a + b; }while(0) 왜 이렇게 사용하는지 한번 알아볼께요. 아래는 일반적인 매크로 함수 입니다. #include #define add(a,b,c) {a = a + b; \ c = a + b;} void main() { int a = 300, b = 200, c; if (a > b) { add(a, b, c); //if에 { } 를 사용! } else { printf("Test"); //else에 { } 를 사용! } printf("[ %d %d %d] \n", a, b, c); } 위 코드를 컴파일 해보면 정상적으로 동작합니다. 자 이제 if와 else의 소괄호를 없애고..

STM32을 개발하려면 필요한 Reference 자료..

ST사의 홈페이지에 가서 사용할 chip 또는 보드를 검색하면 대부분 나온다. 1. Data sheet Data sheet는 핀맵, 기능, 특성등이 있는 문서이다. H/W를 설계하거나 해당 디바이스에서 사용되는 기능이나 핀들을 간단하게 보고자 하면 이 문서를 참조하면 된다. 2. Reference manual Reference manual은 디바이스가 제공하는 기능에 대하여 상세하게 설명하며, 이를 사용하기 위한 SFR(Special Function Register)에 대한 설명을 가지고 있는 문서이다. 해당 기능을 사용하기위한 코드를 작성할 때 필수적으로 참조하야 하는 문서이다. 3. Programming manual STM32에 사용되는 Cortex-Mx의 레지스터, 인터럽트, 타이머, 명령어(Ins..

Embedded/ST Series 2016.11.22

6장. root 계정 활성화하기.

*이 글은 저 자신의 참고용으로 작성하였습니다. 안녕하세요. 이번엔 간단한것입니다. 굳이 써야하나 싶기도 할 정도로요... 그래도 일단 써봅니다. 그동안 명령어를 입력할때 sudo 를 앞에 입력하고 명령어를 쓴것.. 기억하시나요? sudo를 하지 않고 명령어를 입력하였을경우 접근할수 있는 권한이 없기때문에 그동안 명령어 앞에 sudo라는것을 붙여 사용했던것입니다. 이러한 명령어를 붙이지 않고 사용할 수 있는... 다시말하면 모든 권한을 가진 사용자가 있으니 그것은 바로 root 사용자입니다. 자 이제 이 root 사용자를 활성화하는 방법에 대해서 알아보도록 하겠습니다. 간단해서 금방끝납니다. 쉬어가는 시간이라고 생각 할 수도 있겠네요. root 계정(슈퍼유저)을 활성화 하여 접속하기. 라즈베리파이에서 다..

5장. XRDP와 SAMBA

*이 글은 저 자신의 참고용으로 작성하였습니다. 안녕하세요. 이번에는 SSH에서 GUI를 지원하지 않는것에 대해 아쉬움을 느끼는분들을 위해 리눅스용 RDP인 XRDP를 이용하려합니다. 또한 SAMBA라는 네트워크 프로토콜을 이용하여 파일을 공유하고자 합니다. SAMBA는 아마 임베디드 시스템을 학습하신분들이라면 아주 익숙한 프로토콜이라 생각됩니다. 먼저 RDP의 정의에 대해서는 아래와 같습니다. 원격 데스크톱 프로토콜(Remote Desktop Protocol, 줄여서 RDP)은 마이크로소프트사가 개발한 사유 프로토콜로, 다른 컴퓨터에 그래픽 사용자 인터페이스를 제공하는 프로토콜이다. 이 프로토콜은 ITU-T T.128 애플리케이션 공유 프로토콜의 확장이다.[1] 클라이언트는 윈도 모바일을 비롯한 대부분..

4장. SSH 방식으로 원격제어하기.

*이 글은 저 자신의 참고용으로 작성하였습니다. 안녕하세요. 오늘은 간단하게 라즈베리파이에 HDMI 케이블과 키보드,마우스등 주변장치를 연결하지 않아도 라즈베리파이를 제어할수 있는 방법에 대해서 알아보고자 합니다. 이를 위해서는 원격제어를 해야하는데 'PuTTY'를 이용하여 SSH(Secure Shell)방식으로 접근하도록 하겠습니다. 참고로 시큐어 셀이란 다음과 같이 정의합니다. 시큐어 셸(Secure Shell, SSH)은 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해 주는 응용 프로그램 또는 그 프로토콜을 가리킨다. 기존의 rsh, rlogin, 텔넷 등을 대체하기 위해 설계되었으며, 강력한 인증 방법 및 안전하지 못한 네트워크..

3장. Raspbreey pi 인터넷 연결하기.

*이 글은 저 자신의 참고용으로 작성하였습니다. 안녕하세요. 이번에는 인터넷을 연결하는 방법에 대해서 설명하고자합니다. 무선랜카드를 연결하는 방법과 랜케이블을 이용하여 연결하는 방법. 이 2가지를 나누어서 설명하도록 하겠습니다. 인터넷 안되면 답답하니 인터넷 설정하러 가봅시다!! 랜케이블을 이용한 인터넷 연결 설정 방법 먼저 랜케이블을 이용한 인터넷 연결 설정 방법에대해서 알아보도록 하겠습니다. 이건 솔직히 설명할 내용이 없습니다. 왜냐하면 그냥 공유기와 라즈베리파이2를 랜케이블로 연결하면 자동으로 연결됩니다. ^^ 따라서 연결이 되었는지 확인하는 절차만 밟도록 하겠습니다. 먼저 라즈베리파이2를 부팅하여 로그인을 합니다. 로그인이 완료되었다면 위와 같은 창이 뜨게됩니다. 이 창에서 ifconfig 를 입..

반응형