목록Study (3)
KorSA
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cs7P59/btsHmcrTsWZ/iR6uU5cSlGmGnpNlzGNB8k/img.png)
#01. TinyML 스터디11주에 걸쳐 참여했던 "모두의 연구소 - 내 TinyML 능력이 세상을 구하는 방법" 스터디가 끝이 났다! 이 스터디를 참여하면서 10여년만에 Arduino도 써보고 Colab으로 MobileNet 모델을 분석하고 튜닝해보기도 했다. ML 입문자였던 나는 나름 ML과 친해질 수 있는 계기가 되지 않았나 싶다. 마지막 프로젝트로 진행했던 주제가 잊혀지는 게 아쉬워 간단히 정리해보고자 한다. #02. RoboPet[ 프로젝트명 ] RoboPet (애완로봇) [ 목표 ] RoboPet 은 Robotics 와 Pet 의 합성어로 집 문을 열고 들어가면 주인을 기다리고 있던 로봇이 나를 반겨준다. [ 준비물 ] 1. Arduino 자동차 키트 2. 카메라 모듈 (OV2640) 3. A..
[임베디드 OS 개발 프로젝트 (이만우)] 책을 따라 어셈블리 코드 -> C 언어 코드 부팅 예제를 따라하고 있었다. 분명 책에 있는 그대로 Makefile 을 작성했다고 하는데 multiple definition of 'main' 이라는 오류가 발생했다. 현재 공부중인 예제는 어셈블리 코드로 작성된 Entry.S 파일에서 BL main 이라는 명령어를 통해 main 함수로 분기를 이동한다. 이 main 파일은 Main.c 파일에 정의되어 있는 함수이고, 기본적으로 c언어에서 정의된 함수 이름은 전역으로 선언되기 때문에 Entry.S 파일에서도 main 함수의 위치가 어디인지 알 수 있다. Makefile에서는 Main.c 파일을 컴파일해서 Main.o 파일을 만들고, Entry.S 파일을 컴파일하여 E..
1. LDR (Load Register): 메모리에서 데이터를 레지스터로 로드하는 명령어입니다. 예를 들어, LDR R0, [R1]은 R1 레지스터에 저장된 주소에서 데이터를 읽어서 R0 레지스터에 저장합니다. 2. B (Branch): 프로그램의 실행 흐름을 변경하는 명령어입니다. 주로 조건부 또는 무조건적인 점프를 수행하기 위해 사용됩니다. 예를 들어, B label은 주어진 레이블 위치로 실행 흐름을 점프시킵니다. >> [ B . ] 명령어는 현재 위치로 실행 흐름을 변경하는 코드로 무한루프를 발생시키고자 할 때 사용한다. 3. MRS (Move Register to System register): 시스템 레지스터(예: CPSR)의 값을 일반 레지스터로 이동시키는 명령어입니다. 이를 통해 프로그램은..