No pain, no gain 과 같은 뜻의 한국말은 뭐가 있을까?
'Life > A sentense of the day' 카테고리의 다른 글
다르다, 틀리다 (0) | 2017.06.27 |
---|---|
Give and take (0) | 2017.06.26 |
거짓말 (0) | 2017.06.20 |
경험 (0) | 2017.06.20 |
출근 시간 (0) | 2017.06.20 |
No pain, no gain 과 같은 뜻의 한국말은 뭐가 있을까?
다르다, 틀리다 (0) | 2017.06.27 |
---|---|
Give and take (0) | 2017.06.26 |
거짓말 (0) | 2017.06.20 |
경험 (0) | 2017.06.20 |
출근 시간 (0) | 2017.06.20 |
Xilinx bootgen 을 이용해 boot.bin 파일을 생성하면,
boot.bif 에 담긴 파일들(FSBL, bitstream, u-boot)이 boot.bin 으로 합쳐진다.
따라서, 해당 파일들을 boot partition에 넣을 필요 없이,
boot.bin 만 넣어주면 문제 없이 작동한다.
AXI Register Slice (0) | 2020.02.12 |
---|---|
Verilog Generate (2) | 2018.07.05 |
Xilinx SDK disable cache (0) | 2017.06.12 |
Xilinx Vivado IP import (0) | 2017.05.31 |
Xilinx Vivado Project가 안 열릴때 (0) | 2017.05.30 |
extern keyword
일반적으로 전역 변수를 선언 하면, 한 파일 내에서 전역 변수로 접근이 가능하다.
다른 파일에서 선언된 전역 변수를 접근하기 위해서는 extern keyword 를 사용한다.
사용법은 간단하다.
전역 변수 선언 시 일반적으로 선언 하듯 선언 하고,
접근하고자 하는 다른 파일에서 data type 앞에 extern 을 선언하면, 접근이 가능하다.
int a=5;
extern int a;
printf("a=%d in other file", a);
//print result
//a=5
extern keyword 를 사용하면 다른 파일에서 접근이 가능하기 떄문에, 즉, 다른 파일에서 해당 이름의 변수를 가지고 있기 때문에
같은 이름의 변수를 두 개를 가지는 등의 의도치 않은 동작을 할 수 있다.
사용 시에 주의가 필요하다.
extern keyword 의 또다른 사용법이 있다.
C++ 파일을 사용하는데, C로 된 파일/함수 등을 include 하고 싶은 경우!
extern "C"{
#include <stdio.h>
void foo();
}
static (0) | 2018.07.13 |
---|---|
가변 인자(variable arguments) stdarg.h (0) | 2017.12.11 |
static (0) | 2017.06.20 |
Floating Point Bit 출력 방법 (0) | 2017.06.08 |
전처리기 명령어 (0) | 2017.06.07 |
static Keyword
기본적인 C/C++ 프로그래밍에서 흔히 사용하는 키워드는 아니다.
하지만, Code 가 여러 파일로 구성되고, 여러 파일에서 서로 참조하고 왔다갔다하면서 부터 사용하게 되는 keyword 일 수 있다.
static 은 정적 변수라고 하는데,
함수 내부에 선언하는 지역 변수는 그 지역이 사라지면서, 함께 사라지는데 이를 방지 하기 위한 keyword 이다.
함수 내부의 변수를 data type 앞에 static 을 붙여 선언하면, 메모리 위치에서 사라지지 않아,
다음에 함수가 call 되더라도 이전 값을 유지하고 있다.
다만 여전히 지역 변수이기 때문에, 해당 함수에서만 읽고 쓸 수 있다.
static 으로 선언한 변수의 initialize 는 처음 한 번 만 실행 된다.
void function(){
static int a = 1;
print("%d\t", a);
a++;
}
int main(){
function(); //print result : 1
function(); //print result : 2
function(); //print result : 3
return 0;
}
static (0) | 2018.07.13 |
---|---|
가변 인자(variable arguments) stdarg.h (0) | 2017.12.11 |
extern (0) | 2017.06.21 |
Floating Point Bit 출력 방법 (0) | 2017.06.08 |
전처리기 명령어 (0) | 2017.06.07 |
작은 거짓말은 어쩔 수 없이 시작되어, 큰 거짓말을 낳곤 한다.
그래서 거짓말이 나쁜 것은 아닐까?
Give and take (0) | 2017.06.26 |
---|---|
No pain, no gain (0) | 2017.06.22 |
경험 (0) | 2017.06.20 |
출근 시간 (0) | 2017.06.20 |
여행 기념품 (0) | 2017.06.16 |
경험이 중요한 것은 추후에 경험을 되살릴 수 있기 때문이기도 하지만,
통찰력을 키워주기 때문이 아닐까?
그렇기에, 간접 경험 또한 중요한 듯 하다.
No pain, no gain (0) | 2017.06.22 |
---|---|
거짓말 (0) | 2017.06.20 |
출근 시간 (0) | 2017.06.20 |
여행 기념품 (0) | 2017.06.16 |
당당함 (0) | 2017.06.15 |
Bash script 실행 할 때 Arguments 를 넣는 방법
C/C++ 에서 와 마찬가지로 Argument 순서대로 1, 2, 3, ... 으로 들어간다.(0번은 실행 스크립트 파일 이름)
달러+번호 가 해당 argument에 해당하며, argument 총 갯수는 $#으로 반환된다(여기서 argument의 총 갯수는 실행 스크립트 argument를 제외한 순수 argument 들의 갯수이다.)
실행 스크립트는 0번째 argument, 즉, $0가 된다.
if [ $# -ne 2 ]
then
echo "please input arguments"
echo "Usage:$0 <input1> <input2>
exit
fi
arg1=$1
arg2=$2
파일로 부터 읽어, Argument 를 전달 할 수 도 있다.
while read line
do
echo $line
./script $line
done < $file
※ Bash script 내 에서 실행하는 다른 script 또는 다른 실행 파일로 print 를 하는 경우 argument 로 전달 될 수 있음
Bash Script Variable Split by Space (0) | 2018.02.04 |
---|---|
Bash Script Echo (0) | 2018.02.04 |
Bash Script String (0) | 2017.07.04 |
Bash Script If statement (0) | 2017.07.04 |
Bash script sudo 권한 체크 (1) | 2017.06.19 |
Linux Time zone 변경 하는 방법
우선 date 명령어로 시스템의 시간을 확인하자
$ date
끝에 KST로 나와야 한국 시간
/etc/localtime 파일을 해당 타임존의 파일로 교체해 주면 된다. (binary 파일이라 열어도 알아볼 수는 없다.)
$ mv /etc/localtime /etc/localtime.bak
$ ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime
HandBrakeCLI (0) | 2018.04.06 |
---|---|
Linux sed (0) | 2018.02.05 |
Linux find (0) | 2018.02.04 |
Ubuntu sources.list generation (0) | 2017.09.06 |
Ubuntu Redshift (0) | 2017.07.02 |
Linux Kernel programming 을 할 때는 일반적인 printf 함수를 사용 할 수 없다.
Kernel 에서 Debugging 등을 위해 print를 하고자 하는 경우
printk 함수를 사용할 수 있다.
헤더는 linux/kernel.h
사용법은 printf 함수와 유사하다.
printk("hello world\n");
printk("a=%d\n, a);
사용법은 비슷하지만, kernel에서 print 하는 것이기 때문에 print 된 것은 userspace 에서 보이지 않는다.
따라서, 프로그램 실행 후에 dmesg 를 통해 kernel message 를 확인해야 한다.
$ dmesg
printk 사용 시 floating point number 를 print 하는 데 문제가 생길 수 있다.
undefined reference to __aeabi_f2d 라고 나오는 것은 그 때문이라고 할 수 있는데,
Floting point 자체를 지원하지 않기 때문이다.
Kernel 버전 혹은 CPU 에 따라 kernel 내부에서 floating point 를 지원하는 경우도 있고, 지원하지 않는 경우도 있다.
cross kernel debugging (0) | 2020.06.19 |
---|---|
Linux kernel module compile from linux source (0) | 2019.01.17 |
Kernel module programming (0) | 2018.05.23 |
Kernel Version Check (0) | 2018.05.23 |