분류 전체보기
-
C언어의 비트 필드공부/Embedded Recipe 2024. 12. 12. 23:52
비트 필드구조체 비트 필드를 사용하면 멤버를 비트 단위로 저장할 수 있다.CPU나 칩의 플래그, 그 외 Low Level 프로그래밍에서 자주 사용한다. 아래와 같은 코드를 실행 해보자.#include struct Flags { unsigned int a : 1; // a는 1비트 크기 unsigned int b : 3; // b는 3비트 크기 unsigned int c : 7;};int main(){ struct Flags f1; f1.a = 2; // 0000 0010 f1.b = 31; // 0001 1111 f1.c = 4; // 0000 0010 printf("%u\n", f1.a); //0 printf..
-
Clock과 잡다한 것공부/Embedded Recipe 2024. 12. 12. 00:14
디지털 회로의 심장박동 Clock클럭? clock? cpu clock?임베디드 시스템이든 컴퓨터든 클럭이란 것이 존재한다. 즉, 디지털 회로에서의 주기적인 펄스로 모든 것이 이 Clock에 동기화하면서 작동한다.= CPU 및 주변 장치들은 Clock이라는 박자에 맞추어 동작 * 클럭 발생장치를 Oscillator(발진기)라고 하고, MCU 내부에 존재하지만 필요시에는 외부에 별도로 달아주기도 한다.* 기존 클럭보다 더 낮은 클럭이 필요한 경우 분주기(Prescaler)를 사용하기도 한다. Rising Edge & Falling EdgeRising Edge(상승 에지): 0에서 1로 변환하는 순간Falling Edge(하강 에지): 1에서 0으로 변환하는 순간두 개의 상(Phase)를 가진 아래와 같은 ..
-
AMBA Bus Protocol공부/Embedded 2024. 12. 8. 22:34
프로세서, 주변 장치, 메모리 등은 연결되어야 하고, 이 연결 규약 중 하나가 AMBA Protocol이다. ARBA Protocol?- ARM사의 Advanced Microcontroller Bus Architecture Protocol이다.(= 그냥 ARM사의 구조.)- Soc(System on chip)에서 고성능 16/32bit MCU 프로세서/주변장치 설계 표준- AMBA, 2, 3, 4 등 다양한 종류가 있음 AMBA BusAdvanced System Bus(ASB): APB에 비하여 전력과 주파수가 높고, 고속, 양방향 구조Advanced Peripheral Bus(APB): 낮은 주파수, 저전력, 저속Advanced High-performance Bus(AHB): ASB의 업그레이드 버전,..
-
[백준] 1854 - K번째 최단경로 찾기알고리즘/백준 2024. 12. 7. 19:55
문제https://www.acmicpc.net/problem/1854 풀이방법만 알면 쉬운 문제, k 번째의 최단 거리를 구하면 된다.기본 다익스트라를 조금 변형하면 된다.우선순위 큐에 거리를 push하면서 진행하면 된다. K 코드더보기#include #include #include #include #include #include #include #include #include #include using namespace std;int N, M, K;struct Node { int n; long long c; bool operator o.c; }};vector graph[1001];priority_queue pq;priority_queue ret[1001];int main() { ios::sync_wi..
-
[Renode] .repl(Platform description format)공부/Embedded 2024. 12. 1. 23:16
.repl?repl(Renode Platform)은 Platform description format 이다.주변 장치를 쉽게 구성하여 완전한 플랫폼 정의를 만들 수 있게 yaml과 파일이 필요해서 만들어졌다. 기본적인 작성 규칙- 의미 있는 들여쓰기가 사용되고 (), {}, 를 사용함(Python과 비슷)- 들여쓰기는 공백만 허용하고, 공백 수는 반드시 4의 배수- 중괄호 내부의 들여쓰기는 의미가 없음- 의미 있는 들여쓰기가 사용되는 경우, 이를 indent mode라고 부름- 비들여쓰기에서 구분하려면 세미콜론으로 구분함- 주석은 /* */ 를 사용 ### Ex1line1line2 line3 line4 line5 line6 ### Ex2line1line2 { line3;..
-
-
[백준] 11437 - LCA알고리즘/백준 2024. 11. 27. 23:06
문제https://www.acmicpc.net/problem/11437 설명문제 이름부터 나 LCA 문제입니다. 라고 하고 있는 문제시간 제한도 3초라 O(N)에 대해 돌면서 조상을 구해도 문제 없다.구현자체는 트리에서 level을 구하고 서로 만날 때 까지 올라가면 된다. parse table에 부모를 저장하면서 O(logN)으로 돌 수 있는데, 이 부분은 나중에 다시... 코드#include #include #include #include #include #include #include using namespace std;int N, M;vector graph[50001];int level[50001];int parent[50001];queue q;void lca(int a, int b) { ..
-