
- 장치들을 파일로 관리(VFS)하여 입/출력 한다 - LDD(linux device driver) - 어플리케이션이 파일을 통해 입/출력을 하면 LDD가 실질적으로 입/출력 한다 - .bashrc에 arm gcc 경로 추가 - built-in.o 각 디렉토리의 obj를 합한 것 - 드라이버 정보 매크로 사용 __init macro : 초기화시 한번만 사용하고 메모리 free __initdata : 초기변수에 대해 위와 유사 __exit : 모듈이 커널에 삽입시 생략 # 모듈만들고 컴파일해서 실행까지(8-49p) hello_4.c #include #include //모듈 매개변수 사용 #include #include #include MODULE_LICENSE("GPL"); //모듈의 라이센스 MODULE..

- $ uname -a // system 정보를 출력한다 - https://kernelnewbies.org/LinuxVersions //리눅스 버전별로 정리되어 있다 - bsp(board support package) ex) 1. 삼성에서 s2c2450 cpu를 개발 2. cpu의 테스트를 위해 evaluation board를 만듬 - G2450_kernel을 samba에 옮겨서 실습 진행 ### toolchain 만들기 0. http://crosstool-ng.org 에서 crosstool-ng를 다운로드 1. $ cd /work/G2450_kernel/06_class/toolchain 1-1. $ tar xfj crosstool-ng-1.16.0.tar.bz2 2. $ sudo apt-get inst..

1. 베이스에 전압이 인가되어서 TR ON 2. 컬렉터에 전류가 흐르면서 1차에 - 전압이 유기되고 베이스의 전류가 줄게되어 TR OFF 3. 2차의 코일에 역기전력이 발생하게 되고 LED ON 4. 저장된 에너지를 다 쓰게 되면 베이스로 유기되는 - 전압도 없어지게 되어 베이스에는 다시 전류가 흘러서 TR ON -> LED OFF 5. 이 과정을 빠르게 반복한다. - 출처 https://en.wikipedia.org/wiki/Joule_thief https://www.instructables.com/id/Joule-Thief-Circuit-How-to-Make-and-Circuit-Explan/

(월) - 부트로더 , 커널, 유틸리티 - GPL : 리눅스의 커널은 수정시 꼭 공개해야 함 - rc(runtime configuration) - 리눅스 명령어 1. cd / : 최상위 디렉토리 2. pwd : 현재 경로 3. cd : root 디렉토리 4. mkdir 폴더명 : 디렉토리 생성 5. cd /mnt/hgfs/ : vmware 설정에서 공유한 폴더 6. tar xzf 파일명 : 압축 풀기 7. cd - : 이전 디렉토리로 이동 8. du -h 폴더명 : 해당 폴더의 용량 확인 - 1. 툴체인(2,3,4를 binary로 만들때 사용하는 컴파일러) 2. mds2450 포팅된 커널 3. root file system(root에 마운트되어 있는 file system) 4. 부트로더 - ctags 1..

(월) - 어셈블리어를 모르고 c만 가지고는 절름발이와 같다. - 어셈블리어는 코딩하자고 배우기 보단 체계, 마인드를 갖추기 위해 배운다고 생각하자. - 보조기억장치(HDD,SSD)에 있는 프로그램은 주기억 장치(RAM)로 로딩되어야 실행할 수 있다. - 레지스터는 CPU 내부에 들어 있다. 단순한 저장장치가 아니라 연산시 필요하다 - MOV R0, #1 // 상수는 #(샾,해시태그)을 사용한다. INSTRUCTION (OP CODE) OPERAND MOV R0 #1 machine code로 바이너리화(32bit) 된다. 이 machine code에는 인스트럭션과 오퍼랜드에 대한게 들어 있다. - 포팅 : 다른 플랫폼에 프로그램을 이식하는 것 - .Aligned access unsigned long *p..

1. MMU는 메모리 관리의 핵심적인 역할(가상 메모리와 실제 메모리사이에서 주소 변환)을 한다. 2. CPU에서 memory를 access하기 위해 virtual address를 발생하면 MMU는 이 virtual address를 받아서 page table(가상과 실제 메모리를 연결하는 table)을 통해 physical address에 access 한다. memory는 해당 physical address안의 data를 출력하여 cpu에게 전달 한다. 2-1. table이 존재하는 위치는 TTB(Translation table base address)라고 해서 MMU의 레지스터 중 하나에 저장되어 있다. table은 외부 memory에 존재 한다. or MCU내부 TCM memory에 위치시킬 수도 있..

(월) - cygwin 밑에 exercise.esu.tar 옮기고 cygwin에서 tar xf exercise.esu.tar 입력 - tar : 파일을 뭉쳐 놓은 것 tar xf exercise.esu.tar : 파일을 푸는 것 tar tf exercise.esu.tar : 내용물을 보는 것 - Makefile 수정 - make clean : 만들어 둔 것을 지움 make -f Makefile : make가 Makefile을 실행 make : 이렇게만 쓰면 기본적으론 makefile or Makefile을 찾음(Makefile이 우선순위가 높다) - . -gcc 컴파일러, -ld는 링커 . .c를 .o로 만듬 -> RAMs.ld, .o를 모아서 image로 만듬 . image에서 image.bin을 추출..