본문 바로가기
728x90
반응형

2023-1/IoT와 임베디드 소프트웨어6

Threads 스레드는 lightweight process라고도 부른다. 스레드는 전역변수나, 동적할당을 통한 값들을 서로 공유할 수 있고, 프로세스에 비해 오버헤드가 적다는 장점을 갖는다. int pthread_create(스레드id 저장할 변수포인터,null(특성),함수포인터,(void *)인자) 스레드를 생성. 메인 프로그램이 종료되면 스레드도 종료된다. 스레드가 종료되기까지 대기하기 위해서 pthread_join 함수를 쓸 수 있다. int pthread_join(pthread_t *th, void **thread_return); 인자로는 스레드id, 반환값을 저장할 변수 포인터를 넘겨주면 된다. 임계영역 여러 스레드가 동시에 접근할 수 없는 영역. 자원이 공유되는데, 여러 스레드가 읽고 쓰는 연산을 진행하면 .. 2023. 6. 13.
Device Driver 2 ## Memory Mapped I/O (MMIO) Memory Mapped I/O는 I/O 디바이스와 메모리가 같은 주소 공간을 공유하는 체계를 말합니다. 이 방식에서는 I/O 디바이스에 접근하는 것이 메모리에 접근하는 것과 동일한 방식으로 이루어집니다. 이는 명령어의 개수를 줄이며, 이로 인해 코드의 복잡성을 감소시키는 장점이 있습니다. 이 체계는 주로 RISC(Reduced Instruction Set Computer) 시스템에서 사용됩니다. ## Isolated I/O Isolated I/O는 메모리와 I/O 디바이스가 서로 분리된 주소 공간을 사용하는 체계를 말합니다. 이 체계에서는 메모리 접근 명령어와 I/O 접근 명령어가 분리되어 있습니다. 이 때문에 MMIO에 비해 더 많은 명령어가 필요하게.. 2023. 6. 13.
Device Driver Concept ## 디바이스와 디바이스 드라이버 **디바이스(Device)**는 하드웨어 입출력 리소스를 의미합니다. **디바이스 드라이버(Device Driver)**는 사용자 프로그램이 이러한 디바이스에 접근할 수 있는 인터페이스를 제공하는 프로그램으로, 커널의 일부로서 동작합니다. 디바이스는 커널에 의해 컨트롤 및 관리되므로, 디바이스 드라이버 역시 커널 영역에서만 사용될 수 있습니다. 사용자 영역의 어플리케이션에서 이 드라이버를 사용하려면, 시스템 콜이 필요합니다. 데이터 전달에는 `copy_from_user`, `copy_to_user` 등의 시스템 함수가 사용됩니다. ## 커널 모듈 리눅스는 원래 모노리식 커널이지만, 마이크로커널의 장점도 가지고 있습니다. 즉, 리눅스 커널 모듈을 사용하면, 새로운 장치를 .. 2023. 6. 13.
CrossDevEnv, Kernel, BootLoader 교차개발 환경 Cross Development Environment 호스트에서 타겟을 위한 소프트웨어 개발을 수행하는 것. Tool Chain 컴파일, 빌드 과정에 필요한 도구, 라이브러리의 모음이다. TFTP 단순한 파일 전송 프로토콜 최소한의 메모리와 자원을 사용한다. 오류 복구 기능이 없다 보안 기능이 없다 NFS(network file system) 원격 시스템의 파일을 로컬 시스템처럼 접근할 수 있게 해주는 네트워크 파일 공유 프로토콜 클라이언트-서버 모델을 사용 Bootp 네트워크 환경에서 원격으로 시스템을 부팅하기 위한 프로토콜 라즈베리파이 부팅 First stage bootloader (부트롬): Raspberry Pi에 전원이 공급되면, SoC(System on Chip)의 내장 부트롬(.. 2023. 4. 25.
Embedded Linux Operating System -자원관리 -어플리케이션과 유저에게 서비스 제공(편리한 컴퓨팅 환경) 자원은 물리적 자원, 가상 자원으로 나눌 수 있음 물리자원: Processor, Memory, Disk,.. 가상자원: tasks, segments/pages, files, drivers, ... 임베디드 시스템과 OS OS없이 개발 가능 (아두이노 등) 장점: 개발이 쉽고 간단하다. 작고 최적화된 코드 단점: 복잡한 시스템을 개발하기 힘들다. 메모리,파일 관리가 힘들다. 배우기 힘들다.(HW에 관한 이해가 필요) OS OS의 종류 Android, IOS, Windows, RTOS(Real-Time OS): VxWorks, pSOS ... , UNIX, LINUX 임베디드 시스템에서 OS는 시스템이 커지면.. 2023. 4. 25.
IoT and Embedded Software Computer? 폰 노이만 구조 - 처리장치(CPU)와 기억장치(memory)를 분리한 구조 CPU(Central Processing Unit- Processor)는 Control Unit(제어장치)와 ALU로 이루어짐 임베디드 시스템(Embedded system)이란? 컴퓨터 하드웨어와 소프트웨어가 조합되어 특정한 목적을 수행하는 시스템. programmable computer를 포함하지만, general-purpose computer는 아님.(특정 목적을 수행함) 미리 정해진 특정한 기능을 수행하는 프로그램이 내장되고 하드웨어와 소프트웨어의 변경이 어려운 경우가 많음. 그런데, 기술이 발달하면서 일부 임베디드 시스템들은 범용 컴퓨터와의 구분이 모호해짐(스마트폰..?) 임베디드 시스템이 사용되는 예는.. 2023. 3. 11.
728x90
반응형