Welcome to My World (www.dgmayor.com)

dgmayor 276

16. 전 회사 엘디 전자 업무 정리

0. 취급 물품 차량용 LCD 장치, IOT 디바이스(ex : 펠릿 난로), LCD 모니터 등에 탑재하는 pcb 프로그램 탑재기 및 검사기, 와전류 검사기 등이 있는 것으로 보이나.... 현재는 LCD 모니터 등에 탑재하는 PCB 검사기만 제작 및 납품 하는 것으로 보임 1. 상품 Setup 및 출장, A/S 베트남 행성전자, 청주 지트론, 김해 행성디지털, 김천 행성전자 등에서 만드는 여러 종류의 LCD 모니터에 들어가는 PCB에 컴퓨터 등과 연결을 시켜주는 PCB 라이터 및 검사기가 있음. 이 검사기의 시료 pcb가 교체가 된다면, 검사기의 JIG와 새로운 샘플 pcb, 이 PCB에 맞는 새로운 Firmware, 새로운 Data 등을 현장에 가서 Update 하는 것으로 보임. 경우에 따라서 data..

10. PCB와 FPCB의 차이

2018. 8. 6. 5:50 안녕하세요.탱~탱크입니다. 오늘은 어떤 하루를 보내시고 있으신가요? 무더운 8월입니다. 곧 있으면 8월도 끝나고 9월이 찾아오겠지요. 시간은 금방금방 갑니다. 이번 포스팅의 주제는 FPCB(연성인쇄회로기판) 뜻과 시장 구조, 관련주에 대해서 알아볼려고 합니다. 사실 IT 쪽에는 기술 발전이 빠르기 때문에 하나하나 공부하기에 벅찹니다. 그래도 기본 개념을 알고 있어야 이게 무엇인지는 대략 감을 잡을 수 있기 때문에 한번 용어 정리 해보고 가겠습니다. FPCB : 연성인쇄회로기판 PCB : 인쇄회로기판 딱 봐도 '연성'이라는 단어가 차이가 납니다. 그냥 인쇄회로기판은 전도선, 신호선을 사용해 전기적으로 전자부품을 연결하고 기판 자체가 딱딱합니다. 대부분의 전자기기 컴퓨터, TV..

22. 실질 퇴사 22.6.30, 22.9.30 법적퇴사

21년 10월 1일 입사 ~ 22년 6월 30일까지 근무... 대신 9월 30일까지 법적으로는 재택 근무를 하는 것으로 하여 경력 1년의 개발자로 취업을 할 수 있게끔 현 대표님이 만들어 주었다. (뭐... 사람 등신으로 만들어서 자진 퇴사 시키는 게 심적, 법적 부담감이 들었을 수도 있고... 좋은 뜻이었을 수도 있고.... 뭐... 솔직히 말하면 다른 거 들어 올 때는 좋게 생각했는데.... 근태 체크 들어 올 때는 이게 맞다는 생각이 들었다. 뭐 어떤 개발자 놈은 감사하며 다니라는데.... 나는 다른 업무도 아니고.... 최소한 개발자가 이런 걸로 평가를 받는 건 아니라는 생각이 들었다. 말로 해야지 이걸 문서로 주는 것은 아니라는 생각이 너무 들어서..... 뭐 그래서 혈압이 올라 개발자 방에서도..

21. 부트 스트랩 정리

이전 포스팅에서는 환경설정에 대해서 다루었다면 지금 포스팅부터는 OS를 직접 만드는 것에 초첨을 마추고 글을 작성하도록 하겠다. 가장 처음 컴퓨터가 부팅되고 난 뒤에 POST(Power On Self Test)과정을 거쳐 특정 OS 파일에서 첫 512바이트트만큼을 가져온다. 여기서 가장 먼저 실행되는 코드라고 하는데 이를 만들고 알아보도록 하자. 부트과정 처음 컴퓨터에 전원이 들어와서 부팅과정을 거치는데 이를 부트스트랩이라고 한다. 부트스트랩은 장화(boot)의 끈(strap)을 묶고 일어나려는 사람을 가르키기도 하며 그 과정은 아래와 같다. 이 포스팅에서 직접 수정하고 테스트 할 부분은 Step 3 이후에 로드된 MBR(Master Boot Record)이다. 3.20 전산대란이 일어났을 때나 특정 악..

20. 하드디스크 드라이버 쓰기

https://github.com/SIMHANGSUB/HoGoS/tree/master/20 20강 소스코드입니다. -------------------------------------------------------------------------------- 안녕하세요 오늘은 하드디스크에 쓰는 함수를 구현해봅시다. 논리는 하드디스크를 읽었을 때와 똑같습니다. 다른 점은 하드디스크에 내릴 명령이 읽기(0x20) 이 아니라 쓰기(0x30)인 점, 그리고 쓸 때 명령어 "rep outsw " 를 사용할 것이라는 점입니다. 바로 코드를 봅시다. 19강에 짰던 코드와 거의 차이가 없음을 알 수 있을 겁니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23..

19. 하드디스크 드라이버 읽기

https://github.com/SIMHANGSUB/HoGoS/tree/master/19 19강 소스코드입니다. -------------------------------------------------------------------------------- 안녕하세요 Qemu 환경으로도 옮겼겠다 이제 하드디스크 드라이버를 구현하는 일밖에 없습니다. 미리 말했듯이 처음 보면 굉장히 난해합니다. 따라서 드라이버 구현을 몇 단계로 나누어 포스팅할 생각입니다. 17강에서 언급했던 흐름을 그대로 코드 구현할 겁니다. 일일이 주석을 달았으니 시간을 가지고 음미하시기 바랍니다(?) 먼저 오래전에 구현했던 Interrupt.c 코드에서 90 ~ 100 줄에 해당하는 소스를 다음과 같이 수정합시다. 1 2 3 4 5 ..

18. 하드디스크 드라이버 - Q Menu

안녕하세요 저번 강의에서 예고했듯이 Qemu라는 가상환경을 설치해보겠습니다. https://www.qemu.org/download/#windows 공식 링크로 들어가 최신 버전을 다운받읍시다. 자신의 윈도우 운영체제가 32비트 / 64비트에 따라 설치합니다. 설치를 완료하면 qemu 폴더를 찾아가봅시다. 그리고 다음과 같이 커맨드창을 띄워 입력합시다( ​Qemu 폴더 안에서 실행해야 합니다 !! ) "qemu-img create hdd.img 1M" ​말 그대로 1MB짜리 hdd.img 파일을 생성하는 명령어입니다. 이렇게 간단한 명령어 한 줄로 하드디스크를 만들었습니다. 이젠 이 하드디스크를 우리의 가상컴퓨터에 마운트(끼우는) 작업을 해야겠죠? 이는 가상컴퓨터를 실행하는 동시에 마운트도 같이 할 겁니다..

17. 하드디스크 드라이버

오늘은 대망의 파일시스템 그 첫 번째 챕터입니다. 파일시스템을 위해서는 하드디스크를 읽고 쓸 줄 알아야겠죠? 우린 이미 첫 강의때 Real Mode 상에서 지원하는 인터럽트 13으로 플로피디스크를 읽어본 경험이 있습니다. 그런데 슬프게도... 우리는 Real Mode 16비트 환경에서 Protected Mode 32비트 환경으로 넘어왔습니다. 이 32비트 환경에서 더 이상 인터럽트 13 으로 디스크를 읽지 못합니다. 대신 I/O 레지스터 프로그래밍을 통해 하드디스크에 직접 명령을 내리는 수 밖에 없습니다. 이번 포스트에서는 어떤 i/o 레지스터에 명령을 내려야 하드디스크를 읽고 쓸 수 있는지 분석해볼겁니다. 그리고 다음 포스트부터 본격적으로 이를 구현해볼 겁니다. https://wiki.osdev.org..

16. 기초적인 쉘

https://github.com/SIMHANGSUB/HoGoS/tree/master/16 16강 소스코드입니다. -------------------------------------------------------------------------------- 오늘은 Shell 을 만들어봅시다! Shell을 만드는 궁극적인 목적은 사용자로부터 명령어를 입력받아 처리하기 위함입니다. 키보드 드라이버를 저번 강의 때 구현했기 때문에, Shell은 이를 이용하기만 하면 됩니다. 따라서 어떤 방식으로 구현하던지 상관이 없겠죠? 아래의 코드를 참고로 자신만의 Shell을 만들어봅시다. 코드를 수정하기에 앞서 다음과 같이 shell.h와 shell.c 를 추가합시다. ( 새로 만들었으니 당연히 makefile 에 추..

15. 인터럽트 - 키보드 드라이버 2

https://github.com/SIMHANGSUB/HoGoS/tree/master/14 14 ~ 15 강 소스코드입니다. -------------------------------------------------------------------------------- 자 저번 강의에 이어서 ScanCode를 아스키코드로 바꾸는 작업을 진행해봅시다. interrupt.h에 다음과 같은 함수를 하나 선언해줍시다. ( ScanCode가 담긴 char 형을 받아 아스키값을 리턴해줄겁니다. ) unsigned char transScan(unsigned char); 그리고 이 함수를 interrupt.c 에 다음과 같이 구현해봅시다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18..

14. 인터럽트 - 키보드 드라이버 1

https://github.com/SIMHANGSUB/HoGoS/tree/master/14 14 ~ 15 강 소스코드입니다. -------------------------------------------------------------------------------- 자! 오늘은 키보드 드라이버를 구현해봅시다! 저번 강의를 통해 우리는 키보드 인터럽트를 받을 수 있게 되었습니다. 그렇다면 이제 어떤 키를 눌렀는지를 알아봐야겠죠? interrupt.c 에 들어가서 버퍼용 전역변수를 하나 선언합시다. 여기에 어떤 문자를 입력했는지 저장할 겁니다. unsigned char keybuf; 그리고, init_intdesc() 함수 끝에 다음과 같은 어셈블리 코드를 추가합시다. 이는 키보드 입력을 받겠다는 일종의..

13. 인터럽트 - ISR 구현

https://github.com/SIMHANGSUB/HoGoS/tree/master/10 10 ~ 13 강 소스코드입니다. -------------------------------------------------------------------------------- 대망의 마지막 인터럽트 구현입니다. 1. PIC 셋팅 ( 하드웨어 셋팅 ) 2. IDT ( 전에 구현했던 GDT와 같은 종류 ) 3. ISR ( 실제 인터럽트 발생 시 실행되는 코드 ) ISR이라고 거창하게 적었지만 실상은 인터럽트 발생시 실행할 함수 구현하는 겁니다. 대표적으로 int_ignore() 함수를 작성해봅시다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25..