Category

embedded

[임베디드] Clang 컴파일 시 BIN 파일 크기 문제 & ELF와 BIN 차이

2 minute read

요즘 LLVM Compiler를 사용해서 졸업 연구를 진행하고 있다. 임베디드 분야가 다 그런 것 같지만, 어디서 알려주는 데도 없고, 자료도 잘 없고, 있어도 거의 해외 영문 사이트인게 참 힘들다. 그래도 그런만큼 내가 직접 원인을 찾고 수정하는 묘미가 있는 분야이다.

[임베디드] AUTOSAR란

1 minute read

요즘 자동차는 굴러가는 거대한 컴퓨터라고 해도 과언이 아닌 것 같다. 기계 제어에 의존도가 높던 과거와 달리, 최근 생산되는 자동차는 전자 제어기(Electronic Control Unit, 이하 ECU)의 사용 비중이 매우 높아지고 있다. 차량을 제작하는 회사와 ECU를 제작하는...

[임베디드] AMBA Protocol

2 minute read

요즘도 드론 보안에 대한 연구를 계속 하고 있다. 드론 통신 쪽을 보면, 특히 “프로토콜(Protocol)”이라는 말을 자주하게 되는데 네트워크 및 통신 분야에서 가장 많이 쓰게 되는 것 같다. 그러나 당연히, 이 프로토콜을 네트워크에서만 쓸 수 있는 말은 아니고, 컴퓨터에서 사용...

[임베디드] FreeRTOS 포팅 시 svc 0 HardFault Error 해결 방법

3 minute read

FreeRTOS를 STM32 보드에 포팅하여 실행 시켰다! 그런데 태스크를 생성하는 코드를 돌렸을 때 SVC call에서 오류가 발생하는 경우가 있다 해당 오류를 해결하는 글이 한국인 중에 없어서 포스팅을 해본다 사실 외국에도 별로 없다 낄낄 ...

[임베디드] ELF Symbol

3 minute read

최근 포스팅 주기가 좀 길었다. 과제를 끝내고 논문, 보고서, 발표, 개발 등.. 7월 한 달 동안 해야 할 일이 좀 몰려 있었다.

[가상화] 전가상화(Full-Virtualization)와 반가상화(Para-Virtualization)

1 minute read

전가상화, 반가상화는 모두 Type-1 가상화이다. Type-1 가상화는 베어메탈 하이퍼바이저를 이용하는 가상화이며, 따라서 베어 메탈 하드웨어 위에 하이퍼바이저가 직접 구동되고, 호스트 OS가 없다. 마이크로소프트의 Hyper-V 등이 이에 해당된다. 전가상화와 반가상화의 특징을...

[가상화] KVM, QEMU

1 minute read

💡 해당 포스팅은 isnt님의 블로그(링크: [https://m.blog.naver.com/ilikebigmac/222009981745])의 포스트를 보고 정리한 내용입니다. KVM

[임베디드] MCU용 소프트웨어 개발

1 minute read

MCU용 소프트웨어 개발 방법은 보통 두 가지로 나뉜다. 프로그램 개발 환경과 개발 프로그램이 실행되는 환경이 동일한 네이티브 개발(native development)과, 개발 환경과 실행 환경이 다른 크로스 플랫폼 개발이다. 이 중에서도 일반적으로 크로스 플랫폼 개발이 주로 사용...

Back to top ↑

C_C++

[C++] C++의 iterator

3 minute read

요즘 코딩 테스트를 C++로 준비하고 있는데, 나는 그동안 개발하면서 C++을 C처럼 쓰고 있었구나 싶었다. 사실 임베디드 시스템에서는 C++이 꽤 무거워 쓰지 않는 경우가 많아, C++의 다양한 툴들이 더욱 낯설게 다가온 것 같다.

[C/C++] 템플릿(template) 사용법

2 minute read

템플릿은 함수나 클래스를 개별적으로 다시 작성하지 않아도 여러 자료형으로 사용할 수 있도록 만들어 둔 틀이라고 보면 된다. Stack 구조의 경우 data가 homogeneous하기 때문에 데이터의 타입이 여러가지라면 타입 별로 스택을 하나하나 구현해야 한다. 이 때 templat...

[디자인패턴] 팩토리 패턴(factory pattern)

1 minute read

코드가 목적에 맞게 굴러가는 것을 코딩 우선순위의 1순위로 둘 수 있지만, 훗날 코드의 유지 및 관리를 위해 “좋은 코드”를 작성하는 것 또한 매우매우 중요하다. 요즘은 객체지향프로그래밍을 연습해보고 있어서, 저명한 디자인 패턴에 대해 정리한다.

[C언어] 함수 선언 및 정의

1 minute read

C로 짜여진 여러 코드들을 들여다보면, 함수의 선언과 정의를 분리하고, main 함수 위에 함수의 선언을, 정의는 main 함수의 아래에 하는 경우가 상당히 많이 보인다. 왜 굳이 둘을 나누는 것일까? 답은 ‘컴파일러에게 함수의 존재를 알리기 위함’에 있다.

[C/C++] 예외 처리(except handling)

1 minute read

예외(exception)란 컴퓨터 시스템이 동작하는 중에 예상하지 못한 오류가 발생하여 실행되고 있던 프로그램이 중지되는 것을 의미한다.

Back to top ↑

algorithm

[자료구조] 단일 연결 리스트(Linked List) 구현

2 minute read

리스트를 구현하는 방법으로 두 가지가 있는데, 하나는 배열을 이용하는 것이고 다른 하나는 동적할당을 이용해 구현하는 것이다. 이 중에서도 동적할당 구현을 살펴본다.

Back to top ↑

cs

[운영체제] [Basic] 운영체제의 역할

2 minute read

모든 app 프로그램들은 자원을 사용하므로, 이러한 자원의 효율적 분배를 위해 os가 존재한다. os에는 다양한 서비스들이 정부 부처처럼 존재한다.

[운영체제] 메모리 세그먼트(Memory Segment)

1 minute read

페이징 기법: 프로세스를 일정 크기인 페이지 단위로 잘라서 메모리에 적재시킴. 물리적인 단위. 세그멘테이션: 프로세스를 세그먼트의 집합으로 생각함. 논리적 내용 단위임. 크기가 각각 다름.

Back to top ↑

security

[보안] Dynamic Program Analysis란

less than 1 minute read

정의 실제 또는 가상 프로세서에서 프로그램을 실행하여 컴퓨터 소프트웨어를 분석 특징 동적 분석을 효과적으로 수행하기 위해, 대상 프로그램이 흥미로운 동작을 일으키기에 충분한 테스트 입력으로 실행되어야 함 ...

[보안] Static Program Analysis란

less than 1 minute read

정의 프로그램을 실행하지 않고 프로그램 분석 분석 대상 소스코드 오브젝트 코드 분석 방법: 구문 검사, 의미추론 등 Unit level ...

[보안] Taint Analysis란

1 minute read

Taint Analysis란? 정의 프로그램에서 사용자 입력값으로 인해 어떤 레지스터와 메모리 영역이 제어 가능한지 확인하는 기법 특징 메모리 성능 확인, 보안 테스트 등에 사용 프로그램 소스 코드 없이 분석...

Back to top ↑

papers

Back to top ↑

web

Back to top ↑

network

[네트워크] TCP/IP란

1 minute read

TCP/IP란 TCP/IP : 컴퓨터-컴퓨터간의 LAN(지역 네트워크), WAN(광역 네트워크)에서 통신을 하기 위한 프로토콜. 미국 APRANET(아파넷)에서 시작되어 미국 방위 통신청에서 통신을 위해 TCP/IP를 사용하게 한 것이 시초. IP: 인터넷에 연결되어 있는...

Back to top ↑

linux

[리눅스/linux] history 명령어 및 원리

less than 1 minute read

리눅스 기반 OS에서 쉘 커맨드를 이용하다 보면 같은 명령어를 반복적으로 타이핑 할 필요 없이, 방향키를 통해 간단하게 이전 명령어들을 불러올 수 있다. 이건 시스템을 재부팅 시켜도 없어지지 않는데, 이 명령어들이 어디에 저장되며, 라이프 타임은 언제인지 궁금해져서 찾아봤다.

Back to top ↑

compiler

Back to top ↑

auto

Back to top ↑