■CallBack 함수■
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #include <stdio.h> void LibFunc(void (*pFunc(void)) { //... pFunc(); } void MyEvent() { Uart_Printf("call me.."); } void User_Main() { LibFunc(MyEvent); } | cs |
즉, Main에서는 LibFunc라는 CallBack함수만 사용하면 되는 것입니다.
리눅스 임베디드에서 CallBack은 중요한데 리눅스 커널을 디버깅 하는데 많은 시간이 필요하고 양도 방대합니다.
그래서 디버깅중에 모듈을 넣고 빼고 하는데에 CallBack을 사용합니다.
그래서 디바이스 드라이버를 형태(틀)만 짜서(CallBack함수를 이용해) User1든 User2든 자신만의 각각 필요한 기능을
구현해서 개발하기가 수월합니다.
CallBack함수에 대한 자세한 설명이 링크에 있어서 참고합니다.
http://lab.gamecodi.com/board/zboard.php?id=GAMECODILAB_QnA_etc&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=3059
'Embedded C언어' 카테고리의 다른 글
[임베디드 C언어_Day7]Volatile (0) | 2018.10.17 |
---|---|
[임베디드 C언어_Day6]LED + keypad(비트필드 구조체 사용)구현 (0) | 2018.10.15 |
[임베디드 C언어_Day4]LED + keypad 구현 (1) | 2018.10.15 |
[임베디드 C언어_Day3]교차 개발(cross development)(linux + Tera Term) (0) | 2018.10.11 |
[임베디드 C언어_Day2]Bit Setting 개념 (0) | 2018.10.11 |