
ARM은 세 가지 Instruction Set을 제공한다. ARM ISA : 32bit Instruction Thumb2 : 16bit & 32bit Instruction Thumb은 16bit Instruction으로 구성되어있고, 이를 확장하여 32bit Instruction을 덧붙여 Thumb2를 제공한다. Special Perpose의 Embedded System을 목적으로 디자인되었다. 따라서, Reduced-Cost Row-Performance를 만족시키기 위해 Low memory Set을 제공한다. Jazelle : Java ByteCode ( ByteCode 실행에 JVM이 필요없다 ) CPSR의 J,T bit을 통해 어떤 Inst Set으로 번역될 지 설정 가능하다. Compiler가 알..

Real Time Clock - RTC : 2^15Hz = 32768 Hz = 32.768 kHz = 1 Sec RTC를 2^15로 나누면 1Hz 에 1 Sec인 Clock을 만들어 1초를 Count할 수 있다. 타이머는 Task Scheduler 등의 작업에서 App에게 시간 배정으로 동시에 작업을 수행하도록 만들기 위해 사용된다. ( event Interrupt를 통해 Count한 1ms의 경과를 CPU에게 알린다. ) Private Timer Timer Load Register, Timer Count Register, Timer Control Register, Timer Status Register로 구성되어있다. - Timer Load Register 초기값에 해당하는 값. - Timer Coun..

Input Output Device에는 각각의 Register가 들어있다. 이 register에 접근하여 원하는 정보를 얻어올 수 있다. Configuration Register ( Initiate 를 담당 ), Data Register, Status Register ( IO Device의 상태를 기억 ) UART : Universal Asynchronous Receiver and Transmitter 비동기방식 -> Clock이 필요없다, Full-duplex(전이중) 방식 통신 -> 동시에 송 수신이 가능하다. Asynchronous이기 때문에 Agreement가 필요하다 ( Protocol ) : 언제 보낼지, 어떤 형식으로 보낼지, 얼마나 빠르게 보낼지 Transmitter의 Data Format..
HIG는 앱개발에 있어서 동작과 디자인을 어떻게 구성할까에 대한 질문에 답을 주는 지침서이다. 이를 따라가면서 앱을 개발하면 사용자들에게 익숙한 환경을 제공할 수 있고, 낯선 앱이라도 친숙하게 이용할 수 있다. 약간 모든 애플리케이션에 있어서 통일성을 형성하여 "애플생태계"를 구축하고자 하는 것으로 보인다. 사용자 입장에서 개발을 진행하여 좀 더 사용에 편리할 수 있고, 낯선 앱을 이용할때 오는 이질감도 줄어들 것으로 기대된다. https://developer.apple.com/design/human-interface-guidelines/ios/overview/themes/ㅈ Themes - iOS - Human Interface Guidelines - Apple Developer iOS Design T..

캐릭터와 coin / 캐릭터와 Box가 충돌했을 때 어떤 반응을 일으킬 지에 대해 작성하였습니다. 우선 box, coin, character에 box collider를 inspector 창에서 덧붙여주고 isTrigger를 체크해주었고, 각각에 알맞는 tag를 붙여주었습니다. 하트 이미지를 3개 불러와 다음처럼 배치시키고, HPManager의 스크립트를 작성하여 Canvas의 빈 오브젝트 HP에 붙여주었습니다. using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class HPManager : MonoBehaviour { public static int hp = 3..
희소행렬을 표현할 때 Structure를 이용해 현재 행렬에 들어있는 값들만을 row, column 순으로 오름차순으로 정렬해 Array로 표현하는 방법이 있다. 이렇게 나타낸 행렬을 덧셈 곱셈등의 연산에도 활용할 수 있는데, 전치행렬을 구하는 연산도 적용할 수 있다. 다양한 전치행렬을 만드는 알고리즘 중, Fast Transpose가 단번에 잘 이해가 되지 않아서 정리해보았다. ( matrix array는 (row, column ,value) structure를 순서대로 담아놓은 Array임 ) 이해가 잘 안된 부분은 StartingPosition이였다. 한 번 이해하고 나니 크게 어렵지 않게 코드를 작성할 수 있었다. 다른 (느린) 전치과정과 달리 Fast Transpose는 옮겨담는 matrix a..

처리장치 등에서 입출력장치의 데이터에 접근하기 위해서 사용하는 방법. 입출력장치 내에 있는 레지스터를 특정 메모리 공간에 할당하여, 사용할 때 마다 그 공간을 참조하여 값을 이용할 수 있다. 할당받는 메모리 공간의 크기는 레지스터의 개수에 따라 달라진다. 메모리 주소가 32bit ( 4 byte )이고, 메모리 맵이 같은 크기의 4개의 구역으로 나누어져 있다고 생각해보면, 맨 앞 2개의 bit는 00, 01, 10, 11로 어느 구역으로 갈 지 결정하는 역할을 수행하게 된다. 이 두 bit을 처리하는 회로가 Address Decoder 이고, decoder에 의해 해당 메모리의 chip select가 활성화 (1) 가 되며 해당 구역에서 남은 30개의 bit으로 구성된 주소로 원하는 데이터를 찾아갈 수 ..

Tab 복사가 안돼서 삐뚤빼뚤 ㅜㅜ Execute unit in ARM Move instruction - MOV mov r0, r0, LSL#1 r0에 저장된 값을 logic shift left로 1칸 옮겨서 r0에 저장하라 mov pc, r14 r14에 저장된 값을 pc 레지스터에 저장하라 example r0 = 0x80000004 movs r0, r0, LSL#1 r0 = 0x00000008, CPSR = nzCv movs r0, r0, LSL#1 r0 = 0x00000010, CPSR = nzcv 대부분의 instruction은 (lsl#같은) Barrel shifter를 사용할 수 있다! instruction 뒤에 붙는 s는 명령어 수행 후 CPSR 플래그를 update하라는 의미 2bit 이상 ..