본문 바로가기

분류 전체보기52

최고의 프롬프트 엔지니어링 강의 오늘 리뷰할 책은 최고의 프롬프트 엔지니어링 강의 라는 책입니다.저는 ChatGPT 를 유료결제 해서 사용하고 있고, 업무에 정말 잘 활용하고 있습니다. 주 업무가 펌웨어코드 작성이기 때문에, 중간중간 오픈소스 코드 중 이해가 안되는 부분을 gpt 를 활용해서 이해하곤 합니다. 이 책을 알게 된 배경은, 우연히 저자이신 김진중님을 linked in 에서 알게되었기 때문입니다. 이 책은 ChatGPT와 같은 대형 언어 모델(LLM)을 효과적으로 사용하는 방법을 기술적으로 접근하여 설명하고 있습니다. 특히, 일정하고 좋은 답변을 도출하기 위한 프롬프트 엔지니어링의 원리를 깊이 있게 다루고 있습니다. 제가 생각했을 때, 본 책으로 가장 많이 도움을 받을 수 있는 직군은 아래와 같습니다.프로그래머와 개발자: 오.. 2024. 6. 15.
[QEMU] 임베디드 리눅스 시스템 구축 프로젝트 - device tree 와 OpenSBI 이전글https://microelectronics.tistory.com/68https://microelectronics.tistory.com/69https://microelectronics.tistory.com/70https://microelectronics.tistory.com/71https://microelectronics.tistory.com/72 원본 게시글docs : https://quard-star-tutorial.readthedocs.io/zh-cn/latest/github : https://github.com/QQxiaoming/quard_star_tutorial Device Tree File 이란?Flattened Device Tree (FDT)는 Linux 커널의 PowerPC 아키텍처.. 2024. 6. 13.
[QEMU] 임베디드 리눅스 시스템 구축 프로젝트 - OpenSBI 이전글https://microelectronics.tistory.com/68https://microelectronics.tistory.com/69https://microelectronics.tistory.com/70https://microelectronics.tistory.com/71 원본 게시글docs : https://quard-star-tutorial.readthedocs.io/zh-cn/latest/github : https://github.com/QQxiaoming/quard_star_tutorial OpenSBI 소스 코드 구조현재 OpenSBI의 소스 코드 구조는 비교적 간단하고 명확하다. 주요 디렉토리와 그 역할은 다음과 같다:sbi 디렉토리: OpenSBI의 핵심 파일들이 위치한 곳이다... 2024. 6. 12.
[QEMU] 임베디드 리눅스 시스템 구축 프로젝트 - OpenSBI overview 이전글https://microelectronics.tistory.com/68https://microelectronics.tistory.com/69https://microelectronics.tistory.com/70 원본 게시글docs : https://quard-star-tutorial.readthedocs.io/zh-cn/latest/github : https://github.com/QQxiaoming/quard_star_tutorial BootloaderBootloader 는 궁극적으로는 OS 를 SoC 에 로드하는 것이 목표인 프로그램이다.OS 위에서 돌아가는 프로그램이 아니므로, Firmware 의 한 종류이기도 하며, baremetal 로 동작한다.그 과정에서 IC 내부의 장치를 초기화 (메모.. 2024. 6. 11.
[QEMU] 임베디드 리눅스 시스템 구축 프로젝트 - Flash 테스트 이전글https://microelectronics.tistory.com/68https://microelectronics.tistory.com/69 원본 게시글docs : https://quard-star-tutorial.readthedocs.io/zh-cn/latest/github : https://github.com/QQxiaoming/quard_star_tutorial Cross Compiler 설치본문에는 bootlin 에서 다운받아 설치하지만, 본인은 riscv-toolchain github 를 통해 설치했다.https://github.com/riscv-collab/riscv-gnu-toolchain.git GitHub - riscv-collab/riscv-gnu-toolchain: GNU too.. 2024. 6. 10.
[QEMU] 임베디드 리눅스 시스템 구축 프로젝트 - 가상 보드 등록 2 이전글https://microelectronics.tistory.com/68 원본 게시글docs : https://quard-star-tutorial.readthedocs.io/zh-cn/latest/github : https://github.com/QQxiaoming/quard_star_tutorial 마찬가지로, 이미 기작성된 코드이므로 간단하게 읽으면서 흐름을 파악하는 것을 목표로 한다. 시리얼포트 추가실제 보드의 초기 디버깅 중, 시리얼 출력은 매우 유용하다. 거의 모든 SOC는 시리얼 포트를 포함하고 있기 때문에 우리도 정의에 시리얼 포트를 추가해야 한다.우선 세 개의 시리얼 포트 기본 주소를 추가한다. 세 개를 추가하는 이유는 나중에 여러 권한 영역 내에서 다른 시스템을 실행할 수 있기 때문에.. 2024. 6. 9.
[QEMU] 임베디드 리눅스 시스템 구축 프로젝트 - 가상 보드 등록 github 를 뒤지다가 rom 코드 부터 커널을 step by step 으로 올리는 친절한 예제가 있어, 따라해보며 블로그에 포스팅을 해보려 한다. 원본 게시글docs : https://quard-star-tutorial.readthedocs.io/zh-cn/latest/github : https://github.com/QQxiaoming/quard_star_tutorial 간략히 보니, QEMU 빌드부터 진행하는데, 타겟 SoC 의 구성을 셋팅하는 것 부터 시작해서 아키텍쳐 적으로 이해하는데 많은 도움이 될 것 같다. 문서가 중국어로 되어있기 때문에, ai 의 도움을 받아 한국어로 번역을 하면서 첨언할 부분을 추가할 예정이다. 의존성 패키지 설치sudo apt install ninja-build pk.. 2024. 6. 8.
[자료구조] 트리 - 이진트리, 순회 정의트리 중에서 가장 많이 쓰이는 트리로, 모든 노드가 2개의 서브 트리를 가진다.서브트리는 공집합 일 수 있다. (공집합 또한 이진트리이다.)이진트리의 노드에는 최대 2개까지의 자식노드가 존재할 수 있고, 모든 노드의 차수가 2 이하이다. 이진트리에는 서브트리간의 순서가 존재한다. (즉 왼쪽과, 오른쪽이 구별된다) 1. 공집합이거나2. 루트와 왼쪽 서브트리, 오른쪽 서브 트리로 구성된 노드들의 유한 집합. 성질n개의 노드를 가진 이진트리는 정확히 n-1 개의 간선(edge) 를 가진다. 왜냐하면 이진트리에서 노드는 루트를 제외하면 정확히 하나의 부모노드를 가지기 때문이다. (부모와 자식간에는 1개의 edge 만이 존재한다) 높이가 h 인 이진트리의 경우, 최소 h 개의 노드를 가지며 최대 2^h -1 .. 2024. 6. 7.
[C/C++] 함수인자로써 이중포인터와 가변길이배열 지난 게시글 : https://microelectronics.tistory.com/50 [C/C++] 동적 2차원 배열과 가변길이배열(VLA)C언어의 표준에서는 고정된 크기의 배열을 선언할 때 배열의 크기를 컴파일 시간에 알 수 있어야 했다. 그렇기 때문에 C99 표준 이전에는 배열의 크기로 변수를 사용하는 것이 허용되지 않았다.microelectronics.tistory.com 이중포인터와 가변길이 2차원배열2중포인터로 동적 2차원 배열을 만들었다고 하더라도, 여전히 변수의 타입은 이중포인터다.하지만 배열과 동작원리(주소가 가리키는 메커니즘)는 같으므로, 배열을 조종하듯 값을 넣고 뺄 수 있다. (물론 2중 포인터로 동적할당 시 각 행의 첫번째 요소들이 연속된 값을 가지도록 해야 한다. 아래 코드 참고.. 2024. 5. 13.