본문 바로가기

전체 글

(9)
엉엉.. 머리에 안들어가지만 욱여넣기.. RTOS에서.. 서로 엉키지 않기 위해서 사용하는 capabilities..? 1) Mutexes1이면 freeresource를 사용하고 싶을 때 Mutex가 1인지 확인하고,0으로 만들고 사용해 > 다 쓰고 나면 다시 1로 설정해주기! 2) Semaphore비슷한데 더 많이(counting semaphore의 경우) 3) Queue 4) Event Flags 5) Timers 6) Dynamic Memory Allocation- Heap Overflow / Heap Fragmentation 7) Deadlock- 한 번에 하나의 뮤텍스만 Lock- 동일한 순서로 뮤텍스를 잠그도록 8) Priority Inversion- 작업 우선순위 역전 / 침범 External Memory 1) NOR flash -..
[인공지능개론] Linear Regression Regression(회귀) : 연속적인 값을 예측하는 Task(to determine the strength of the relationship between one dependent variable and a series of other changing variables)  회귀 모델- Linear Hypothesis : 기울기 w, y절편 b라는 trainable parameters를 Loss가 작아지는 방향으로 학습→ How fit the line to data? Cost function을 통해 파악 가능  회귀 문제의 Cost Function : Mean Square Error(MSE)  Minimizing Costy절편을 생략한 간단한 Hypothesis에 대한 Cost Function을 정의하..
[임베디드 시스템 설계] Core systems Kernel = 핵심, '운영체제' : 시스템이 시작할 때부터 메모리에 상주하면서 기본적이고 핵심적인 역할을 수행하는 운영체제의 일부를 말한다. - Monolithic Structure : 커널에 많은 기능을 모아 합쳐 놓은 - Micro Structure : 핵심적인 부분만 커널에, 나머지는 외부 모듈 형태로 구 - Hybrid 더보기 커널은 운영 체제(OS)의 핵심 부분으로, 하드웨어와 소프트웨어 간의 상호 작용을 관리하고 시스템 리소스를 효율적으로 관리합니다. 커널은 운영 체제의 핵심 기능을 제공하며, 다음과 같은 주요 역할을 수행합니다: 1. **자원 관리(Resource Management)**: - 커널은 시스템 자원을 효율적으로 관리합니다. 이러한 자원에는 CPU 시간, 메모리, 입출력 장치..
[임베디드 시스템 설계] ARM Instructions 어셈블리 명령어의 기본 형식 *stp : 두 개의 레지스터를 동시에 스택에 push / 함수 호출 시 현재 상태를 저장 *ldp : 두 개의 레지스터를 동시에 스택에 pop / 함수 끝나면서 현재 상태를 복구 1) 데이터 처리 : ADD, SUB, ORR, LSL, LSR MVN(instruction)은 "Move Not"의 약자로, 대상 레지스터의 비트를 반전시켜서 결과를 저장하는 어셈블리어 명령어입니다. 이 명령어가 필요한 이유는 다음과 같습니다: 1. **비트 반전 및 보수 연산**: MVN 명령어는 대상 레지스터의 비트를 반전시킵니다. 이는 보수(complement) 연산에 사용될 수 있습니다. 보수 연산은 데이터의 비트를 반전시켜 부호를 바꾸거나, 비트 연산에 사용될 때 유용합니다. 2. **데..
[임베디드 시스템 설계] ARM Processors 복습 시스템 반도체의 핵심은 ARM Processor! [용어] BSP(Board Support Package) : 이름의 의미 그대로 보드를 사용할 수 있도록 하기 위한 SW 묶음 - 부트로더, 디바이스 드라이버 등 Arm사는 라이선스 비지니스 - 칩을 만들기 위한 설계도를 판다! 주요 IP(Intellectual Property - 재사용 가능하도록 기능을 모듈화해 설계한 Core Design)에 대한 라이선스 판매 Arm 아키텍처? : 아키텍처는 Arm 프로세서를 설계하는 디자인을 의미한다! Arm 프로세서를 제어하기 위한 소프트웨어 인터페이스를 의미! → 레지스터, 메모리 구조, Arm 어셈블리 명령어, 함수 호출 규약 등 Arm 프로세서? : 디바이스를 뜻한다! Arm 아키텍처에 의존적, 같은 아키텍..
[임베디드 시스템 설계] 2.2. Programming 복습 Programming Workflow Typical application development(좌) 과정과 Embedded development(우) 과정을 비교해보면, 일반적인 프로그래밍의 과정에서는 Compile and Link를 거친 후, Host Machine에서 디버깅이 진행되는 반면, 임베디드 프로그래밍에서는 Compile and Link 후에 Flash를 지우고 Upload를 진행한 후에, debugging session을 실행시키고 Signal Analysis를 진행한다. Host에서 코드를 작성하지만 그 코드는 Host가 아닌 다른 임베디드 디바이스에서 실행되어야 한다. 일반적인 응용 프로그램 개발의 경우, 테스트와 디버깅이 컴파일링 이후에 바로 진행될 수 있다. 그러나 임베디드 개발의 ..
[임베디드 시스템 복습] chap1.2) Computer Basics 소프트웨어는 하드웨어 위에서 돌아간다! 회로나 저항, 전압과 같은 하드웨어 지식은 일반 소프트웨어 개발자에게는 구석기시대의 이야기처럼 느껴질테지만.. 임베디드 소프트웨어 개발자에게는 조선시대 정도.. 컴퓨터 시스템은 하드웨어 시스템이 소프트웨어로 실행되는 플랫폼을 이야기 한다! 모든 임베디드 디바이스는 컴퓨터 시스템이다! 고로 컴퓨터 시스템이 어떻게 구성되어 있는지 이해하는 것이 중요하겠지요오?! Computer System Software 1) Task 1+2 2) Coding (Programming Languages 이용) X = 1+2; Compiler Operating Systems / Device Drivers 3) Assembler -> Assembly 언어 (프로..
[최고의 복습은 시험기간에...] 학습과 추론 복습 시작! 어떤 과목일까 궁금한 마음 + 인공지능에 대한 새로운 시각의 공부를 해볼 수 있지 않을까 하는 마음에 학습과 추론이라는 과목을 신청하게 되었다. 1주차 강의자료에 문을 여는 질문 'What is this course about?' -> ABOUT 'Probabilistic Modeling and Inference with high dimensional data' ! 확률 모델에 대해 배우고, 높은 차원의 데이터에 대한 추론의 방법에 대해 배우는 과목이었다! 아직까지는 모호하다! 차근차근 내용을 정리하며 이 과목이 어떤 학습 목표를 이루고자 하는지를 이해해보자. [개요] "Box's Loop" 우리는 모델을 Build한 후, 모델과 데이터를 이용해 Hidden Quantities를 추론한다! 추론해 낸 H..