'IT관련 지식들'에 해당되는 글 72건

  1. 2016.10.26 :: 우분투에서 잡히지 않은 하드 설정.
  2. 2016.09.07 :: strdup 함수
  3. 2016.09.01 :: 리눅스 파일 전송 명령어(scp)
  4. 2016.08.18 :: ubuntu mount 명령어.
  5. 2016.08.12 :: DateX-ASN.1
  6. 2016.07.26 :: gdb 디버거 사용하기.
  7. 2016.07.25 :: makefile
  8. 2016.07.25 :: gcc 컴파일러.
  9. 2016.07.07 :: 우분투에서 Git 시작하기
  10. 2016.06.30 :: 가상 머신 네트워크 설정.
IT관련 지식들 2016. 10. 26. 11:17

1. 증상 

  - Odroid보드를 사용하면서 32GByte SD메로리를 사용하였는데, 아래와 같이 32GB전체를 사용하지 못함.



2. 해결방법

  - fdisk명령어로 새로 파티션 설정.

  - 디스크 접근

  

    - add a new partition : n

      - 파티션 타입은 extended로 잡음.

      - 파티션 타입을 extended로 잡으면 이후 mkfs가 진행되지 않음. 따라서, primary로 포맷필요.

      - 파티션 번호는 기본값이 3으로 잡음.(1,2가 이미 잡혀서 3으로 잡힙)

      - 시작 섹터 : part2의 마지막 값보다 1 큰 값을 지정(10751999+1)

      - 끝 섹터 : 기본값, 최대값을 사용.

<아래 명령어 참고.>


    - check(print) the partitions : p


  - 파티션이 생겨서 저장하고 나가면 무슨 말을 함.

  - 이렇게 나옴


  - 파일시스템에 맞춰서 포맷


  - 리부팅을 하면 아래와 같이 마운트 된 것을 확인할 수 있습니다.



 - /media/odroid/ad1d2906-4962-4cf0-b5a2-4fc9d936dd43 에 마운트 되었습니다.


 - mount 위치 변경


  - 리부팅 혹은 재 마운트

or


- 확인



끝!!!








'IT관련 지식들' 카테고리의 다른 글

ccollaborator 설치(코드리뷰)  (0) 2016.10.31
Git 사용.  (0) 2016.10.26
strdup 함수  (0) 2016.09.07
리눅스 파일 전송 명령어(scp)  (0) 2016.09.01
ubuntu mount 명령어.  (0) 2016.08.18
posted by 동글동글82
:
IT관련 지식들 2016. 9. 7. 15:57

strdup 함수

- 복사할 문자열 메모리에 맞는 메모리를 확보한 후 문자열을 복사, 확보한 메모리 포인터를 반환한다.


format : char *strdup(const char *str);

parameter : char *str 복사할 문자열

return : 확보한 문자열 메모리의 첫 주소를 반환.


예제)

#include <stdio.h>
#include <string.h>

int main( void)
{
   char *ptr;
  
   ptr = strdup( "forum.falinux.com");
   printf( "%s\n", ptr);

   return 0;
}


'IT관련 지식들' 카테고리의 다른 글

Git 사용.  (0) 2016.10.26
우분투에서 잡히지 않은 하드 설정.  (0) 2016.10.26
리눅스 파일 전송 명령어(scp)  (0) 2016.09.01
ubuntu mount 명령어.  (0) 2016.08.18
DateX-ASN.1  (0) 2016.08.12
posted by 동글동글82
:
IT관련 지식들 2016. 9. 1. 13:58

우분투 시스템간 파일을 전송할 때, 간단하게 파일을 전송할 수 있다.


송신(Local -> Remote)


scp [파일명] [계정]@[주소]:[위치&파일명]


ex)

$ scp ./video_test.c odroid@192.168.128.6:/home/odroid/project/video_test.c



수신 (Remote -> Local)


scp [계정]@[주소]:[위치&파일명] [파일명]


ex)

$ scp odroid@192.168.128.6:/home/odroid/project/helloworld.c ./helloworld.c






'IT관련 지식들' 카테고리의 다른 글

우분투에서 잡히지 않은 하드 설정.  (0) 2016.10.26
strdup 함수  (0) 2016.09.07
ubuntu mount 명령어.  (0) 2016.08.18
DateX-ASN.1  (0) 2016.08.12
gdb 디버거 사용하기.  (0) 2016.07.26
posted by 동글동글82
:
IT관련 지식들 2016. 8. 18. 11:48

상황 : USB를 Insert


1. USB file 확인

> (sudo) fdisk -l


2. mount

  - standard : mount -t type device dir

> (sudo) mount vfat /dev/sdb1/ ./usb/


3. 확인

> cd usb

> ll



'IT관련 지식들' 카테고리의 다른 글

strdup 함수  (0) 2016.09.07
리눅스 파일 전송 명령어(scp)  (0) 2016.09.01
DateX-ASN.1  (0) 2016.08.12
gdb 디버거 사용하기.  (0) 2016.07.26
makefile  (0) 2016.07.25
posted by 동글동글82
:
IT관련 지식들 2016. 8. 12. 10:47

DateX-ASN.1 개념 정리


1. ASN.1

 Abstract Syntax Notation #1의 약자. 국제전기통신 연합(ITU : International Telecommunication Union)에서 정한 통신 데이터 형식 표준.


2. 관련 문서

ISO 15784 : Intelligent transport systems (ITS) — Data exchange involving roadside modules communication
   – ISO 15784-1
         - General principles and documentation framework of application profiles
          – ISO 15784-3
    - Application profile-data exchange (AP-DATEX)
KS X ISO 14827 : 교통 정보 및 제어 시스템-ITS를 위한 센터간 데이터 인터페이스
  –KS X ISO 14827-1
    • 메시지 정의 요구사항.
  –KS X ISO 14827-2

    • DATEXASN


* X.680~X.699 : ASN.1의 문법을 정의한 표준 문서.

X.680 – Basic Notation

X.681 – Information Objects

X.682 – General Constraint Notation

X.683 – Parameterization

X.690 – Basic (BER), Cannoical(CER), and Distinguished (DER) Encoding Rules

X.691 – Packed Encoding Rules (PER) 


3. ASN.1 문법

  - X680 문서에 기본 문법 참조.


ModuleDefinition ::=

ModuleIdentifier

DEFINITIONS

TagDefault

ExtensionDefault

"::="

BEGIN

ModuleBody

END

ModuleIdentifier ::=

modulereference

DefinitiveIdentifier

DefinitiveIdentifier ::=

"{" DefinitiveObjIdComponentList "}"

| empty

DefinitiveObjIdComponentList ::=

DefinitiveObjIdComponent

| DefinitiveObjIdComponent DefinitiveObjIdComponentList

...(중략)...

AssignmentList ::=

Assignment

| AssignmentList Assignment

Assignment ::=

TypeAssignment

| ValueAssignment

| XMLValueAssignment

| ValueSetTypeAssignment

| ObjectClassAssignment

| ObjectAssignment

| ObjectSetAssignment

| ParameterizedAssignment


각 모듈에서 사용할 수 있는 문법 중 다음 항목을 설명한다.

* Type Assignment : 변수의 타입을 설정.

          InventoryList {1 2 0 0 6 1} DEFINITIONS ::= BEGIN

{

ItemId ::= SEQUENCE

{

  partnumber IA5String,

  quantity INTEGER,

  wholesaleprice REAL,

  saleprice REAL

}

StoreLocation ::= ENUMERATED

{

  Baltimore (0),

  Philadelphia (1),

  Washington (2)

}

} END

* Value Assignment : 변수값을 설정

gadget ItemId ::=

{

  partnumber   "7685B2",

  quantity   73,

  wholesaleprice   13.50,

  saleprice   24.95

}


2. BER(Basic Encoding Rule)

  - DateX(Date Exchange)중 한가지 방법인 BER에 대해 설명.

  - Tag Length Value의 앞자를 따서 TLV라고도 함.

  - X.690 문서 참조.


- Structure of an encoding

 Identifier Octets

 Length Octets

Contents octets 

End-of contents Octets(생략가능) 


- 그리고 대략 다음과 같은 구조를 가짐

Seq ::= SEQUENCE {

first INTEGER,

second INTEGER }

seqVa1 Seq ::= { 10, 20 }


Tag 

Length 

Value 

 

 

 SEQUENCE

V의 길이(구조체 전체 크기)

 Tag

Length 

Value 

 

 

INTEGER 

 V의 길이

 10 

 

 

INTEGER

 V의 길이 

 20 








ASN.pptx


'IT관련 지식들' 카테고리의 다른 글

리눅스 파일 전송 명령어(scp)  (0) 2016.09.01
ubuntu mount 명령어.  (0) 2016.08.18
gdb 디버거 사용하기.  (0) 2016.07.26
makefile  (0) 2016.07.25
gcc 컴파일러.  (0) 2016.07.25
posted by 동글동글82
:
IT관련 지식들 2016. 7. 26. 13:43

# 컴파일 하면서 -g 옵션을 넣는다.


$gcc -o helloworld helloworld.c

==>

$gcc -g -o helloworld helloworld.c


단, 이때 최적화 옵션[-Oleverl]은 제거한다.


# 파일을 실행하면서 gdb로 실행한다.

$gdb ./helloworld



break point를 지정한 뒤 run 명령어로 시작한다.


# breakpoint 설정방법.


(gdb) break initTask

breakpoint를 함수명(initTask)에  설정.


(gdb) break keonamain.c:120

breakpoint를 파일(keonamain.c)의 x(120)번째 줄에 설정.


# 변수값 설정

(gdb) p gValue

변수(gValue)값을 출력

(gdb) set gsImageQueue.front=2

변수(gsImageQueue.front)값을 변경(0-->2).


# 코드보기

(gdb) list

현재 실행중이 코드를 출력.

'IT관련 지식들' 카테고리의 다른 글

ubuntu mount 명령어.  (0) 2016.08.18
DateX-ASN.1  (0) 2016.08.12
makefile  (0) 2016.07.25
gcc 컴파일러.  (0) 2016.07.25
우분투에서 Git 시작하기  (0) 2016.07.07
posted by 동글동글82
:
IT관련 지식들 2016. 7. 25. 15:55

기본적인 내용은 KLDP wiki를 참고했음.


1. makefile의 사용목적

  - 편리하게 컴파일


2. 구조.

  - <target> <depend> <command><macro>로 구성


<Target> : <Depend> ?... [[;] Command ]

/탭문자/ <Command>


<Target> 생성하려고 하는 목적물.

<Depend> Target을 만드는데 필요한 요소.

<Command> 일반 쉘 명령어. 앞에 /탭문자/를 입력하여 구분.


===== 예제 =====

test: test.o 
        ld -lc -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 \
            -o test \
            /usr/lib/crt1.o \
            /usr/lib/crti.o \
            /usr/lib/crtn.o \
            test.o 

test.o: test.c 
        cc -O2 -Wall -Werror -fomit-frame-pointer -c -o test.o test.c


3. 매크로 활용.

<Macro> 특정한 단어, 경로 등등을 미리 저장.

선언 : <Macro name> = <Macro 내용>

사용 : $(macro name)


위 내용을 다음과 같이 변환 가능

CC = cc 
LD = ld 
CFLAGS = -O2 -Wall -Werror -fomit-frame-pointer -c 
LDFLAGS = -lc -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 
STARTUP = /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtn.o 

test: test.o 
        $(LD) $(LDFLAGS) -o test $(STARTUP) test.o 

test.o: test.c 
        $(CC) $(CFLAGS) -o test.o test.c 


4. 기본 확장자 규칙

.c.o: 

  - .c파일을 .o파일로 만들기

$@

  - target

$<

  - 열거된 depend중 최 좌측 항목

$^

  - depend 전체


위 내용을 다음과 같이 변환 가능

CC = cc 
LD = ld 
CFLAGS = -O2 -Wall -Werror -fomit-frame-pointer -c 
LDFLAGS = -lc -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 
STARTUP = /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtn.o 

test: test.o 
        $(LD) $(LDFLAGS) -o $@ $(STARTUP) $^ 

.c.o: 
        $(CC) $(CFLAGS) -o $@ $<



응용 & 확장

CC = cc 
LD = ld 
RM = rm -f 
CFLAGS = -O2 -Wall -Werror -fomit-frame-pointer -v -c 
LDFLAGS = -lc -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 
STARTUP = /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtn.o 

BUILD = test 
OBJS = test.o hello.o 

.PHONY: all clean 

all: $(BUILD) 
clean: ; $(RM) *.o $(BUILD) 
test: $(OBJS) ; $(LD) $(LDFLAGS) -o $@ $(STARTUP) $^ 

# 의존관계 성립 
$(OBJS): $($@:.o=.c) hello.h Makefile 
# test.o hello.o: $($@:.o=.c) hello.h Makefile 

# 확장자 규칙 (컴파일 공통 규칙) 
.c.o: ; $(CC) $(CFLAGS) -o $@ $<


$($@:.o=.c) : 타겟의 확장자 .o를 .c로 변경


'IT관련 지식들' 카테고리의 다른 글

DateX-ASN.1  (0) 2016.08.12
gdb 디버거 사용하기.  (0) 2016.07.26
gcc 컴파일러.  (0) 2016.07.25
우분투에서 Git 시작하기  (0) 2016.07.07
가상 머신 네트워크 설정.  (0) 2016.06.30
posted by 동글동글82
:
IT관련 지식들 2016. 7. 25. 15:04

makefile을 분석하기 위해서는 먼저 gcc 컴파일에 대한 이해가 필요하다.


1. 기본동작


execute파일을 생성한다.


==== 소스코드 ====


#include <stdio.h>


int main(int argc, char** argv)

{

    printf("Hellow World\n");

    return 0;


==== 실행 예제 ====


$ gcc test.c

$./a.out

Hellow World


==== 이론 ====

1. 전처리 단계 - 전처리기 (cpp)

: #include, #define 등 #으로 시작하는 문법 사항이 적절히 전처리된 C 언어 소스파일 생성

2. 컴파일 단계 - 컴파일러 (cc1) 

: C 언어 소스파일은 컴파일 과정을 거쳐 어셈블리 소스 파일이 됨

3. 어셈블 단계 - 어셈블러 (as)

:어셈블리 소스 파일은 어셈블 과정을 거쳐 목적 파일이 됨 

4. 링크 단계 - 링커 (ld)

: 목적 코드는 라이브러리와 링크되어 실행 가능한 파일이 됨


2. 옵션

  2.1. 실행파일명 입력 [-o outfile]


$ gcc test.c -o test

$./test

Hellow World


  2.2. 오브젝트파일 생성까지만 진행 [-c] 

    - 위 이론에서 3번까지만 진행. *.o파일을 생성.

    - 각각의 오브젝트파일을 만들어 추후에 링크를 걸 경우 유용함.

ㄱ) 한번에 컴파일하는경우

$gcc -o main main.c fun1.c fun2.c


ㄴ) 나눠서 컴파일 하는 경우.

$gcc -c main.c

$gcc -c fun1.c

$gcc -c fun2.c

$gcc -o main main.o fun1.o fun2.o


    - ㄴ)의 경우 파일 하나를 고쳐서 다시 컴파일하는 경우 유리하다. 파일 하나가 아니라 모듈 단위로 컴파일 하는 경우라면 더욱 더 ㄴ)의 형태로 가는 것이 좋다.


    2.3 어셈블리까지 진행 [-s]


    2.4 최적화 수준 지정(-Olevel]

      - 숫자가 클수록 높은 최적화


    2.5 디버깅 옵션 [-g]


    2.6 추가 디파인 [-Dmacro[=defn]...]


    2.7 라이브러리 디렉토리 지정[-Ldir...]


    2.8 모든 에러 출력 [-Wwarn...] [-Wpedantic]


    2.9 추가 헤더파일 디렉토리 지정 [-Idir...]

'IT관련 지식들' 카테고리의 다른 글

gdb 디버거 사용하기.  (0) 2016.07.26
makefile  (0) 2016.07.25
우분투에서 Git 시작하기  (0) 2016.07.07
가상 머신 네트워크 설정.  (0) 2016.06.30
소켓 통신  (0) 2016.06.30
posted by 동글동글82
:
IT관련 지식들 2016. 7. 7. 16:10

ubuntu 14.04에서 git 시작하기


1. 프로그램 다운로드

~/$ sudo apt-get install git qgit gitk git-svn


2. 사용자 등록

~/$ git config --global user.name "kangmin" 

~/$ git config --global user.email "kangmini82@gmail.com"


3. 초기화

~/$mkdir gitrepository

~/gitrepository$ git init


4. 사용하는 프로그램 등록 및 동기화

~/project$mkdir gitrepository

~/project/gitrepository$git clone ~/gitrepository/

~/project/gitrepository$git add *

~/project/gitrepository$git commit -m "Working all thread"


* GUI 환경

~/project/gitrepository$gitk


관련사이트

https://git-scm.com/book/ko/v2

https://rogerdudler.github.io/git-guide/index.ko.html

'IT관련 지식들' 카테고리의 다른 글

makefile  (0) 2016.07.25
gcc 컴파일러.  (0) 2016.07.25
가상 머신 네트워크 설정.  (0) 2016.06.30
소켓 통신  (0) 2016.06.30
싸이로드 세미나(카메라)  (0) 2016.06.30
posted by 동글동글82
:
IT관련 지식들 2016. 6. 30. 16:42

가상 머신의 네트워크 설정은 다음과 같다.


1. NAT(Network Address Translation)

  - PC가 IP공유기 역할을 수행한다.

  - 가상머신은 내부 네트워크를 사용하며 PC와는 다른 대역의 IP를 부여한다.  

    ex) PC : 192.168.0.2 , 가상머신 ; 10.0.0.2


2. 브릿지

  - 가상머신은 PC와 동등한 PC로 인식한다.

  - PC와 같은 대역의 IP를 부여받는다.

    ex) PC : 192.168.0.2 , 가상머신 : 192.168.0.3


3. Host only.

  - 가상머신은 인터넷을 할 수 없다.

    ex) PC : 192.168.0.2 , 가상머신 : IP 없음.


버추얼 머신 5.0.20을 설치하면 이외에 NAT 네트워크, 내부네크워크, 일반 드라이버 3가지 메뉴가 더 있다. 이에 대해서는 실험을 해 본 후 추가한다.

'IT관련 지식들' 카테고리의 다른 글

gcc 컴파일러.  (0) 2016.07.25
우분투에서 Git 시작하기  (0) 2016.07.07
소켓 통신  (0) 2016.06.30
싸이로드 세미나(카메라)  (0) 2016.06.30
UML(Unified Modeling Language).  (0) 2016.06.20
posted by 동글동글82
: