목록(Telechips) AI 시스템 반도체 SW 개발자 교육/SoC 시스템 반도체를 위한 임베디드 리눅스 (7)
printf("ho_tari\n");

2025.06.20 리눅스 디바이스 드라이버 ⇒ 임베디드에서 관심 영역 역할디바이스 드라이버는 하드웨어를 사용 가능하게 만들어 줄 뿐 하드웨어를 어떻게 사용 할지에 대한 결정은 응용 프로그램에게 넘겨야 한다.고려사항최대한 유연하고 많은 기능을 사용자에게 제공하려고 할 수록 디바이스 드라이버 제작자는 많은 부분을 구현 해야한다.동기식, 비동기식 모두 지원할 것인가?장치를 여러 번 열 것 인가?정책 독립성을 제공할 것인가?제공되는 디바이스 드라이버 유틸리티디바이스 제어와 구성을 도울 목적으로 간단한 유틸리티와 디바이스 드라이버를 같이 출시하는 경우가 있다.모놀리식 방식초기 리눅스 커널은 모놀로딕 방식으로 커널에 모든 디바이스 드라이버를 포함 시켜야 했다.이런 방식은 디바이스가 바뀔때마다 커널 컴파일을 다시..

2025.06.19 개발 환경 구축리눅스에서 사용하는 컴파일러는 GCC를 주로 사용하며 디버거로 는 GDB를 사용하고 있다. 타깃 보드가 ARM 계열 프로세서를 사용하고 있으면 ARM용 GCC 컴파일러를 설치하고, 타깃 보드가 x86 계열 프로세서를 사용하고 있으면 x86용 GCC 컴파일러를 설치하여 사용하면 된다. 브이엠웨어(VMWare), 버추얼 박스(VirtualBox), Xen 하이버 바이저 크로스 개발환경 구축개발 시스템 구축Download Linux ISO Image - 로그인 필요 없음.https://ubuntu.com/download/desktopWindow + VM + Linux 개발 시스템 구축VM - memory 4GB이상, HD 30GB 이상Download VMPlayer - 로그..

2025.06.18 01.thread_create.c#include #include #include #include #define _GNU_SOURCE /* See feature_test_macros(7) */#include #include void *thread_function(void *arg);int main() { int status; pthread_t tid; pthread_attr_t attr; void *thread_result; int i; pthread_attr_init(&attr); status = pthread_create(&tid, &attr, thread_function, "hello thread"); // status = pthread_create(&tid, NU..

2025.06.17 07.myexecl.c#include #include #include #include #include int main(void) { pid_t pid; int status; switch (pid=fork()) { case -1: perror("fork failed"); break; case 0: // child process printf("CHILD PROCESS : %d\n", getpid()); if(execl("./01.mytask", "01.mytask", "10", (char *) 0) == -1) perror("execl"); default: sleep(1); system("ps -lf"); pid = wait(&status); ..

2025.06.16 00.process.c#include #include #include #include int a=10, a2=20;int b, b2;int f1(int x){ return ++x;}int f2(int x){ return --x;}int main(){ int c=100, c2; char *d = "\e[31mThis is virtual memory layout of the process\e[00m"; // char *d; char *name; name = malloc(40); name = "cafe"; printf("addr(TEXT)=> \tmain:%p, f1:%p, f2:%p\n", main, f1, f2); printf("addr(CONST)=> \td:%p : %s\n",..

2025.06.13 00.signalprint.c#include #include #include const char *binary[16] = { [ 0] = "0000", [ 1] = "0001", [ 2] = "0010", [ 3] = "0011", [ 4] = "0100", [ 5] = "0101", [ 6] = "0110", [ 7] = "0111", [ 8] = "1000", [ 9] = "1001", [10] = "1010", [11] = "1011", [12] = "1100", [13] = "1101", [14] = "1110", [15] = "1111",};void print_byte(int byte){ // printf("%s%s", bit_rep[byte >> ..

2025.06.10 리눅스 운영U : Router가 Up 인 상태임을 나타냄G : 경로가 Gateway 임을 나타냄H : 목적지가 호스트 주소임을 나타냄 D : 경로가 리디렉션에 의해 생성되었음을 나타냄 M : 경로가 리디렉션에 의해 수정되었음을 나타냄 리눅스 운영체제 구성과 커널운영체제 (Operating System)windows(← DOS에서부터 시작) Microsoft u 초기에는 cooperative multitaskingUnix AT&T Bell Labs preemptive multitaskingLinux 저수준의 terminal emulator 개발을 위해서 시작 (Torvalds) Unix와 호환되는 kernel을 만드는 것 GNU/Linux 리눅스 커널하드웨어 ..