Recent posts

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

2 minute read

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

[C++] C++의 iterator

3 minute read

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

[임베디드] AUTOSAR란

1 minute read

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

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

2 minute read

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

[네트워크] TCP/IP란

1 minute read

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

[임베디드] AMBA Protocol

2 minute read

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

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

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

3 minute read

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

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

1 minute read

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

[임베디드] ELF Symbol

3 minute read

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

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

2 minute read

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

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

1 minute read

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

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

2 minute read

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

[가상화] KVM, QEMU

1 minute read

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

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

1 minute read

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

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

1 minute read

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

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

1 minute read

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

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

1 minute read

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

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

less than 1 minute read

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