728x90
반응형

임베디드 28

[C언어] 문자열 파싱 1 : strlen strcpy strncpy strcat strcmp atoi

C언어 / 문자열 파싱 / strlen strcpy strncpy strcat strcmp atoi / 임베디드 개발 / 임베디드 문자열 파싱 / 임베디드 파싱 임베디드 업계에서 문자열 파싱을 통해 시각화를 구현해야한다. 그러기 위해선 로그데이터를 제대로 분석해야한다. 문자열로 이루어진 로그데이터를 가공하고 차트화하기 위해 문자열 함수를 배울 필요가 있다. 임베디드에선 파싱을 위해 주로 string.h 헤더파일 내에 있는 함수를 이용한다. #include strlen 문자열의 길이 구하는 함수 char str[10]="hello"; int len=strlen(str); printf("%d",len); // 5 출력됨 strcpy 문자열 복사 char str[10]="hello"; char temp[10]..

임베디드 2022.04.10

[비트연산] 특정 위치 비트 set / clear / 반전

비트연산은 임베디드 개발시 기본중에 기본 지식이다. 포트의 특정 핀에 전선으로 연결된 장치를 on/off 하기 위해서는 특정 위치 비트를 0>1 / 1>0 로 바꿀 수 있어야한다. 예를 들어, 모터가 MCU의 6번 핀에, 전등이 3번 핀에 연결되어 있을때, 각각의 장치가 따로 동작할 수 있어야한다. 포트에 0000 0100 값을 넣으면 전등이 켜질 것이고, 포트에 0010 0000 값을 넣으면 전등은 꺼지고 모터가 켜질 것이다. 장치 서로의 영향을 주지 않고 각각 따로 모터에 작동 시키기 위해선 비트연산을 활용해야한다. 비트 clear 특정 비트를 0으로 만드는 것 비트 set 특정 비트를 1로 만드는 것 특정 비트 set하기 a : 대상 비트, n : set하고 싶은 비트 위치일때 다음과 같이 표현할 ..

임베디드 2022.04.09

[C언어] 자료형 : float, double, 부동소수점, 고정길이정수

임베디드 개발자는 자료형 float, double, 부동소수점(IEEE 754), 고정길이정수에 대해 잘 알고 있어야 한다. 실수 처리 방법 float float 를 출력할때는 %f를 이용한다. 소수점 7자리 까지 저장이 가능하다. 정밀도 비교적 낮고, 처리 속도는 빠르다. double float 를 출력할때는 %lf를 이용한다. 소수점 15자리 까지 저장이 가능하다. 정밀도 비교적 높고, 처리 속도는 느리다. 반올림은 다음과 같이 한다. printf("%.3lf",a); //소수점 아래 세자리까지 출력 , 네자리에서 반올림 부동소수점 float 와 double은 부동소수점이라고 하는데, 이것은 근사치로 소수점을 저장하는 것이다. 이렇게 부동 소수점을 저장하는 방식은 IEEE 754 방식이다. 예를들어 ..

임베디드 2022.04.08

[메모리] 2의 보수와 음수 처리 / 2의 보수 쓰는 이유

양수 100은 0x64이다. 메모리에는 64000000로 표시된다. (리틀 엔디안 기준) 그러면 음수 100은 어떻게 저장될까? 음수처리 일단, 음수처리를 하기 위한 단계를 알아보자. 단계 액션 결과값 1 양수 100의 값을 비트로 표현하자 0b 0110 0100 2 비트를 반전시키자 0b 1001 1011 3 비트에 +1 하자 0b 1001 1100 구하고자 하는 숫자의 양수를 비트로 표현한 것을 뒤집고 1을 더하면 구할 수 있다. 이것을 2의 보수라고도 한다. 2의 보수 먼저, 십진수에서 보수를 구해보자. 십진수 3의 보수는 7이다. (10=3+7) 그런데 컴퓨터는 이진수로 이루어져있다. 그래서 2의 보수라고 한다. 2의 보수를 구하는 방식은 음수처리 하는 방식과 동일하다. 이것은 어떤 수의 음수 =..

임베디드 2022.04.06

[메모리] 빅/리틀 엔디안 (Big/Little-Endian)

빅엔디안 / 리틀엔디안 / Big Endian / Little Endian / 엔디안 / 메모리 저장 순서 / 엔디안의 어원 / 엔디안 유래 / 메모리 저장 방식 / 임베디드 개발자 엔디안(Endian)이란? CPU가 메모리에 값을 저장할때 저장하는 순서 (바이트 순서). 바이크 단위로 표기하고, 어떤순서로 기록할 것인지에 따라 두가지가 존재한다. 빅 엔디안 (Big-endian) 사람이 읽는 순서대로 저장하기 때문에 읽기 편하다. 그래서 디버깅이 쉽다. 예를 들어, 0x12345678을 빅엔디안에서는 그대로 12345678로 저장한다. 메모리 주소 저장 값 0x0001 12 0x0002 34 0x0003 56 0x0004 78 리틀 엔디안 (Little-endian) 사람이 읽기 비교적 불편하다. by..

임베디드 2022.04.05

[리눅스] Bash 쉘 프로그래밍 : 입출력, 변수, 주석, if문

쉘에서 쓰는 언어는 생소하다. 그래서 새로 배워야함! 출력 echo 명령어를 이용한다. echo HI 입력 read 명령어를 이용한다. read input echo $input 변수 생성 변수이름=값 으로 변수를 만들 수 있다. first=100 second=200 echo $first + $second 이 코드의 출력값이 어떻게 될거 같은가? 300일 것 같지만 땡~~! 100 + 200 이 출력된다. 모든 값들은 문자열로 취급하기 때문에 주의해야한다. 그렇다면 300이 나오게 하려면 어떻게 해야할까!! $(( )) 를 이용해서 산술연산 처리를 할 수 있다. echo $(( $first + $second )) 이렇게 코드를 짜면 300이 나온다. Argument 변수 변수를 굳이 따로 생성하지 않아도 ..

임베디드 2022.04.03

[리눅스] 쉘 스크립트 : Bash Shell 시작하기, 쉬뱅

쉘 스크립트 쉘 스크립트는 쉘에서 실행하는 스크립트 프로그래밍 언어이다. if, for, 변수, 함수 등을 사용해서 프로그래밍이 가능하다. CLI Shell은 여러가지가 존재하는데, /etc/shells 에 실행가능한 쉘들이 있다. 쉘 스크립트는 주로 자동화 프로그램을 만들 때 쓴다. 매번 초기 세팅해야하는 반복작업나 설치를 쉘 스크립트로 자동화 시킬 수 있다. Bash Shell 쉘 스크립트는 ~/.bashrc에 세팅파일이 저장되어있다. vi ~/.bashrc 위 명령어를 통해서 bash 세팅을 확인하고 바꿀 수 있다. 파일명은 확장자 .sh를 포함해서 만들어주자. 쉬뱅 발음주의 쉬뱅~! 쉘 스크립트 파일 상단에 #!/bin/bash 를 입력해주어야한다. #!/bin/bash 위 코드는 Bash 로 코..

임베디드 2022.04.02

[리눅스] 터미널의 개념 : 과거와 현재 정의 비교

과거의 터미널과 현재의 터미널 개념이 사뭇 다르다. 과거 과거에는 "컴퓨터에 접속하기 위한 Text 기반 장치"로서 터미널을 정의했다. 현재 현재는 과거에 터미널이라고 불렸던 단말 장치를 SW로 구현하여 터미널을 이용하고 있다. 위와 같은 CLI 프로그램을 터미널 또는 콘솔이라고 한다. Terminator​ 터미널 에뮬리이터 중 Terminator라는 툴을 이용하기 위해 리눅스에서 sudo apt install terminator 명령어를 입력해준다. sudo apt install terminator Terminator은 화면 분할(다중 창)이 간편해서 많은 리눅스 개발자들이 사용한다고 한다.

임베디드 2022.03.27
728x90
반응형