본문 바로가기

Job Notes/Embedded System & RTOS

(19)
cygwin 1.7 Pathname warning Cygwin 1.7 설치 후 아래와 같은 warning 발생 시 cygwin warning: ms-dos style path detected 시스템 등록정보 -> 고급 -> 환경변수 ->시스템 변수 -> 새로 만들기 변수: CYGWIN 값: nodosfilewarning 추가
linked list 사용 예 #include "linux/list.h" typedef struct { struct list_head ListHead; fs_enum_data_type data_info; U16 ino; U16 index; } DirInfo_List; struct list_head g_DirListHead; DirInfo_List *gp_CurrentDirList; S32 DirListInsert(DirInfo_List *dir_list ) { struct list_head *tmp; int i = 0; if (!dir_list->index) { list_add_tail(&dir_list->ListHead, &g_DirListHead); return 0; } else { list_for_each(tmp, &g_DirL..
1. Embedded System 이란? 1 Embedded System 이란? RTOS(Real Time OS)를 논하기 이전에 우리는 먼저 Embedded System 이란 무엇인가를 정의해야 한다. 이유는 이후에 설명할 를 Embedded System 이란 말과 혼용하는 데서 생기는 오용을 막기 위함이다. 쉽게 말하면, Embedded System 은 RTOS 를 포함한다고 볼 수 있다. 즉, 모든 RTOS 를 사용하는 system 은 전부 embedded system 이라고 볼 수 있다. 하지만, 이것 자체로는 정확한 정의가 아니다. 만약 PC 같은 곳에 RTOS 를 사용해서 window 와 같은 것을 만들었다고 했을 때, 이것을 embedded system 으로 볼 것인가라는 문제가 생긴다. 즉, Embedded System 이란 PC..
연결 리스트 (Linked list) 연결 리스트 17.1 내장된 참조(Embedded references) 우리는 다른 객체를 참조하는 속성들의 예를 본 바 있습니다. 이것을 내장된 참조(embedded references)라고 부릅니다 (Section 12.8 참조). 일반적인 데이타 구조인 연결 리스트(linked list)가 이 특징을 이용합니다. 연결 리스트는 노드(nodes)로 구성되는데, 각 노드는 리스트에서 다음 노드에 대한 참조점을 포함합니다. 게다가, 각 노드는 카르고(cargo)라고 부르는 한 단위의 데이타를 포함합니다. 연결 리스트는 재귀적인 정의를 가지기 때문에 재귀 데이타 구조(recursive data structure)로 간주됩니다. 연결 리스트는 다음과 같이: None으로 표현되는, 비어있는 리스트이거나, 카르..
Double Linked-list (이중 연결 리스트) * 이중 연결 리스트 • list_head라는 자료 구조를 이용하여 구현 • list_head는 전체 자료 구조가 아닌 list_head 필드의 주소를 저장 • LIST_HEAD(list_name) : 리스트를 새로 만듬 • list_add(n,p) : p가 가리키는 요소 다음에 n을 가리키는 요소 삽입 • list_add_tail(n,h) : 첫번째 요소의 주소인 h로 지정한 리스트의 맨 끝에 n이 가리키는 요소 삽입 • list_del(p) : p가 가리키는 요소 삭제 • list_empty(p) : 첫번째 요소의 주소로 지정한 리스트가 비어 있는지 검사 • list_entry(p, t, f) : 이름이 f고 주소가 p인 list_head 필드를 포함한 t타입 자료 구조의 주소 반환 • list_fo..
list_head를 사용하는 이유 리눅스 커널 Q&A 게시판 펌 (http://linux.flyduck.com/cgi-bin/webboard/wwwboard.cgi?db=lkqna&mode=read&num=1587&page=9&ftype=6&fval=&backdepth=1) >옛날 커널에서는 prev , next를 사용했었는데 >요즘에는 list_head 를 사용하는것같습니다. >list_head를 사용하는 이유는 무엇인지 궁금합니다. >prev,next를 쓰는것이 더 직관적이지 않을까요? 2.4 커널에서부터 linked list 구현이 아주 일반화되어서 쉽게 linked list를 만들 수 있는데, list_head는 이 linked list head를 정의하는 자료구조라고 이해하면 될 것 같습니다. list_head만 있으면 link..
Linux linked list 리눅스 커널에서 쓰는 linked list 의 해더 파일이다. 범용으로 쓰기위해 양방향 연결리스트로 선언했고. 더미로 연리스리스트 head 를 선언하였다. 연결리스트 add 를 하다보면 header와 함께 환영 양방향 연결리스트로 구성이되고 prev , next 로 접근함에 따라 stack 방식/ que 방식의 메모리 접근가능. for루프로 한쪽방향으로 계속 따라 들어가서 접근방식. malloc으로 메모리 할당은 안했으므로.. 단순 stack 메모리에 잡힐수도, malloc으로 사용자 메모리에 쓸수도 있는것이다.? del 로 링크리스트 끊는 역할만 하므로 메모리는 약간의 낭비가 있을듯하다.? list_entry 역할.. list 연결리스트의 주소만 갖고 해당 스트럭쳐의 주소를 반환받을수있다. (어느 형태..
[번역] GNU 일반 공중 사용 허가서 (GNU General Public License) GNU 일반 공중 사용 허가서 [ 영어 | 한국어 ] GPL 위반이라고 생각되는 상황을 보았을 때 해야 할 일 GPL 번역문 GPL에 대한 빈번한 질문들 This is an unofficial translation of the GNU General Public License into Korean. It was not published by the Free Software Foundation, and does not legally state the distribution terms for software that uses the GNU GPL -- only the original English text of the GNU GPL does that. However, I hope that this transl..