일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 피터슨 알고리즘
- 데커
- 임베디드
- up-casting
- 무래함의 비용
- 임베디드 시스템 프로그래밍
- setvbuf
- 외부인터럽트
- 임베디드시스템프로그래밍
- 리눅스 setvbuf
- c언어 setvbuf
- 데커 알고리듬
- 데커 알고리즘
- 코딩
- 임베디드 입문
- 리눅스 기초
- 임베디드 초급
- 대구소프트웨어고등학교
- 임베디드 개발자
- peterson 알고리즘
- 다운캐스팅
- AVR기초
- 업캐스팅
- 임계 영역
- Dekker
- 워치독 타이머
- 2019년 회고
- 아두이노
- AVR
- down-casting
- Today
- Total
목록분류 전체보기 (12)
인성 좋은 인성이

들어가기 2020년은 뭐라고 정의를 내려야 할 까 고민이 된다. 애초에 20년도가 어떻게 지나갔는지도 잘 모르겠다. 그만큼 상당히 많은 혼란을 겪은 해였고, 가장 많은 변화가 있었던 해였다. BIG KINDS "2020년" 키워드 연관어 분석자료 "2020년"이라는 키워드가 들어간 뉴스들의 연관어 분석결과를 살펴보자. [코로나19]라는 연관어가 눈에 익히 들어온다. 분명 19년도 11월에 "중국에서 시작된 사스 바이러스"라고만 들었을 때는 단지 내 귀를 스쳐 흘러가는 단어일 뿐이었다. 하지만 불과 1년만에 하나의 단어를 바라보는 시각이 변했다. 이 작은 바이러스가 세상을 움직였다. 어떤 나라는 전시상황을 선포하기도, 또 어떤나라는 신속한 방역대책 펼치기도 하며 바이러스에 대응했다. 하지만 이 바이러스는 ..
너무나도 빨리 흘러갔던 2019년 나는 많은 걸 배우고 또 배웠다. 올해는 바쁘다는 핑계로 회고를 하지 않으려고 했지만, 나중에 내가 이만큼 했다고 하며 돌아볼 수 있도록 회고를 작성한다. 2019년 소중한 사람을 너무 많이 만났고, 그들 덕분에 행복할 수 있었다. 그만큼 많이 힘들었다. 작년보다 멘탈이 강해졌지만, 아직도 나는 힘들었다. 하지만 이 모든 과정이 더 강한 나를 만들어줄 담금질 하는 과정이라 생각하며 버텼다. 결국 끝까지 달려왔다. 인제 와서 돌아보니 묘한 기분이 든다. 그래도 오늘만큼은 나에게 수고했다고 말해주고 싶다. 2020년은 더 성장한 내가 되길 기대해 본다. 1.기술적 성장 - 2019년 내가 학교에 다니며 얻었다고 할 수 있는 능력이 있다. 마이컴을 제어할 수 있게 되었다. 내..

ARM은 모든 것이 address로 접근하여서 값을 설정해 주어야 한다. 따라서 ARM을 다루기 위해서는 CPU 아키텍쳐와 address구성에 대해서 이해하여야 한다. Cortex-M3를 포함한 STM32의 구조 구조를 좀 자세하게 살펴보면 Bus matrix라는것이 구성원(?)들을 이어주는 모습이 보인다. Bus는 CPU에서 중요한 부분을 차지하며 크게 두가지로 나눠볼 수 있는데 data bus와 address bus가 있다. bus matrix가 다 묶여있다보니 bus를 통해서 데이타가 움직일 때 다른 데이타가 움직일 수 없다. 그래서 CPU는 일에 우선순위를 측정하여서 일을 진행한다. STM32 CPU에서 BUS가 한 클럭당 전달하는 데이터의 비트 수는 32bit이다. Cortex-M3는 연산을 위..

와치독 타이머는 프로세서가 안정적으로 동작하는가를 감시하는 친구이다. 와치독 타이머는 타이머가 일정 값에 도달했을 때 워치독 타이머가 리셋된다. 하지만 어떤 이유에서라도 워치독 타이머가 리셋되지 않는 경우 프로세서에 이상이 생겼다는 판단을 하고 시스템을 리셋시킨다. WDTCR 레지스터 WDCE - WDE가 0으로 세트 되어있을 때 1로 세트 되어야 한다. 아니면, 와치독 타이머가 작동하지 않을 것이다. 1로 세트 되면 하드웨어는 4클럭 사이클 이후에 클리어 될 것이다. safety level 1과 2에서 프리스케일러 비트를 바꾸는 경우 1로 세트 되어야 한다. WDE - 1이면 와치독 타이머가 작동하고 0으로 클리어되면 작동하지 않을 것이다. WDE는 WDCE비트가 1일 경우에만 클리어가 가능하다. WD..

본 글은 ATmega128을 기준으로 작성되었으며, 8bit 기준으로 설명되었음을 알립니다. ATmega128은 타이머가 4개(0~3)가 존재한다. 타이머는 인터럽트를 사용하고 PWM 파형을 만들고자 할 때 주로 사용된다. 이 중 타이머 0, 2는 8bit이고 1, 3은 16bit이다. 인터럽트는 카운트의 값이 오버플로우 되었을 때 발생하는 OVF, 카운트 값과 비교 레지스터 값이 일치할 때 발생하는 인터럽트 등이 존재한고, 입력 캡처 인터럽트도 존재한다. 사실 타이머를 사용하는 목적은 인터럽트 사용도 있지만, 내가 원하는 파형을 만들기 위해서(적어도 글쓴이는 그렇다) 많이 사용한다. 원하는 파형을 만들기 위해서는 ATmega128에서 제공하는 register를 적절하게 사용하면 된다. 그렇다면 ATme..

이 글의 내용은 ATmega328을 베이스로 합니다. 인터럽트란 무엇인가? 우선 인터럽트가 돌아가는 간단한 이해를 하고 있어야 인터럽트를 다룰 수 있다. 물론 인터럽트에 대한 이해가 없다고 인터럽트를 다루지 못한다는 것은 아니다. 하지만 인터럽트를 효율적으로 사용하기 위해서는 그 메커니즘을 이해할 필요가 있다. 인터럽트라는 개념은 기회가 된다면 자세하게 다루어 볼 생각이 있다. 다만 당장은 간단하게만 설명을 할 것이다. 인터럽트라는 것은 어떠한 특별한 이벤트가 발생했을때 발생하는 동작이라고 생각하면 된다. 즉 인터럽트는 평소에 동작하는 것이 아니라 일정한 조건이 충족될 때 동작하는 것이다. 그럼 언제 인터럽트를 활용해야 하는가? 사실 인터럽트는 사용하기 나름이다. 센서의 값을 받아올 때도 사용하고, 특정..

DBMS(database management system) : 데이터 베이스 관리 소프트웨어 DB 시스템의 발전 산업혁명 등으로 풍요로워진 인간은 기술의 진보를 이루면 이룰수록 데이터의 양도 늘어났다. 더 이상 인간이 관리할 수 없는 수준까지 와버린 데이터들을 처리하기 위해서 많은 이들이 고민을 했고 그렇게 고안된 것이 db이다. 그리고 그 db를 관리하는 소프트웨어도 등장하였는데 그것이 DBMS이다. DBMS를 사용하는 이유 사실 데이터를 관리하는 방법들은 여러가지가 있다. 그중에 DBMS가 있는 것이다. DBMS가 등장하기 전에는 대표적으로 파일 시스템으로 데이터를 관리하였는데 관리해 주어야 하는 것이 많았기에 개발하는데 효율이 낮았다. 그것을 보완하기 위해서 나온 것이 DBMS인 것이다. 하지만 이..

fputc(), putchar() 위 코드를 실행시키면, 실행결과는 2,3,4,5 newline 6,7,8,9,0 (으)로 나올 것이라 생각할 수도 있다. 하지만 실제로 실행을 시키면 2,4,3,5 newline 6,8,0,7,9 (으)로 나온다. 왜 일까? 이미 눈치를 챘을 수도 있지만 코드를 보면 출력하는 함수가 두 종류이다. putchar와 fputc를 사용한다. 그렇다면 이 친구들의 역할이 어떻기에 이런 결과가 나올까? putchar와 fputc는 표준 출력 함수이다. 이 둘의 차이점은 fputc는 파일로 출력한다는 것이고, putchar는 화면으로 출력한다. 자세히 살펴보면 putchar의 인자 값은 int c가 들어가고 fputc의 인자 값은 int ch, FILE *fp로 두 가지가 들어간다..

업 캐스팅(up-casting) - 업 캐스팅이란 파생 클래스 포인터가 기본 클래스 포인터에 치환되는 것이다. ex) 사람을 인간이라는 개념이 아닌 상위 개념이라고 할 수 있는 동물로 보는 것이다. int main() { B b; B *pDer = &b; A* pBase = pDer; // 업 캐스팅 } 기본클래스의기본 클래스의 주소를 가지고 있을 pDer을 선언하여 기본 클래스의 주소를 대입한다. A 타입의 포인터 pBase를 선언한 후 pDer을 대입(치환)한다. 따라서 pBase는 B의 상위 클래스인 A에 접근할 수 있다. 하위 클래스인 B의 포인터가 상위 클래스인 A의 포인터에 치환했다. 이를 아래 개념에서 위 개념을 치환한 것이니 업 캐스팅이라고 한다. pDer -> 모든 public 멤버에 접..
2018 회고. 너무 빨랐던 2018년 나를 되돌아본다. 글은 시간 순서대로 쓰려고한다. 재능중학교 졸업2월 9일 그동안에 중학교 생활을 마무리하는 졸업식이 진행되었다. 내가 사랑했던 사람들과 이제는 해어진다는 아쉬움과 슬픔 그리고 새로운 출발이라는 두근거림이 있었다. 선생님들 그리고 친구들과도 작별인사를 했다. 존경하는 선생님들께는 편지를 적어 들였고 나도 편지를 받았다. 이 날부터 나는 더 이상 중학생이 아니었다. 대구소프트웨어고등학교 입학3월 1일 대구소프트웨어고등학교에 합격하고 신입생으로서는 처음으로 학교를 들어갔다. 기숙사학교 이기에 1일에 입사했다. 가족들과 기숙사에 도착했을 때 실감이 나질 않았지만 해어져야 할 때가 되니 그제야 실감이 났다. 해어지기 직전에 부모님께 큰절을 올렸다. 그렇게 ..