임베디드 개발(before) 36

[교육 중도 취업] 임베디드 개발자 되다.

약 한 달간 많은 일이 있었다. 먼저 코로나 2.5단계 격상으로 인해 취업특강 이후 학원이 2주간 쉬게 되었다. 그때 동안 취업특강 시간에 만들었던 이력서를 완성하고, 몇몇 기업에 지원하였다. 그중 두 회사에서 면접 제안이 들어왔는데, A회사는 집 근처에 있는 회사로 반도체 설비와 AGV, 임베디드 솔루션을 하는 중소기업이었고, B회사는 규모가 꽤 있는 국내 보일러 순위권 중견 기업이었다. 결과적으로 B회사는 최종면접에서 탈락하였고, A회사는 합격하여 저번 주부터 출근을 하고 있다. 주로 하는 업무는 AVR과 ESP를 활용한 프로그래밍이다. 대학시절 했던 것들의 연장선 같은 느낌이었다. 개인적으로 규모가 더 큰 B회사에 더 가고 싶었지만, 어쨌든 원하는 직무로 취업을 하게 되었다. 특히나 요즘 시기에 취..

[33일차] 취업 특강 3

오늘부터 3일간 취업특강을 나간다.오늘은 워드로 나의 포트폴리오 이력서를 작성하는 시간이었다.확실히 깔끔한 양식에 따라 내 이력들을 정리해보니 전보다 훨씬 보기 좋은 이력서가 만들어졌다.대학생활동안 열심히 한 것들을 정리해보니, 그래도 나름 열심히 산 것 같다.물론 취업시장에서 평가받는 나의 모습은 다를 수 있지만, 열심히 정리해서 다시 도전해보자.

[32일차] ARM 프로세서 이해 및 활용 (switch 실습)

오늘은 스위치의 입력에 따라 값을 출력하는 실습을 진행했다. 먼저 스위치를 사용하기 위해서는 보드의 스위치가 연결되어있는 레지스터의 설정을 초기화 해야한다. 초기화는 UserManual을 참고하자. 1. 회로도 보기. 먼저, 회로도를 보자. 왼쪽부터 스위치 SW4~13, SW14, SW15 이렇게 있는데 편의상 왼쪽부터 1번 스위치라 한다. 보면 아무런 신호를 주지 않을 때, 값이 1를 유지하게 되는 풀업 회로도인 것을 알 수 있다. 즉, 스위치가 열려있을 때는 Vdd에서 나오는 3.3v가 저항을 거쳐 GPF2~6, GPF0~1 로 가기 때문에 High를 유지한다. 스위치를 누르게 되면 Vdd에서 저항을 거쳐 그라운드로 떨어지기 때문에 해당 스위치에 연결된 GPF의 값이 '0'으로 LOW 상태가 된다. ..

[31일차] ARM 프로세서 이해 및 활용 (부트코드 작성, 소프트웨어 최적화, LED 실습)

1. 임베디드 개발자가 처음 보드를 만질 때 알아야 할 것. 1) 메모리 맵. 2) 회로도 2. 다룰 줄 알아야 하는 장비 1) 테스터기 (삑삑이. 쇼트 난 곳 찾을 때 많이 써봤다.) 2) 오실로 스코프 (PWM 값 찍어 파형 볼 때 사용해봤다.) 1. 부트 코드 작성 1) 프로세서의 Reset과 Start-up 코드. ▷ Start-up코드(=Init.o, crt0.o)를 이해하면 좋음 점. : 하드웨어 세팅, 실행환경, 아키텍처에 대한 이해, 드라이버 작성 등을 할 때 유용하다. ▷ 하드웨어 초기화 작업을 한다. : RAM, Clock, Stack 주소 설정하는 것과 같은 것. - 시스템의 클럭 - 메모리 컨트롤러 - 입출력 포트의 구성 - MMU 등 - 인터럽트와 스택 초기화 ▷ 리셋 핸들러의 마..

[30일차] ARM 프로세서 이해 및 활용(AMBA BUS, Clock, Power, Exception Handling)

○ ARM core 구조에 관한 대부분의 설명과 사진은 s3c2450 user manual에 있다. ◎ 블록 다이어그램 다시 보기 더보기 ● AMBA 버스 ▷ AMBA(Advanced Microcontroller Bus Architecture) - ARM에서 개발하여 오픈 한 표준 시스템 버스 설계 구격 - SoC를 구성하는 기능 블록들 간의 연결 및 관리 방법을 제공 ▷ 표준 AMBA 버스의 장점 - SoC 설계자 간의 의사소통 용이 :: 설계자 간의 idea공유로 SoC 설계 시간 단축 - IP(Intellenctual Property)의 재사용이 용이 :: 외부의 표준 IP 도입으로 SoC 설계 시간 단축 ▷ AHB (Advanced High-performance Bus) - High perform..

[29일차] ARM 프로세서 이해 및 활용 (Cache, MMU)

● ARM 프로세서의 구조 더보기 Manual에 나와있는 블록도 ● Cached ARM 프로세서의 제어 ▷ CP15 인터페이스를 통해서 제어 - Cache, MPU,or MMU, endian 제어등 ▷ Coprocessor Register Transfer 명령 - MRC : Move to Register from Coprocesser :: 내용을 ARM 레지스터로 전송 - MCR : Move to Coprocesser from Register :: ARM 레지스터 내용을 Coprocessor 레지스터로 전송 ▷ 참고 자료 : https://blog.naver.com/kazama10/50179092022 [ARM Assembly] MRC, MCR 1. MRC 명령어 - coprocessor 내부의 레지스터..

[28일차] ARM 프로세서 이해 및 활용(ARM 프로세서의 명령어)

◎ 32비트 ARM 명령어 ▷ 모든 ARM 명령은 32비트로 구성되어 있다. - Load/Store와 같은 메모리 참조 명령이나 Branch 명령에서는 모두 상대주소(Indirect Address)방식을 사용한다. - Immediate 상수는 32비트 명령어 내에 표시된다. (32비트 내에 상수 + 기타 상태 명령 등) ▷ 모든 ARM 명령어는 조건부 실행이 가능하다. ▷ Load/Store Architecture를 사용한다. ◎ 16비트 Thumb 명령어 (16비트 데이터라인이 추세이던 시절 32비트 ARM이 호환하기 위해 만든 명령어) ▷ 32비트의 ARM 명령을 16비트로 재구성한 명령 ▷ 조건부 실행 불가능, 상수값의 표현 범위가 적다. ◎ Java 명령 - 유닉스 위에 윈도우 위에 자바VM 을 ..

[27일차] ARM 프로세서 이해 및 활용 (Program Status Register (PSR), Exception)

개념을 이해하기 위해 찾아보다가 정리가 굉장히 잘 되있는 사이트를 발견했다. 찬찬히 읽어보며 이해해봐야지 JK전자와 함께하는 ARM 완전정복 ● Program Status Register (PSR) ▷ ARM의 PSR - 1개의 CPSR(Current Program Status Register) - 5개의 SPSR(Saved Program Status Register) ● PSR 레지스터의 정보 ▷ Condition code flag - ALU의 연산 결과 정보를 가지는 flag 정보를 가지고 있다. -> ALU를 통한 명령의 실행 결과를 나타내는 부분이다. 1) N 비트(Negative flag) - ALU 연산 결과가 마이너스가 발생한 경우(연산결과 맨 꼭대기 비트가 1이 될 경우) set 2) Z ..

[26일차] ARM 프로세서 이해 및 활용 (임베디드 시스템의 구조, ARM Architecture 전반적인 구조)

1. 임베디드 시스템의 구조 프로세서의 구조 1) 레지스터(Register) : ○ 프로세서 내부에서 데이터를 일시적으로 보관하는 기억장치. - Flip-flop와 Latch로 구성되어 있다. ○ 범용 레지스터. (Ground Port Register) - 프로그램 또는 데이터 처리에 필요한 작업을 수행하기 위해 사용. ○ 제어용 레지스터. (control) - 프로그램이나 프로세서를 제어. 프로그램 카운터(PC) 등 ○ 상태 레지스터. (Program Status Register) - 프로세서의 상태를 나타낸다. 2) 산술 논리 연산장치(ALU) - 산술 연산 수행(덧셈 뺄셈 등) - 논리 연산 수행(AND, OR 등) - 상태 레지스터 또는 Flag 레지스터에 연산 결과 기록 - carry 발생, o..