전체 글
-
[Gaisler IP] GRETH공부/Embedded 2025. 2. 16. 18:38
가이슬러 IPhttps://www.gaisler.com/products/ethernet Ethernet 10/100 | GaislerReceive and transmit data is autonomously transferred between the Ethernet MAC and the AMBA AHB bus using DMA transfers. Through the use of receive and transmit descriptors, multiple ethernet packets can be received and transmitted without CPU involvement.www.gaisler.com GRETH - Ethernet Media Access Controller (MAC) with ..
-
[C 함수 파싱] clang library공부/Python 2025. 2. 10. 00:38
코드를 바이너리 코드로 변환할 때 사용하는 llvm기반으로 C함수 파싱 LLVM--win64.exe 다운로드https://github.com/llvm/llvm-project/releases Releases · llvm/llvm-projectThe LLVM Project is a collection of modular and reusable compiler and toolchain technologies. - llvm/llvm-projectgithub.com lib clang docshttps://libclang.readthedocs.io/en/latest/_modules/clang/cindex.html example codeimport clang.cindeximport reimport os# Window..
-
[백준] 13310번 - 먼 별알고리즘/백준 2025. 2. 9. 04:16
문제https://www.acmicpc.net/problem/13310 풀이캘리퍼스 + 삼분 탐색각 시간마다 찍힌 별들 중 최대 거리에 대해 최소값을 찾는 문제f(x)에 대한 삼분 탐색이지만 f(x)가 캘리퍼스 구현 ㅇㅇ..., distance 반환값을 int로 해놓고 발견못해서 고통받았다. + 계속 틀리길래 혹시해서 탐색 구현을 아래처럼 변경했더니 pass됨, 왜 그런지는 좀 생각해봐야 할듯// 틀림if (sim(lm) sim(rm)) { left = lm;}else { right = rm;} 코드#include #include #include #include #include #include #include using namespace std;struct Input { long long x, y, ..
-
[Zephyr OS] LLEXT공부/Embedded 2025. 2. 2. 23:18
https://docs.zephyrproject.org/latest/services/llext/index.html Linkable Loadable Extensions (LLEXT) — Zephyr Project DocumentationThe LLEXT subsystem provides a toolbox for extending the functionality of an application at runtime with linkable loadable code. Extensions are precompiled executables in ELF format that can be verified, loaded, and linked with the main Zephyr binary. Extedocs.zephyr..
-
삼분 탐색(Ternary Search)알고리즘/Algorithm Theory 2025. 1. 30. 19:08
삼분 탐색어떤 unimodal한 그래프에서, 최대/최소 값을 O(logN)에 찾는 알고리즘 unimodal은 단조 증가와 단조 감소로 이분되는 그래프로 아래 그림과 같다.이런 값들의 나열에 대해서 삼분 탐색을 가능하고, 만약 같은 값이 연속되는 평평한 구간이 존재하는 경우 사용 불가능하다. 삼분 탐색 알고리즘 과정1. unimodal한 구간에 대해 삼분 탐색을 수행2. 구간을 3개로 나누어서 탐색, [O, A], [A, B], [B, N]3. f(A)가 f(B)보다 크다면, [O, A]에는 최솟값이 존재할 수 없으므로, 구간을 [A, N]으로 축소4. 2 ~ 3 과정을 반복5. 남은 구간3개의 후보 값에 대해 완전 탐색 이분 탐색과 과정은 비슷한데, 3개의 구간에 대해 탐색 영역을 줄여나가면서 진행..
-
회전하는 캘리퍼스(Rotating Calipers)알고리즘/Algorithm Theory 2025. 1. 29. 04:09
개요한동안 바빠서 새 알고리즘을 공부할 틈이 없었는데, 연휴 기념 오랫만에 들고온 기하 알고리즘 ~아래 내용은 CCW와 Convex Hull에 대한 이해를 바탕으로 한다.CCW: https://doraeul19.tistory.com/297Convex Hull: https://doraeul19.tistory.com/343 회전하는 캘리퍼스(Rotating Calipers)캘리퍼스는 아래와 같이 길이를 측정하는 도구로, 회전하는 캘리퍼스 알고리즘은 볼록 다각형을 돌면서 두 지점간의 거리를 구하는 알고리즘이다. 지지선과 대척점지지선(A line of support): 볼록 다각형에 대해 점이나 변에 접한 직선 대척점(Anti podal points): 평행한 두 지지선이 있을 때, 그 지지선에 닿아있..
-
[Linux] Dynamic Loading공부/Embedded 2025. 1. 27. 02:21
동적 라이브러리 사용 이유- 정적 라이브러리는 컴파일 타임에 실행 바이너리에 포함되어야 하지만, 동적 라이브러리는 실행 파일에 포함되지 않아도 된다.- 따라서 동적 라이브러리는 앱의 컴파일과 별개로 동작할 수 있고, 앱의 실행 파일에 포함되지 않기 때문에 앱의 초기 실행시에 메모리에 로드될 필요가 없다.- 따라서 앱 실행 속도나 메모리 사용량을 줄일 수 있다. 동적 라이브러리 로드- shared library라는 형식으로 라이브러리를 제작- 실행 시점에 사용할 라이브러리를 연결하여 사용- 라이브러리의 확장자는 . so(shared object), 동적 라이브러리- 대상 프로그램 컴파일 시 -ldl 옵션를 줘서 컴파일 dlfcn.h#include 로 사용 void *dlopen(const char *fil..
-
[백준] 3679 - 단순 다각형알고리즘/백준 2025. 1. 25. 02:28
문제https://www.acmicpc.net/problem/3679 풀이오랫만에 보는 Convex hull...? 비슷한 문제원래는 스택에 하나씩 push/pop하면서 Convex hull을 구해줘야하는데, 이는 모든 점을 사용해서 다각형을 만들어 주기만 하면 된다. 시작점0을 기준으로 반시계 기준으로 정렬하고 점을 차례로 이으면 좌측(N=5)그림과 같이 다각형을 그릴 수 있다.하지만 우측(N=7)그림과 같이 마지막 점들이 직선을 이루고 있는 경우 역순으로 이어줘야한다.이경우만 잘 고려해서 cross(0, N - 1, index)가 0일 경우부터는 역순으로 이어주면된다. 코드#include #include #include #include #include #include using namespace st..