임베디드의 모든 것
http://www.yes24.com/24/goods/12498872?scode=032&OzSrank=3
- ▶ 이전글/Book Reference
- · 2017. 11. 8.
임베디드 프로그래밍 C 코드 최적화
http://www.yes24.com/24/goods/2849712?scode=032&OzSrank=2
- ▶ 이전글/Book Reference
- · 2017. 11. 8.
http://www.yes24.com/24/goods/12498872?scode=032&OzSrank=3
http://www.yes24.com/24/goods/2849712?scode=032&OzSrank=2
1차원 배열을 넘어 2차원배열로 가면 문법을 자주 잊어버리기 일쑤입니다. C의 단점이기도한 복잡한 문법, 물론 C++보다는 낫습니다만 가독성이 많이 떨어집니다. 한번 정리할겸 기록해놓았습니다. foo(char (*string)[60]) { } main() { char string[20][60]; foo(string); } 간단하게 이렇게 넘깁니다. 아래는 간단한 예제로 파일명 정렬하는 소스입니다. MCHAR file_list[30][60]; file_sort(file_list, 20); static void file_sort(char (*files)[60], u8 count) { char tmp[60]; u8 i, j, n; n = count; for(i=0; i
개발자는 어떤 목적으로 프로그램을 만듭니다. 그 프로그램은 목적을 수행하기 위해 부단히 노력하며 자원을 소모합니다. 목적을 수행하는 프로그램이 다수에 의해 사용되고 사용자들을 그 프로그램에 종속시키고자 한다면 플랫폼을 만들면 됩니다. 플랫폼은 API로 이루어져 있습니다. 결국 가장 상위의 개발자는 플랫폼 위에 API를 사용하면서 자신의 어플리케이션을 그 위에 얹으면 되는 형식으로 개발하게 됩니다. 아래는 이러한 플랫폼을 개발하기 위해서 API를 설계하고자 할 때 자주 사용하는 패턴들입니다. ObserverTemplateWrapperAdapter 플랫폼 개발자는 사용자(상위 개발자)에게 미리 제공하고자 하는 기능의 interface를 구현해야하며, Hook나 Add On을 이벤트를 넣을 수 있도록 아키텍쳐..
Java에서 this, Objective-C에서 self 등등 클래스내에서 사용할 수 있는 예약어 통칭 this는 자기 자신의 클래스를 의미합니다. C언어에서는 this가 없습니다. 왜냐하면 클래스라는게 없으니 당연히 없습니다. 클래스는 메모리 자료형에 멤버함수가 존재하는 하나의 타입입니다. 그 타입으로 새로운 instance를 생성하여 사용하게 됩니다. 물론 C에서는 Java처럼 마구 instace를 찍어만들어 낼 수는 없지만(일일히 멤버함수를 assign 해주어야 함), 여러가지의 노력으로 비슷하게 만들어 낼 수 있습니다. 이러한 this는 참 탐나는 기능인건 확실합니다. C에서는 변수나, 함수의 출처를 찾기가 어렵습니다. 전역변수, 함수인 경우 특히 더합니다. 본인이 작성한 코드는 알 수 있겠지만,..
[네이버 지식백과]iterator 패턴 (쉽게 배우는 소프트웨어 공학, 2015. 11. 30., 한빛아카데미(주)) 설명하기 어려워서 퍼왔습니다. 아무튼 한번 구현해 보도록 하겠습니다. 먼저 중요한 헤더 파일입니다. 보시다 시피 8bit 자료형을 취급하는 iterator입니다. setup_iterator은 커스텀되어있는 자료형과 연결한는 함수입니다. 즉 사용자가 만든 자료형과 인터페이스와 연결하는 부분입니다. C에서는 인터페이스가 없기 때문에 이러한 방법으로 인터페이스 비슷한 것을 구현합니다. 다음 코드에서 인터페이스 비스므레한 것을 만들어 보도록 하겠습니다. 최대 지원되는 iterator은 10개 입니다. 즉 10개의 8bit 자료구조형과 연결될 수 있습니다. 이렇게 C에서는 갯수를 제한해야 합니다...
극단적으로 Java에서 객체지향, 패턴, Interface을 빼놓고는 다면 Java는 아무것도 아닙니다. Interface를 사용해야 언제든지 교체가능한 모듈형태의 프로그래밍을 할 수 있습니다. Interface의 필요성에 대해서는 다른 곳에도 많이 나와 있기때문에 따로 설명하지 않겠습니다. C언어로 Interface를 만들어 보겠습니다. 이번에 만들 Interface는 UART입니다. UART는 MCU와 Device와의 커뮤니케이션 도구로 많이 사용합니다. 예를 들면 GPS Module, RS232를 통한 PC와의 통신 등등에서 사용되므로 Interface를 설명하기에 적합합니다. typedef struct { InitFunction Init; OpenFunction Open; TxHandlerFunc..
[네이버 지식백과]singleton 패턴 (쉽게 배우는 소프트웨어 공학, 2015. 11. 30., 한빛아카데미(주)) 프로그램 전체적으로 한개의 자원을 사용하는 경우 적용할 수 있는 Singleton. 예를 들면 GPS, G sensor, 온도센서와 같은 모듈은 보통 한개의 제품에 한개씩 들어있습니다. 각각의 모듈을 초기화하고 사용하는 C Class를 만든다면 다음과 같이 Singleton을 활용할 수 있습니다. #define null (void *)0 typedef struct { InitFunction init; OpenFunction open; ConnetFunction connection; //... (필요시 추가) }Device; Device *getGpsInstance() { static D..