검색결과 리스트
글
20130423
________논리회로___________________________________________________________________________
전가산기(Full Adder) |
|
|
|
___________________________________________________________________________________________________
______ ARM________________________________________________________________________________________
ldr PC, = reset_handler | ||
※ ld (load) , r = (resister) => 레지스터에 로드하라 ※ PC(program counter) : code 영역의 주소를 넘겨주는 레지스터 (다음에 실행할 명령의 로케이션이 기억되어있는 레지스터) (ARM : PC , INTEL : IP(Instruction porint), EIP(Extended Instruction porint[32비트 이상])
| ||
어셈블리어 또는 cstartup.s , lowlevel.c , elf32-littlearm.lds 설명 | ||
※ cstartup.s (어셈블리어 파일) ※ CPU는 reset 할때마다 읽어들이는 특정주소가 있음. (ARM의 경우는 0번지) ※ lowlevel_init 함수는 ARM을 깨우는 함수 ※ PLL(phase locked loop) : 기본적으로는 입력된 주파수와 같은 주파수로 VCO 발진하는 회로이다. 분주기(주파수를 1/n으로 하는 것)를 넣으면 VCO는 입력 주파수의 n배로 발진한다. ※ 체배기 : 입력 주파수의 정수배가 되는 주파수의 출력을 꺼내는 회로 ※ Vector table(벡터 테이블) : 점프할수 있도록 점프 위치를 모아 정리해 놓은것 ※ Elf32-littlearm.lds (링커가 쓰는 파일) , elf 는 파일을 저장하는 방식 ※ ENTRY point (진입점) : 예> main함수 ※ 메모리의 code영역을 임베디드에서는 text라고도 부름
|
______________________________________________________________________________________________________
_________C 수업__________________________________________________________________________________
임시변수(temp) 를 이용한 연결 리스트의 작성 |
#include <stdio.h>
typedef struct node
int main() { list = (NODE *) malloc (sizeof(NODE)); // 동적할당 받아 그 주소를 list에 넣는다 list->data ='a'; temp = list; // temp 에 첫번째 동적할당 받은 주소를 넣는다 temp->next = (NODE *) malloc (sizeof(NODE)); // 첫번째 동적할당받은 곳의 next에 두번째 동적할당받는다 temp = temp->next; // temp 에 두번째 동적할당받은 주소를 넣는다 temp->data = 'b'; temp->next = (NODE *) malloc (sizeof(NODE)); // 두번째 동적할당 받은 곳의 next에 세번째 동적할당 받는다 temp = temp->next; // temp 에 세번째 동적할당받은 주소를 넣는다 temp->data = 'c'; temp->next = NULL; // 세번째 동적할당 받은 next에 NULL을 넣는다. temp = list; // temp에 첫번째 동적할당 받은 주소를 다시 넣는다.
while(temp != NULL) } return 0 ; } |
반복문을 이용한 연결리스트 |
#include <stdio.h>
typedef struct node
}NODE;
FILE *fp; char ch;
if((fp = fopen ("d10-5.dat", "r")) == NULL)
fscanf(fp, "%c", &ch); // 파일에서 문자 읽어들인다
while(!feof(fp)) // 파일의 끝을 만날때 까지 계속 temp->data = ch; // 동적할당 받은 곳의 data에 파일에서 읽어들인 문자 넣는다 temp->next = list; // 동적할당 받은 곳의 next에 list 값을 넣는다 list = temp; // list 에 temp값 넣는다 // 맨 처음 만들어진 동적할당의 next에는 NULL이 있게됨. fscanf(fp, "%c", &ch); // 파일에서 다음 문자를 읽어들인다
while(temp != NULL) temp = temp->next; printf("NULL\n"); while(temp != NULL) return 0; }
|
연결리스트를 인수로 넘겨받아 내용을 출력하는 함수 |
#include <stdio.h>
typedef struct node
}NODE;
void print_list (NODE *);
FILE *fp; char ch;
if((fp = fopen ("d10-5.dat", "r")) == NULL)
fscanf(fp, "%c", &ch);
while(!feof(fp)) temp->data = ch; temp->next = list; list = temp; fscanf(fp, "%c", &ch); fclose(fp);
print_list(list); // print_list 함수 호출
temp = list; while(temp != NULL)
return 0; }
// list에 있는 동적할당 주소를 넘겨받아 void print_list (NODE *head) // NULL 이 나올때까지 연결된 리스트를 따라가며 data변수안의 값을 출력해준다 } |
_______________________________________________________________________________________________________
_____실습파일__________
_______________________