인터럽트를 사용하지 않으면 반복문을 통해 항상 체크를 해야할 것이다. 이를 Pollng 방식이라하며 I/O의 요청을 주기적으로 탐색하는 SW 적인 방법이다. 인터럽트를 알기 전까지는 그렇게 해왔지만 이는 메모리 낭비이며 다른 일을 수행하지 못하도록 하는 원인이다.이번에는 인터럽트를 사용하기 위해서 어떤 레지스터를 다뤄야할지 정리해보려고 한다. PCR 레지스터우선 PCR의 ISF, IRQC 비트를 설정해야한다.ISFISF는 interrupt status flag 비트로 인터럽트가 감지되면 1로 세팅된다.인터럽트가 끝나도 1로 남아있기에 사용자가 직접 clear 해야한다.IRQC인터럽트 어떻게 트리거될지 선택하는 비트다. 10001001101010111100logic 0rising-edgefalling-ed..
목표이번 시간에 진행한 실습은 UART 통신이다.키보드로 입력한 값을 터미널에 띄우고 값에 해당하는 색을 LED로 표시하려고 한다.main 함수가 있는 파일에서 아래와 같은 파일을 include 할 것이다.#include "device_registers.h" #include "clocks_and_modes.h"#include "LPUART.h"LPUART.c 파일LPUART.h 헤더파일에는 함수가 선언되어있고 함수들은 LPUART.c에 정의되어있고UART를 초기화하고 터미널로 문자를 출력하는 함수가 있다.LPUART1_initclock 설정, BAUD rate 설정, CTRL 설정 등 UART를 사용하기 위한 초기 설정을 위한 함수LPUART1_transmit_charchar 자료형을 ..
이전 글에서 그래프에서 cycle이 만들어지지 않으며 모든 정점을 연결하는 MST를 kruskal 알고리즘으로 만들어보았다. 이번에는 그래프에서 시작 정점에서 특정 정점까지 최단거리로 연결하는 길을 찾는 방법을 알아볼 것이며 dijkstra 알고리즘을 이용할 것이다.최단경로 찾기 알고리즘Dijkstra의 최단 경로 알고리즘의 단계는 다음과 같다.집합에서 가장 짧은 경로의 정점 u를 집합에 추가집합에 없는 다른 정점까지의 거리 업데이트u를 거쳐 가는 경로가 더 짧으면 해당 값으로 업데이트이게 가능한 이유는 집합에서 가장 가까운 정점 u를 선택하면, u로 가는 더 가까운 길은 없기 때문이다.C언어 구현 방법그래프 구조체에는 vertex의 수 n과, 정점간 간선의 weight(거리)를 의미하는 2차원 배열 w..
컴퓨터구조 수업에서 RISC-V 기반으로 설명되어 있기에 리스크파이브 기반으로 파이프라이닝에서 발생하는 해저드에 대해 설명해볼 것이다. 우선 해저드 전까지 5-stage pipelining을 알아봤을 것이다. 이는 IF ID EX MEM WB 로 구성되어 있으며 각 단계 사이에는 레지스터가 존재한다. Pipeline Hazards해저드는 structure hazard, data hazard, control hazard 세 가지 종류가 있다. 자세한 것은 아래에서 설명할테지만 우선 structure hazard는 하드웨어의 lag 렉으로 발생한다. 하드웨어 자원이 연산 중 충돌하여 발생한다.data hazard는 data dependency에 의해 발생한다. 명령어가 특정 레지스터를 사용하여 수행할텐데, ..
그래프의 path그래프에는 다양한 path가 있다. 기본적인 path는 vertex에서 서로 다른 vertex로 가는 간선이다. Simple path는 시작과 끝이 같지 않은 모든 vertex와 edge가 한 번씩만 나타나는 path이다. Cycle은 시작 vertex와 끝 vertex가 동일한 simple path를 의미한다.spanning treespanning tree는 ‘신장 트리’라고도 하며 cycle 없이그래프 내의 모든 정점을 포함하는 트리를 의미한다. 때문에 정점이 n개라면 spanning tree는 n-1개의 edge를 가진다.MST vertex를 가장 적은 수의 edge로 연결한 신장 트리를 의미한다.구현방법구현 방법: Kruskal’s MST algorithmvertex의 개수 n가장..
이전 글에서는 matrix 와 연결리스트로 그래프를 구현하는 방법에 대해 알아봤다. C언어 행렬과 연결리스트로 그래프 구현하기matrix로 그래프 구현하기행 정점에서 열 정점(vertext)으로 가는 길(edge)이 있다면 1로, 없다면 0으로 구현하려고 한다.무방향 그래프라면 행렬이 대칭으로 나타날 것이다.그래프는 구조체로 선언하studentstory.tistory.com 이번에는 그래프에서 탐색을 어떻게 C언어로 구현하는지 써보려고 한다.이전 글에서도 말했지만 DFS, BFS는 search이지만 실제로는 travarsal, 즉 순회를 설명할 것이다..깊이 우선 탐색 Depth-firstmatrix로 구현된 그래프에서 깊이 우선으로 탐색하는 방법단순히 그래프를 구현하는 방법은 이전 글에서 작성하였기에 ..
이진탐색트리이진탐색트리 binary search tree 를 구현하기 위한 구조체는 다음과 같다.두 자식노드를 가리킬 수 있도록 left와 right가 있다.typedef struct TreeNode { int key; struct TreeNode *left, *right;} TreeNode;필요한 함수searchnew_nodeinsert_nodemin_value_nodedelete_nodeinorder 탐색함수 설명1) search특정 key 값을 가진 노드를 찾기위한 함수다.TreeNode * search(TreeNode * node, int key){ if (node == NULL) return NULL; if (key == node->key) return node; else if (key key)..
matrix로 그래프 구현하기행 정점에서 열 정점(vertext)으로 가는 길(edge)이 있다면 1로, 없다면 0으로 구현하려고 한다.무방향 그래프라면 행렬이 대칭으로 나타날 것이다.그래프는 구조체로 선언하고 내부에 정점의 개수와 2차원 배열을 멤버 변수로 선언할 것이다.typedef struct GraphType { int n; // 정점의 개수 int adj_mat[MAX_VERTICES][MAX_VERTICES];} GraphType;필요한 함수initinsert_vertexinsert_edgeprint_adj_mat함수 설명1) init// 그래프 초기화 void init(GraphType* g){ int r, c; g->n = 0; for (r = 0; radj_mat[r][c] = 0;}이중..
- Total
- Today
- Yesterday
- 10만포인트
- 알뜰 요금제
- 계산방법
- 리브엠
- 시계 줄
- 방어동작
- 메쉬 밴드
- a모바일
- Liiv M
- 파스타
- 방향장
- 맛집
- 카카오페이
- 할인
- 카시오
- 타란튤라
- f-91w
- f-94w
- 배송기간
- 알리익스프레스
- 티스토리챌린지
- 교체
- 리브모바일
- 오블완
- 알뜰폰요금제
- mealy
- 경북대
- 네이버페이
- 문서 스캔
- 북문
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |