본문 바로가기

Software

(79)
UWB(Ultra Wide Band) 1. 기술 개요 근거리 무선통신의 계속적인 수요 창출에 따른 전파자원을 보다 더 효율적으로 사용할 수 있는 신기술 개발이 전 세계적으로 활발히 진행되고 있는 시점에, 주파수를 가장 효율적으로 사용할 수 있는 유력한 후보로 UWB(Ultra Wide Band) 근거리 무선통신 기술이 적극적으로 검토되고 있다. UWB 무선 기술은 무선 반송파(저주파에 신호를 실어서 전송하기 위해 사용되는 고주파 전류)를 사용하지 않고 기저대역(매우 낮은 저 주파수)에서 수 GHz 대의 매우 넓은 주파수를 사용하여 통신이나 레이더 등에 응용되고 있는 새로운 무선 기술이다. 특히 이 기술은 수 나노(nano) 혹은 수 피코(pico) 초의 매우 좁은 펄스를 사용함으로써 기존의 무선 시스템의 잡음과 같은 매우 낮은 스펙트럼 전력..
sizeof()와 포인터 개발 도중 sizeof()를 통해 *포인터 변수로 참조된 Array list의 크기를 구하고자 하였다. 너무나도 기초적인 부분이라 안 되는 것을 알고 있었지만, 구하고 싶었다. 결론부터 언급하자면 sizeof()는 컴파일 타임에 결정지어지는 연산자이다. 다음의 코드를 보자 data type이 char인 Array list를 각각 크기가 10과 40으로 선언하였고, 포인터 변수에 런타임(runtime)에 크기가 40인 arr_two의 주소를 지정하였다. 결과는 10, 40, 1 이 나오는 것을 확인할 수 있다. 각 두 개의 array list의 sizeof() 연산에 대해선 명확하게 10과 40을 출력하였다. 그러나 포인터가 가리키는 array list의 size를 구하고자 하였는데, 왜 sizeof()는..
MCU(Micro Controller Unit) 그리고 FreeRTOS History 마이크로 컨트롤러 유닛(Micro Controller Unit, MCU)는 전자제품, 전자기기의 필수 반도체인 만큼 사용되는 범위가 무궁무진 하다. 마이크로컨트롤러는 마이크로프로세서와 메모리, 프로그램 가능한 입출력 모듈을 하나의 칩으로 만들어 정해진 기능을 수행하는 컴퓨터를 말한다. 일반적으로 MCU의 성능은 PC 컴퓨터의 CPU에 비해 낮고 저전력이 특징이다. 따라서 컴퓨터의 CPU가 일반적인 운영체제(Operating System, OS)를 사용하는 것과 달리 MCU는 실시간 운영체제(Real Time Operating System, RTOS)를 설치해 사용하거나 OS 없이 펌웨어만 사용해서 자동제어에 사용되는 경우가 많다. 이처럼 MCU를 구동시키기 위해서는 소프트웨어가 반드시 필요..
[Algorithm] Sort 구현(Bubble, Quick, Stack, Queue) : C Bubble sort #include int array[10] = {10, 1, 2, 6, 9, 7, 8, 3, 4, 5}; void sort(int arr[]) { int temp = 0; int i,j; for (i=0; i
오토사(AUTOSAR) : AUTomotive Open System ARchitecture 자동차 소프트웨어 플랫폼 오토사와 현대오토에버 mobilgene 최근 자동차가 달리는 컴퓨터와 같이 변화하면서 소프트웨어는 우리가 타는 자동차에 없어서는 안 될 기능을 제공하고 있다. 특히 전기차와 자율주행차로 자동차의 패러다임임 변화하는 과정에서 소프트웨어 중요성이 더 높아지고 있으며, 이러한 변화에 맞추어 소프트웨어 개발도 고도화되는 추세이다. 만약 자동차 회사마다 비슷한 소프트웨어를 각자 개발한다면? 엄청난 시간과 자원 낭비일 것이다. 그러므로 효율적인 자동차 소프트웨어 개발을 위해, 소프트웨어를 규격화하고 표준화한 플랫폼이 바로 오토사(AUTOSAR)이다. 자동차 제어 ECU를 위한 소프트웨어 플랫폼 오토사(AUTOSAR)는 AUTomotive Open System ARchitecture의 이니셜..
Yocto Project 소개 Yocto Project 소개(배경) Embedded Linux 개발환경에서 제일 문제가 되었던 것은 Target(Chipset)에 대한 의존성이다. 예를들어 Android 같은 경우 한번 소스를 받으면, 그 안에 모든 Package가 다 들어있지만, Embedded Linux 환경으로 넘어오게 되면 정형화된 Package/Structure가 없기 때문에 환경 구성을 해야하지만 파편화 되어 흩어져 있다. 따라서 Yocto Project는 빌드환경, 유틸리티, 툴체인을 자체적으로 만들기 때문에, 사용자 작업환경과의 의존성이 줄어들어 호스트 환경에 따른 차이가 발생할 여지가 적다. Bitbake(make) - Gentoo Linux의 패키지 관리 시스템인 Portage에서 분리되어 나온 프로젝트로서, Pok..
[Algorithm] Exam - 물류창고 제품을 생산하는 N개의 공장 중 한 곳에 물류 창고를 지어서 제품을 관리할 예정이다. 제품을 신속하게 물류 창고로 옮겨야 하기 때문에 공장과 물류 창고 거리가 가까울수록 좋다. 물류 창고와 가장 먼 공장과의 거리가 최대한 가깝게 되는 장소에 물류 창고를 지으려고 한다. [요구사항] 공장과 공장 사이에 최대 1개의 도로가 있을 수 있고, 양방향 도로이다. 제품의 이동은 도로를 이용해서만 이동이 가능하며 최단 거리로 이동을 한다. 최단 거리라 함은 A공장에서 B공장으로 이동할 때, A → B로 직접 가는 것보다 A → C → B로 가는 것이 더 짧은 거라면, C공장을 거쳐서 이동하는 것이다. 값 범위 1. 공장 수 N(N = 자연수, 5 ≤ N ≤ 100) 2. 도로 정보 수 M(M = 자연수, 5 ≤ M ..
Codec 이야기(AAC, SBC, MP3, APT-X, LDAC) Audio Codec이 표준화되기 시작한 것은 약 90년대부터이다. 그 전에도 여러 가지 Codec이 있었지만, psychoacoustics이라는 model이 개발이 되고, 그것을 Codec에 적용을 해서 Codec 기술이 크게 발전을 하였다. 사람이 청취하는 방향성에 대하여 먼저 분석을 하고 Codec 개발을 한 것이다. 기존의 PCM 신호들은 사람이 들을 수 있던, 없든 간에 모든 시그널이 들어가 있으므로 데이터 사이즈가 컸는데, 그것을 기존의 압축 알고리즘을 통해 압축을 시도하는 경우 한계가 있었다. 사람이 못 듣는 부분은 과감하게 날려버리고 듣는 쪽에서 압축을 정교하게 해 보자는 방식으로 접근하여 압축을 하면서도 CD의 원음과 유사한 정도의 음질을 제공해 줄 수 있었다. 이것이 MP3이다(94년 ..