일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 26 | 27 | 28 |
29 | 30 | 31 |
- 자료해석
- 브루트포스
- 공기업공부
- 다이나믹프로그래밍
- 매일매일NCS
- 파이썬
- 토익문법정리
- 토익 영단어
- TOEIC문법
- 수리능력
- 주어
- TOEIC
- 알고리즘
- 문제해결능력
- 토익단어
- dfs
- 영어문장
- NCS수리자료해석
- 토익시험준비
- BOJ
- 토익문법노트
- sqld
- BFS
- 데이터베이스
- 너비우선탐색
- 자바스크립트
- 영단어
- TOEIC Vocabulary
- 영단어암기
- 영문법
- Today
- Total
목록임베디드 (7)
하나씩 알아가기
NUCLEO 보드를 이용하여 LED를 깜빡이는 기능을 만들어 보겠습니다. 지난번에 Keil 을 사용했는데 지금부터는 STM32CubeIDE라는 툴을 사용하겠습니다. [Board Selector] 에서 Nucleo64 > STM32F1 > NUCLEO-F103RB 를 선택하여 Next 버튼 클릭하여 프로젝트를 생성해줍니다. Pinout & Configuration의 좌측에 System Core > RCC를 선택합니다. RCC는 Clock을 컨트롤하는 부분입니다. HSE와 LSE를 모두 Disable 로 설정해 줍시다. RCC를 설정하였으면 GPIO를 선택합니다. GPIO는 General Purpose Input Output의 약자로 회로의 제어를 위한 PIN으로 사용자가 직접 회로를 구성하는 부분입니다. ..
하드웨어나 전기 전자기기들이 제게는 너무 생소합니다. 하나씩 정리해보겠습니다. 오실로스코프(oscilloscope) : 파동과 같은 주기적인 변화(oscilation)를시각적으로 보여주는 장비로, 특히 전압의 변화를 신호로써 시각적으로 표시해주는 장치를 말합니다. 시장 점유율 1위는 '텍트로닉스'사이지만 제가 사용하는 오실로스코프는 'Siglent'라는 제조사에서 만들어진 제품입니다. 외관은 이렇습니다. 채널 2에 프로브를 연결했습니다. 오른쪽 집게들이 제게는 너무 생소합니다. 하나씩 정리해보겠습니다. 오실로스코프(oscilloscope) : 파동과 같은 주기적인 변화(oscilation)를시각적으로 보여주는 장비로, 특히 전압의 변화를 신호로써 시각적으로 표시해주는 장치를 말합니다. 제가 사용하는 오실..
이전 게시물에서 소개했던 STM32F103RC 칩을 대상으로 프로젝트를 생성하고 main.c 파일을 만들어보겠습니다. arm KEIL uVision5를 실행하고 Project 메뉴 -> Project -> New uVision Project 를 클릭하여 디렉토리를 지정하고 프로젝트를 생성합니다. 그러면 Target으로 할 Device를 선택하라고 이러한 창이 나옵니다. 해당 칩을 선택해 줍니다. Device를 선택하고 OK를 누르면 런타임 환경을 선택하는 창이 뜹니다. CMSIS CMSIS -> Core 와 Device -> Startup을 선택합니다. CMSIS는 the Cortex Microcontroller Software Interface Standard의 약자입니다. CMSIS-Core는 Cor..
GCC(GNU Compiler Collection)는 C 컴파일러입니다. C언어를 컴퓨터가 읽을 수 있도록 번역해야 하는데 리눅스에서는 Visual Studio C++과 같이 윈도우에서 쓰이는 프로그램이 사용 불가합니다. 그래서 리눅스용의 대표 C컴파일러가 GCC인 것입니다. C 파일을 컴파일 할 경우의 단계는 아래와 같습니다. 전처리 단계 : c 파일을 gcc 컴파일러로 컴파일 할 경우 전처리 단계가 진행되는데 결과로 i 파일을 만들어냅니다. 이 단계에서는 헤더파일을 포함하고 매크로 확장을 합니다. #include 와 같은 헤더파일 처리 #define HUNDRED = 100 과 같은 매크로 처리 gcc는 cpp라는 전처리기를 사용하는데 gcc -E hello.c -o hello.i 를 입력하면 전처리..
JTAG(Joint Test Action Group) : 디지털 회로에서 특정 노드의 디지털 입출력을 위해 직렬 통신 방식으로 출력 데이터를 전송하거나 입력 데이터를 수신하는 방식을 말합니다. 임베디드 시스템 개발 시에 사용하는 디버깅 장비가 JTAG의 대표적인 활용 예입니다. 임베디드 시스템을 개발하기 위해 통합한 회로로 사용되며, CPU의 기계어 코드를 실행하지 않고 MCU 내부의 플래시 메모리나 임베디드 장치에서 CPU의 외부 플래시 메모리에 코드를 쓰거나 읽을 수 있습니다. JTAG는 boundary-scan이라는 단어로 대체되기도 합니다. 같은 말입니다. JTAG의 구성 JTAG 인터페이스는 다음 다섯가지 핀으로 칩 안에 구성됩니다. TDI(Test Data In) : Test하기 위한 데이터 ..
MCU (MicroController Unit) : 마이크로컨트롤러 또는 마이크로 컨트롤러 유닛은 집적 회로 안에 프로세서와 메모리, 입출력 버스 등의 최소한의 컴퓨팅 요소를 내장한 초소형 컨트롤러. 보통 임베디드 애플리케이션용으로 설계된 연산 장치를 뜻한다. 비교적 단순하고 스마트폰 AP보다도 작은 컴퓨팅 장치라고 생각하면 편한데, 모든 전자기기에 하나씩은 거의 필수적으로 들어가니 칩셋 개수로는 PC의 100배는 족히 넘는 시장이다. MCU는 단일 또는 다중 CPU와 프로그래밍 가능한 타이머, PWM 모듈, 많은 수의 I/O, 각종 통신 장치들(SPI, UART, CAN, LIN, I2C)과 프로그램과 데이터를 저장하기 위한 메모리(SRAM, PROM, EPROM, EEPROM, 플래시 메모리)를 가지..
그동안 웹 프론트엔드를 지망했지만 전혀 다른 쪽의 일을 하게 되었다. 돈을 벌어야 하니 어쩔 수 없었다. 임베디드 프로그래밍은 하드웨어에 관한 지식을 많이 가지고 있어야 한다... 그래서 사실 많이 막막하다. 알아야 하는 지식은 다음과 같다. C언어(메모리 참조 부분), 컴퓨터 아키텍처(ARM 제품이 많이 쓰이므로 RISC), 전자회로(아날로그 회로), 디지털 논리회로, 리눅스, 통신 프로토콜, 마이컴 프로그램(펌웨어) 등등... 많다 그래도 당분간은 회사 일이 바쁠 것 같지는 않지만 웹 프로그래밍만 해왔던 나는 주말도 헌납하여 공부해도 버거운 양이다. 일단 박사님이 주신 평가 보드는 STM32F103RC 인데 손 마디를 제외한 손바닥 만한 크기이고 JTAG라는 연결잭을 통하여 PC로 부터 보드에 전송한..