본문 바로가기

전체 글66

DMA와 일반 메모리 복사 비교 개발 환경대상버전OSWindows 10 24H2(Desktop), MacOS Sequoia 15.5(24F74)(MacBook M2 Air)STM32CubeIDE1.18.1STM32CubeMX6.14.1STM32CubeProg2.19.0STM32CubeCLT1.18.0보드Nucleo-F103RB펌웨어V24J46M32DMA는?Direct Memory Access의 줄임말이다. DMA는 CPU처럼 메모리에 직접 접근하여 데이터를 어디론가 전송시키는 일을 담당한다.만약 CPU가 이 일을 담당하게 된다면 데이터 전송이 완료될 때까지 다른 작업을 할 수 없기 때문에 명령어 처리 속도가 늦어지게 된다. 그래서 이 작업을 DMA가 대신 담당한다면 데이터 전송과 관련된 일을 하는 시간만큼 CPU는 다른 작업을 할 수 .. 2025. 7. 21.
FatFs를 사용하여 SD카드 파일시스템 접근하기 (2) - 읽기/쓰기 및 기타 함수 개발 환경대상버전OSWindows 10 24H2(Desktop), MacOS Sequoia 15.5(24F74)(MacBook M2 Air)STM32CubeIDE1.18.1STM32CubeMX6.14.1STM32CubeProg2.19.0STM32CubeCLT1.18.0보드Nucleo-F103RB펌웨어V24J46M32참고한 자료어댑터에 대한 데이터시트를 찾지 못했고, 비슷한 자료에서는 통신 절차에 대한 설명이 없어서 관련 자료를 위주로 참고했습니다.'4.2.1 Writing Raw Data to an SD Card via SPI''How to Use MMC/SDC'Lecture 12: SPI and SD cards - EE-379 Embedded Systems and Applications | Electr.. 2025. 7. 21.
FatFs를 사용하여 SD카드 파일시스템 접근하기 (1) - 초기화 개발 환경대상버전OSWindows 10 24H2(Desktop), MacOS Sequoia 15.5(24F74)(MacBook M2 Air)STM32CubeIDE1.18.1STM32CubeMX6.14.1STM32CubeProg2.19.0STM32CubeCLT1.18.0보드Nucleo-F103RB펌웨어V24J46M32참고한 자료어댑터에 대한 데이터시트를 찾지 못했고, 비슷한 자료에서는 통신 절차에 대한 설명이 없어서 관련 자료를 위주로 참고했습니다.'4.2.1 Writing Raw Data to an SD Card via SPI''How to Use MMC/SDC'Lecture 12: SPI and SD cards - EE-379 Embedded Systems and Applications | Electr.. 2025. 7. 12.
I2C 통신으로 16x2 LCD 디스플레이 출력하기 개발 환경대상버전OSWindows 10 24H2(Desktop), MacOS Sequoia 15.5(24F74)(MacBook M2 Air)STM32CubeIDE1.18.1STM32CubeMX6.14.1STM32CubeProg2.19.0STM32CubeCLT1.18.0보드Nucleo-F103RB펌웨어V24J46M32사용한 모듈과 데이터 시트모듈데이터시트B10K Potentiometerhttps://www.mouser.com/datasheet/2/13/RV24AF-1658492.pdfHD44780Uhttps://cdn.sparkfun.com/assets/9/5/f/7/b/HD44780.pdfPCF8574https://www.ti.com/lit/ds/symlink/pcf8574.pdfI2C는?Inter-In.. 2025. 6. 30.
SPI 통신으로 8x8 LED Matrix를 조작하기 개발 환경대상버전OSWindows 10 24H2(Desktop), MacOS Sequoia 15.5(24F74)(MacBook M2 Air)STM32CubeIDE1.18.1STM32CubeMX6.14.1STM32CubeProg2.19.0STM32CubeCLT1.18.0보드Nucleo-F103RB펌웨어V24J46M32사용한 모듈과 데이터 시트모듈데이터시트MAX7219https://www.alldatasheet.co.kr/datasheet-pdf/view/73745/MAXIM/MAX7219.htmlSPI는?Serial Peripheral Interface bus의 줄임말이다. Master-Slave 구조이며, 하나의 Master가 여러 Slave들에게 데이터를 송신하거나 수신받을 수 있다.SerialSeri.. 2025. 6. 28.
STM32CubeMX프로젝트를 VSCode에서 실행하기 환경대상버전OSWindows 10 24H2(Desktop), MacOS Sequoia 15.5(24F74)(MacBook M2 Air)STM32CubeIDE1.18.1STM32CubeMX6.14.1STM32CubeProg2.19.0STM32CubeCLT1.18.0보드Nucleo-F103RB펌웨어V24J46M32VSCode를 선택한 이유내 맥북에서 CubeIDE를 키려면 굉장히 긴 시간을 기다려야 한다. 또한 아직까지는 공부를 하고 있어서 깊은 디버깅을 요구하지 않는다. 그래서 VSCode로 빌드+플래쉬까지 가능하다면 환경에 의해 소모되는 시간을 많이 줄일 수 있겠다 싶어 개발환경을 구축하려고 했다.STM32 VSCode Extension 설치STM32Cube for Visual Studio CodeVSC.. 2025. 6. 19.
운영체제 (11) - I/O Management and Disk Scheduling 2024년 1학기 운영체제 수업을 듣고 정리한 내용입니다. 수업 교재는 운영체제 - 내부구조 및 설계원리 8 판입니다.Disk Performance Parameters디스크 내부는 얇은 판이 여러 개 겹쳐져 있고 각 판 사이에 데이터를 읽는 헤드가 존재한다. 판을 회전시키거나 헤드를 앞뒤로 움직여 데이터를 읽는데, 헤드를 이동하는 시간(seek time)보다 판이 회전하는 시간이 월등히 빠르다. 또한 데이터를 읽는 시간은 굉장히 짧으므로 실제로 고려해야하는 것은 어떻게 헤드를 이동시키는가이다.판은 수십개의 트랙이 겹쳐져 있고 헤드는 이 트랙을 왔다갔다하며 데이터를 읽는다.예시로 0부터 200까지의 트랙이 있다고 가정하고, 다음의 트랙을 방문해야한다고 하자. 그리고 헤드의 시작 위치를 100으로 고정한다... 2025. 6. 19.
운영체제 (10) - Multiprocessor and Real-Time Scheduling 2024년 1학기 운영체제 수업을 듣고 정리한 내용입니다. 수업 교재는 운영체제 - 내부구조 및 설계원리 8 판입니다.멀티프로세서라는 단어는 한 메모리를 공유하는 여러 CPU들의 집합이다.Scheduling Design Issues멀티프로세서를 사용한 스케줄링은 3가지 디자인 이슈를 갖는다.Assignment of Processes to ProcessorsCPU에게 어떻게 프로세스를 할당해줄 것인지를 말한다. 각 CPU마다 큐를 가질 경우 CPU가 큐에 있는 프로세스를 바로 꺼내와 실행시킬 수 있지만, 각각 실행시간이 다른 프로세스들을 골고루 분배할 수 없는 단점이 있다. 그러므로 이 문제를 해결할 수 없어서 Ready 큐를 글로벌 큐로 1개만 두고 각 CPU가 critical section에 접근하여 .. 2025. 6. 19.
운영체제 (9) - Uniprocessor Scheduling 2024년 1학기 운영체제 수업을 듣고 정리한 내용입니다. 수업 교재는 운영체제 - 내부구조 및 설계원리 8 판입니다.Aim of Scheduling프로세서가 한 개인 시스템에서 여러 프로세스를 스케줄링할 때 다음과 같은 목표를 달성하는 방향으로 전략을 짠다.응답 시간Throughput (단위 시간동안 실행을 완료한 프로세스 수)Processor efficiency (CPU 사용도, OS보다 유저 프로그램을 많이 실행하면 좋은 것)Fiarness (모든 프로세스에게 공정한 실행 기회)그러나 모든 목표를 신경쓰면서 할 수 없기 때문에 이 중에 한 가지만이라도 집중하는 방향으로 전략을 짜게 된다.수업시간에는 응답 시간에 집중하는 방향으로 배운 것 같다.Type of Scheduling프로세스 스케줄링이 일어.. 2025. 6. 18.
운영체제 (8) - Virtual Memory 2024년 1학기 운영체제 수업을 듣고 정리한 내용입니다. 수업 교재는 운영체제 - 내부구조 및 설계원리 8 판입니다.Virtual memory가상 메모리는 RAM과 하드디스크를 모두 메모리로 사용하는 것이다. 메인 메모리는 RAM으로, 서브 메모리는 하드디스크로 사용한다.Execution of a program in virtual memory가상 메모리에서는 모든 페이지/세그먼트들을 메모리에 올리지 않고 일부 페이지/세그먼트만 메모리에 올린다. 메모리에 올라간 페이지/세그먼트들을 Resident set이라고 부른다. 메모리에 올라간 페이지/세그먼트들 속 프로세스가 프로그램을 실행할 때, 특정 페이지/세그먼트를 찾는 경우가 있다. 하지만 메인 메모리에 페이지가 없고 서브 메모리에 존재하는 경우에는 Pag.. 2025. 6. 18.