반응형

전체 글 118

- 비트 연산자 -

-2-다.비트 연산자 비트 연산자는 논리 연산자와 비슷하지만 비트를 연산 대상으로 한다는 점이 조금 다르다. 비트(bit)란 기억 장치의 최소 단위로서 1 또는 0을 기억하며 8개의 비트가 모여야 1바이트가 된다. 32비트의 정수 1234는 16진수로는 0x4d2이며 메모리에 다음과 같이 기억된다. 32비트이므로 32개의 비트가 있고 이 각각의 비트가 1이나 0을 기억함으로써 1234라는 숫자 하나를 저장하는 것이다. 비트 연산자는 이 그림에서 각 격자인 비트들을 대상으로 조작을 한다. 비트가 연산대상이라는 말은 두 피연산자의 대응되는 비트끼리 연산해서 그 결과를 리턴한다는 뜻이다. 일상 생활에서 쓰는 십진수와는 다른 이진수 차원의 연산이라 다소 어려운 것처럼 보이겠지만 막상 다 이해하고 나면 이진수만큼..

C 2010.10.18

- goto문 -

일단 goto문의 가장 큰 단점은 프로그램의 흐름을 복잡하게 만든다. goto문의 사용은 가급적 자제하는 것이 좋다는 의견이 많다. goto문은 이동할 위치를 지정 해놓고 지정된곳으로 이동시켜주는 함수이다. 이동할 위치를 의미하는 레이블을 선언 해야하며 goto문을 통해서 이동할 레이블을 지정 해주면 되는 것이다. 예를한번 보자.ㄴ #include int main() { int num; printf("숫자 입력 : "); scanf(%d", &num); if(num == 1) goto label1; //label1이라는 레이블로 이동하라는 의미이다. elseif(num == 2) goto label2; //label2이라는 레이블로 이동하라는 의미이다. else goto label3; //label3이라..

C 2010.10.18

[업무일지]20101004-임종현

@Lowlevel.c@ void lowlevel_init(void) //16line 선택적 컴파일 { unsigned char i = 0; /////////////////////////////////////////////////////////////////////////// // EFC Init /////////////////////////////////////////////////////////////////////////// #ifdef AT91SAM7S512 //선택적 컴파일--AT91SAM7S512가 define(정의)되면 밑에 두줄을 포함한다.. AT91C_BASE_MC->MC0_FMR = AT91C_MC_FWS_1FWS; // 1 Wait State to work at 48MHz AT91C_B..

School Study 2010.10.18

[업무일지]20100930-임종현

오전- Android- •arItem 컬렉션을 초기화하고 어댑터에 전달, 리스트 뷰와 연결한다. •어댑터는 원본을 읽어 타입에 맞는 뷰를 생성하고, 리스트 뷰는 리턴된 뷰를 표시한다. ============================================================= public class ListOfViews extends Activity { ArrayList arItem; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedIntanceState); setContentView(R.layout.listtest); arItem = new ArrayList(); arItem.add(new ListItem(0..

School Study 2010.09.30

[업무일지]20100928

dlr => 어셈블러 명령어 LDR은 load 명령이다. LDR에는 불러오는 변수의 크기에 따라 LDRB, LDRH, LDR의 세가지 종류가 있다. LDRB는 byte 변수를 불러올 때, LDRH는 short 변수를 불러올 때, LDR은 int 변수를 불어올 때 쓴다. STR는 store 명령으로 마찬가지로 STRB, STRH, STR 이 있다. 첫 번째 인자는 레지스터가 두번 째 인자는 주소가 된다. 세 번째 인자는 load/store 연 산을 한 다음 주소값을 증가시키고자 할 때, 얼마만큼 증가시킬 지를 지정한다. ==================================================================== b => 중계(branch) ====================..

School Study 2010.09.29

====가상주소====

● 가상주소 가상 메모리는 컴퓨터와 운영체계에 의해 구현되는 개념으로서 가상의 주소 공간을 할당하여 대단히 큰 용량의 메모리나 데이터 저장공간을 사용할 수 있도록 만든다. 또 한 가상 메모리 기법으로 제공되는 주소공간으로서, 프로세스의 관점에서 사용하는 주소이다.오늘날 대부분의 운영체제에는 가상 메모리 기법이 적용되어 있다. 가상메모리에서의 주소공간 즉 가상주소 공간은 프로세스가 참조할 수 있는 주소들의 범위이며, 하나의 프로세스 당 하나의 가상주소 공간이 주어진다. 일반적으로 스레드는 프로세스 내의 주소 공간을 공유한다. 주소 공간의 크기는 주소버스(Address Bus)의 크기에 따라 달라진다. 예를 들어 주소 버스가 32비트인 시스템에서 주소 공간의 크기는 232개의 서로 다른 주소에 대한 식별자를..

Linux 커널 2010.09.28

makefile분석

#----------------------------- # 2008 Mecha Cource - By CM WC, 2008.09.10. // 주석처리.. makefile에 대한 설명 #----------------------------- ifndef ERASE_FCT // ERASE_FCT가 정의되어있지 않다면 5번 줄을 실행해라라는 뜻. ERASE_FCT=rm -rf // -r은 지울 때 물어보지 않게 -f는 지울수 있는건 다지워라라는 뜻. endif // ifndef ERASE_FCT의 끝 ifndef WCCROSS_COMPILE // WCCROSS_COMPILE이 정의 되어있지 않다면 8번 줄을 실행해라 WCCROSS_COMPILE=arm-elf- endif // WCCROSS_COMPILE의 끝 W..

Linux 커널 2010.09.28

source insight 프로젝트 생성하기

source insight 프로젝트 생성하기 생성하기에 앞서 소스인사이트에서 ARM 기반을 디폴트로 없기 때문에 언어 정보를 추가해야한다. 위에 첨부된 파일 GCC,ADS를 지원하는 파일을 사용하자. Options-> Preferences 에서 import을 클릭해서 위의 파일을 import 시킨다. 그러면 윗처럼 ARM9.....생성이 된다. Options-> Document options에서 Add type을 클릭하고type 이름 설정 그리고 File filter에서 *.s;*.S등을 성정하고 parsing에서 import한 언어를 추가하자 언어추가 설정이 끝났다.(ARM언어를 추가하지 않으면 심볼을 찾을수 없다.) 이제부터 프로젝트을 생성하자. project -> new project 원하는 프로젝..

Linux 커널 2010.09.28

u-boot

u-boot은 부트로더다. 그럼 부트로더란? 간단하게 말해 특정 cpu에 OS 혹은 어떤 프로그램을 돌릴 수 있도록 cpu가 동작하는데 필요한 아주 기초적인 부분이나 ROM(or flash),RAM,UART 등의 기본적인 디바이스들을 동작할 수 있게 만드는 프로그램이다. 그래서 인텔 관련 보드(x86)에서 말하는 BIOS와 리눅스에서 많이 쓰이는 LILO(Linux Loader)를 결합한 것이라고 생각하면 이해가 쉽다. 부트로더의 종류로는 LILO,GNU GRUB,ARMBOOT, BLOB, bootldr, PPCBOOT, RedBOOT,Angel 등이 있는데 오드로이드에서 사용하는 부트로더는 u-boot이다. LILO와 GEUB에 대해서는 수업에서 CM이 이야기 했듯이 LILO를 대체하기 위해 GRUB이..

Linux 커널 2010.09.28

[업무일지]20100920

Exception vector table Exception이 발생하면 미리 정해진 어드레스의 프로그램을 수행하는데, 이 어드레스를 Exception Vector라 하고, 각각의 Exception에 대해서 Exception Vector를 정의해 놓은 테이블을 Exception Vector Table이라 한다. .lds arm exception 은 이벤트이다. 실행하기 위한 코드영역의 주소- main 함수의 주소를 cpu에 저장하는데 그 공간을 pc(program count) 혹은 IP(Instruction pointer)라 한다. 16bit이전은 IP라 했지만 지금은 32bit 체제로 바뀌고 나서는 EIP(Extended Instruction pointer)라 쓴다. ex) reset이 되면 cpu의 pc..

School Study 2010.09.20

[업무일지]20100909

리눅스 네트워크 설정방법(고정 IP) 네트워크 선택 사용할 고정IP주소를 입력하고 reboot을 해야 적용이 된다. 네트워크만 reboot하여 적용 할 수도 있다. "/etc/init.d/network restart"를 입력하면 랜카드만 껏다켜서 갱신된 네트워크를 적용 할 수 있다 갱신된 IPAddress이다. 주소는 TCP/IP 등록정보에서 확인 할 수 있다. FTP로 접속하여 다운받기 zterm_141.exe 리눅스 ftp에서 다운받기 bin은 바이너리 모드인 것 같음.? get이라는 명령어로 공유폴더로 다운로드 한다. zterm으로 리눅스서버에 접속하기 위해서 다음과 같은 설정을 해줘야한다. setup을 한 다음 network service로 들어가 telnet에 체크를 하고 빠져나온다. 그다음 다..

School Study 2010.09.09

리눅스 명령어

●리눅스의 특징 -Server System으로 운영적합 -ID와 PASSWD가 필요 -Root User (super user ): default user 계정및 시스템관리 -각 사용자별 home directory 존재 -각 사용자별 환경설정파일 존재( .bashrc .bash_profile .bash_logout ) -다양한 network protocol 지원 -신속한 개발, 자유로운 변형가능 : Open Source -multi-user & multi-job system ●부트 디스크 생성 방법 ①#mount -t iso9660 /dev/cdrom /mnt/cdrom ②#cd /mnt/cdrom ③#cd images ④#dd if=booting of=/dev/fd0 rbs=1440k ●IP 설정하기 ①..

Linux 커널 2010.09.07

리눅스 vi 사용법

1. vi란? 리눅스나 유닉스를 처음 접하는 사람에게 vi는 매우 골치아픈 존재이다. 도스나 윈도우에서 문서 편집기를 써 본 사람에게는 vi는 매우 불편한 편집기로 생각될 것이다. 그러나 내가 아는 한 vi만큼 가볍고 편하게 쓸 수 있는 편집기는 지구상에는 없다! `가볍고'라는 단어를 붙인 이유는 이맥스(emacs)라는 편집기를 쓰는 사람이 항의할 것이 걱정되기 때문이다. 이맥스는 호랑이 담배피던 시절부터 가장 똑똑한 에디터로 군림해 왔다. 그러나 프로그램 크기만도 수십메가에 달하고 설치되어 있지 않은 경우도 많다. 하지만 대부분의 유닉스 계열 시스템이라면 vi는 십중팔구 설치되어 있을 것이다. 따라서 한번 익혀두면 여러모로 편리하게 쓸 수 있다. vi라는 이름은 `VIsual display editor..

Linux 커널 2010.09.07

저수준 입출력 함수

저수준 파일 입출력 -파일을 융통성있고 빠르게 처리하려면 버퍼와 카운터, 파일포인터를 직접서술하는 저수준언어의 입출력 함수를 취급해야한다. 저수준 화일 입출력 함수들 fd = open("화일 이름 , 액세스 방식\[, 모드\]); /\* 화일이 있으면 그 내용을 지우고 없으면 생성, fopen의 "w"와 같음 \*/ fd = open("data.dat", O_WRONLY \| O_CREAT \| O_APPEND, 모드); /\* 화일이 있으면 그 끝으로 이동하고 없으면 생성, fopen의 "a"와 같음 \*/ fprintf(stderr,"Error: Cannot open data.dat\n"); : 저수준의 화일 입출력에서는 FILE이란 구조 대신 간단하게 각 화일마다 번호를 사용하는데, 이를 화일 식별..

Linux 커널 2010.09.07
반응형