본문 바로가기

반응형

전체 글

(197)
한화비전 직무 특강 한화비전 BSP 개발1. BSP(Board Support Package) : 임베디드 시스템에서 운영체제가 하드웨어를 인식하고 제어할 수 있도록 지원하는 소프트웨어 모음하드웨어 초기화, Device Driver 제공, Boot process 관리(보안, 시큐어 부팅 - 펌웨어와 SoC가 일치하지 않으면 부팅이 되지 않게, 로우 레벨 보안), 플랫폼 간 이동 편리(제대로 관리되어 있다면)임베디드 시스템에 대한 이해디바이스 드라이버 개발 경험Linux Kernel 포팅 경험프로그래밍 언어 숙련도기초 회론 이론 > 보드 점검 정도문제 해결 능력(여러 문제들이 한 꺼번에 터지면?)커뮤니케이션 및 협업 능력(타 팀과의 협업이 많음)프로젝트 관리 능력(많은 프로젝트를 쳐낼 수 있는 능력)끊임없는 학습 태도 RTC,..
VEDA 53일차 - 임베디드 파일시스템, 디바이스 드라이버 raspberrypi : 리눅스를 지원하는 보드 중에서도 데이터가 아주 많은 편이다.rpi 1 : S3C2410/BCM2835rpi 2 : BCM2836rpi 3 : BCM2837rpi 4 : BCM2711(architecture changed)rpi 5 : BCM2712 Porting : 보드 위에서 OS(리눅스 등)가 돌게 만드는 것(쉽지만은 않다!), 알아야할 것이 많은 부분bootloader : uboot(일반적), start.elf(라즈베리파이의 부트로더)kernel : zImage(압축된 이미지, kernel7.img(rpi3), kernel8.img(rpi4)), module(device drivers, ...ko.xz)rootfile system(/) : libararies(/lib, /u..
VEDA 50일차 - 리눅스 드라이버 fops > driver call back function 지금까지 한 것 : 모듈을 만들고, printk, gpio etc드라이버 제작을 위해서 알아야하는 기본적인 사항들 : 메모리 할당 : 힙(큰 용량 - 큰 변수들 할당, 메모리 할당은 여기를 이야기함)과 스택(작음 - 작은 변수들 할당, 아껴야 함) glibc(유저 영역에서 할당자, malloc), slab 할당자(kernel, data data > page, 2^N 단위로 페이지 할당), 프로세스 컨택스트에서 사용 페이지(page) : 메모리 매핑의 최소 단위, physical(frame) > virtual(page), usually 4KB PAGEOFFSET : 유저 영역과 커널 영역을 분리하는 경계 피지컬 영역에서..
VEDA 49일차 - 리눅스 드라이버 리눅스 커널모듈의 장점 : 컴퓨터를 리부트할 필요없이 바로 장치를 사용할 수 있다. 디바이스 종류 :char : io가 char(1 byte) 단위로 이루어짐, HIDblock : 대량의 바이트를 전송, storage(HDD, USBmem etc)network : 네트워크 장치, NIC...char 디바이스 특징 : 간헐적 데이터 발생, 바이트 데이터 발생캐릭터 디바이스 등록 : 디바이스를 등록하면 장치 배열에 저장, 이후 커널이 관리(struct cdev) Major 번호 : 장치의 종류를 구분하는 식별 번호, 드라이버를 찾아올 수 있게 하는 번호Minor 번호 : 동종 장치의 개별적 장치를 지정하는 고유 식별 번호, 문자 장치와 블록 장치는 독립적으로 사용cat /proc/devices/proc : ..
VEDA 48일차 - 리눅스 드라이버 기본 : 유저 모드와 커널 모드로 분리되어 있다. > 커널 모드는 하드웨어 자원에 대한 권한이 있다. 어플리케이션(유저 모드)은 시스템 자원이 필요할 때 커널에 요청한다. 라즈베리 파이 SoCripi 1 BCM835ripi 2 BCM836ripi 3 BCM837ripi 4 BCM711 ripi 5 BCM712 리눅스 커널의 특징 : 모놀리틱 커널1. micro architecture kernel : 구조적(well defined), 체계적, 관리에 용이2. monolitic architecture kernel : 비구조적, 성능을 위한 최적화로 코드가 이상해짐(보기 어려워짐, 시대적 한계), 모듈(module)의 등장(비구조적인 시스템을 보 완 in kernel), 모듈 형태로 드..
VEDA 45일 ~ 47일 : 리눅스 프로그래밍 심화 실습 구현해야할 과제는 다음과 같다. 리눅스 프로그래밍을 학습하면서 배웠던 내용들을 종합적으로 수행할 수 있도록 실습이 구성되었다. 프로젝트를 완료했다!! 좀 더 깔끔하게 코드를 작성하고 싶었는데 다음에는 규칙을 좀 더 잘 정해봐야 할 것 같다. 코드는 많이 작성해 봐야할 듯 https://github.com/youngSeok0413/TCP-IPHardWareController.git GitHub - youngSeok0413/TCP-IPHardWareController: 라즈베리파이4(서버)와 Ubuntu PC(클라이언트)를 이용한 리눅라즈베리파이4(서버)와 Ubuntu PC(클라이언트)를 이용한 리눅스 프로그래밍 실습. Contribute to youngSeok0413/TCP-IPHardWareCon..
VEDA 44일차 - 하드웨어 제어 + TCP/IP 서버 -클라이언트 프로그래밍 오늘도 이어서 하드웨어 - 내일부터 실습이 들어갈 예정!! 스위치 - open circuit1) 디커플링 커패시터 : 스위치의 진동이 입력으로 들어가는 것을 방지2) 풀업/풀다운 레지스터 : 디폴트 값을 정해주는 역할, 풀업 레지스터는 디폴트를 HIGH로, 풀다운 레지스터는 디폴트를 LOW로 히스테리시스 : 시스템의 입력과 출력 관계가 시스템의 과거 상태에 의존하는 현상 오늘부터 실습이 들어간 거라 내용이 별로 없다.
VEDA 43일차 - 하드웨어 제어 + TCP/IP 서버 -클라이언트 프로그래밍 42일차는 개인 일정으로 조퇴해서 기록한 내용이 없다. 실습 위주라서 이론적으로 기록할 내용은 별로 없다! 실습 목표 : TCP/IP 서버를 구축하여 웹 상에서 기기를 조작할 수 있도록 해보자!!아직까지는 user space 단1. LED2. CDS3. PWM : 밝기 조절(LED), 음계 조절(Buzzer)4. FND ( 7 SEG ) => diver chip 다음 주부터 커널 영역으로 넘어간다!! LED => Light Emitting Diode(빛을 내는 다이오드)다이오드는 P형 반도체와 N형 반도체가 접합되어 있는 소자다. P => N 방향으로 전압이 인가되어야 전류가 흐른다.LED 같은 소자는 일반적으로 active-low로 구성한다.(gpio의 전력을 사용하는 것보다 전원의 전력을 끌어쓰는 것..

반응형