Pinned ·

Mbed-CLI

Digital Camera Interface(DCMI)란? The digital camera is a synchronous parallel interface able to receive a high-speed data flow from an external 8, 10, 12 or 14 bit CMOS camera module. It supports different data formats(YCbCr4:2:2/RGB565 progressive video, JPEG). This interface …

Pinned ·

Raspbian on Raspberry pi 4

본 글에서는 Raspberry Pi 4(4GB)에 Raspbian운영체제를 설치하는 과정에 대해 다룬다. SD 카드에 Rsapbian 운영체제 이미지를 굽는 과정은 Windows 11에서 진행했다. Hardware prerequisites SD Card SD Card reader(USB) Raspberry Pi Model B (4GB) mini HDMI(optional) Software prerequisites SD Card Formatter Raspberry Pi imager …

Pinned ·

Make update

Make update TinyML의 예제 실습 중 make 3.8.2를 써야 하는 상황이 발생했다. 그런데... macOS X에서는 기본적으로 제공되는 make 버전에 대해 더 이상 업데이트 해 주지 않는다. 즉, Homebrew를 사용하여 최신 버전의 make를 설치하는 방법으로는 업데이트가 불가능하다. update GNU make 소스 코드를 직접 다운로드하여 컴파일 및 설치를 진행해야 한다. 다운로드 받은 뒤에는 압축을 해제한 폴더에서 아래 명령어들을 입력하면 설치가 완료된다../conf…

Pinned ·

Mbed-CLI

Mbed-CLI 환경 구축 STM32F746G-disco보드의 실습을 위해 STM32CubeIDE를 설치했지만, TinyML(한빛미디어, 2020.8)책에서는 Mbed-CLI를 이용하여 빌드를 진행했다. 우선은 책의 내용을 따라가기 위해 Mbed-CLI환경을 구축해 보았다. prerequisites python3.x 이상 git Mercurial 2.2.2 이상(분산 버전 관리 시스템) Mbed CLI 설치하기 ARM Mbed tool로는 Keil Studio Cloud, Mbed St…

Pinned ·

Mbed-CLI Tutorial

Mbed-CLI Tutorial Mbed-CLI 환경 구축이 완료되었다면 간단한 예제 프로젝트를 진행하면서 사용법을 익혀 보자. 1. 프로젝트 생성 아래 명령어를 입력하면 "project name" 디렉토리가 생성되며 프로젝트 디렉토리로 설정된다. mbed new "project_name" --mbedlib --mbedlib옵션은 Mbed library를 사용하는 Mbed OS 2 프로젝트로 생성하는 옵션이다. STM32F746G-disco Tutor…

Pinned ·

STM32F746G-disco Tutorial

본 글에서는 STM32F746G-disco 개발 보드를 이용하여 O'REILLY의 TinyML도서의 예제를 실행해 볼 것이다. 준비물 STM32F746G-disco(마이크로컨트롤러 개발보드) Make(builder) 3.8.2이상 mercurial(파이썬 버전 에러(python@3.11) 발생 시 버전 5.9.3을 명시하면 해결됨) Mbed CLI - 운영 체제에 맞게 설치할 것, macOS X 아니면 pip을 통해 설치할 수도 있다.pip install mbed-cli STM32…

Pinned ·

Ubuntu on Raspberry pi 4

본 글에서는 Raspberry Pi 4(4GB)에 Ubuntu 20.02 LTS를 설치하는 과정에 대해 다룬다. SD카드에 우분투 이미지를 굽는 과정은 Windows 11에서 진행했다. Hardware prerequisites SD카드 SD카드 리더기(USB) 라즈베리 파이 mini HDMI(optional) Software prerequisites Ubuntu 20.04 LTS 이미지 HP USB Disk Storage Format Win32 Disk Imager SD 카드 포…

Pinned ·

Secondary-Storage Structure

Overview of Mass Storage Structure 많은 Secondary Storage가 존재하지만 본 절에서는 HDD등 Magnetic disk에 대해서 다룬다. 아래는 기본적인 하드디스크의 구조이다. I/O에 소요되는 시간은 아래와 같이 나타낼 수 있다.$$T_{I/O} = T_{seek} + T_{rotation} + T_{transfer}$$ I/O 소요시간 = 탐색시간 + 회전시간 + 전송시간 이 중에서 운영 체제 범위에서 줄일 수 있는 것은 탐색시간 밖에 없다.…

Pinned ·

Subprogram Implementation

Subprogram Linkage 서브프로그램 연결 서브프로그램 호출 - call 서브프로그램 복귀 - return 서브프로그램 호출 시 해야 할 작업 data 처리 호출하는 서브프로그램의 상태 저장 인수 전달 작업 복귀할 주소 전달 control 호출되는 프로그램으로 분기 서브프로그램 복귀 시 해야 할 작업 data 처리 필요에 따라 형식인수 값 복사(outer parameter) 함수의 경우, 결과 값 전달 호출한 서브프로그램의 상태 복귀 control 호출한 서브…

Pinned ·

Computational Complexity

Computational Complexity Intractability Three General Categories of Problems

Pinned ·

Searching

Searching Binary Search 탐색이란 key값으로 정렬된 공간에서 목표로 하는 key값을 찾는 것을 의미한다. Binary search는 이진 탐색이며, 탐색 공간의 중간값과 배교하여 탬색 공간을 절반으로 줄여 가며 목표로 하는 key값과 일치할 때까지 탐색을 하는 방법이다. tree자료구조를 사용하여 binary search와 sequential search의 탐색 횟수를 비교하면 아래와 같다. Binary Search Sequential Search tree의 depth가 …

Pinned ·

Sorting

Sorting Sort record를 key값에 따라 재배치하는 것을 의미한다. 두 개의 key를 비교하여 sort를 수행하는 알고리즘은 아래와 같은 연산을 수행해야 한다. 두 key를 비교한다. key값을 복사한다. Insertion Sort 배열을 sorted와 unsorted의 두 연속된 부분으로 나눈다. 초기값은 sorted는 빈 배열, unsorted는 전체 배열이다. unsorted의 첫 번째 원소를 sorted의 첫 번째 원소와 비교한다. sorted의 원소보다 unso…

Pinned ·

Branch & Bound - Traveling Salesperson Problem

Branch & Bound - Traveling Salesperson Problem 아래의 조건을 만족하면서 총 이동 거리가 최소가 되는 최적 경로를 찾는 문제이다. 주어진 city(노드)에서 출발한다. 모든 city(노드)를 정확히 한 번씩 방문한다. 다시 처음 시작한 city(노드)로 돌아온다. Bound 및 문제 해결 전략 수업시간에 다룬 Bound방법에 대해서는 제대로 이해를 못해서 인터넷에서 따로 찾았다. 노드에서 가장 weight가 작은 edge를 두 개 선택하여…

Pinned ·

Branch & Bound

Flow Branch & Bound Branch & Bound - 0-1 Knapsack Problem Branch & Bound Backtracking vs Branch & Bound Backtracking 노드를 추가한 뒤 non-promising임이 확인되면 Backtracking을 수행한다. preorder traversal을 이용한다. 최적화 문제와 비 최적화 문제 모두에 사용된다. Branch & Bound 노드에서 더 이상 최적해를 찾…

Pinned ·

Subprograms

Subprogram Concepts Program = Algorithm + Data Structure(Wirth 저) 에서 Algorithm이 Control Flow를 담당한다. 그렇다면 Data Structure의 Flow는 어떻게 처리될까? Data Structure을 처리하는 Subprogram을 통해 Data Flow가 관리될 수 있다. Subprogram 전체 프로그램에 포함된 독립적인 작은 프로그램 함수(function)과 프로시저(procedure)가 있다. 함수 : 반…