검색어 입력폼

[프로그래밍]Linux 기반 C프로그래밍 및 임베디드 시스템 구축 실험 리포트

저작시기 2005.11 |등록일 2006.05.28 파일확장자압축파일 (zip) | 14페이지 | 무료

소개글

한학기동안 리눅스환경에서의 C 와 레고 센서 및 엑츄에이터를 이용하여
임베디드 시스템에 대해 실험한 리포트 입니다.
기본적인 리눅스 사용법에서 부터
리눅스 환경에서 C 프로그래밍에 대한 전반적인 내용이 담겨져 있습니다.
IPC, 세마포어 및 동기화, 멀티 프로세스/쓰레드를 비롯하여
기본적이나마 디바이스 드라이버 작성에 관한 내용도 포함되어있습니다.

실험레포트는 영어로 쓰여져 있으나 제가 쓴 것이라 그저 단어 나열일 뿐이라
해석하시는데 큰 어려움은 거의 없으실 겁니다. :)

목차

Week 1. Shell Programing
Week 2. Usage of Make and Debugger
Week 3. Process and Thread
Week 4. Synchronization and IPC / Sensor and Actuator Interfacing
Week 5. ISA Based Lego Control Board
Week 6. Kernel programming and Device Driver
Week 7. Device Driver for Lego ISA Board
Week 8. Lego board control using API
Week 9. Green House Project

본문내용

임베디드 시스템의 가장 기본 기술인 컴퓨터와 외부 장치를 연결하는 데 필요한 하드웨어와 소프트웨어 기술을 학습하고 정보기기, 산업기기등 임베디드 컴퓨터 시스템에 공통적으로 널리 사용되는 컴퓨터 I/O 인터페이스 하드웨어 및 관련 디바이스 드라이버등 하드웨어와 소프트웨어를 함께 설계하는 방법을
이론과 실험을 통하여 학습한다.

우선 Linux 기반에서 GNU 개발 도구(Vi,GDB,Make)에 대한 사용법을 숙지하고, PC 하드웨어 구조 학습, 논리회로를 이용하여 센서와 모터제어 하는 방법,Linux 시스템 프로그래밍, ISA 인터페이스 설계, I/O 디바이스 드라이버 제작 실습, 커널 프로그래밍, Web 기반 원격 제어 및 계측 GUI 제작 기법등
(이상 강의계획서에서)
----------------------------------------------------------------------------------------
Week 5. ISA Based Lego Control Board

The purpose of the practice

1. To know how lego control board works.

2. Learn how we set the lego control board`s interrupt and DMA.

3. And learn the usage of lego control board device driver.

4. Also we learn how we use the lego API a little.


Progress of the practice

Lego Control Board Setup

Boot the linux and see `LILO boot:`
After login run $cat /proc/interrupts
$ cat /proc/interrupts >> interrupts.txt


-> /proc/interrupts file shows that the number of interrupts, the count of interrupts occur, and list of interrupt handling module.


∼ Run $ cat /proc/stat
$cat /proc/stat >> stat.txt

-> /proc/stat shows that the entire system state. The item `intr` shows the count of interrupt.

By /proc/ioports and /proc/dma, confirm the io port and dma.
$ cat /proc/ioports >> ioport.txt


$ cat /proc/dma >> dma.txt


Setting the board with value that find 1∼6.
-> The board is in the case, we cannot touch the board so we use the board configurated before.

Reboot the machine again. And boot with rtlinux.

[HomeWork.1] What is LILO?
LILO(LInux LOader) is one kind of boot loader. Boot loader is the program that make enable to multi boot. When we want use various Operating Systems, by the boot loader we can select and boot the OS we want.
Above [1]-7, we boot the rtlinux 3.0 with LILO. It is a good example of using boot loader. There are other boot loaders like GRUB.

압축파일 내 파일목록

Week1/.bashrc
Week1/rec.h
Week1/rec1.c
Week1/rec2.c
Week1/rec3.c
Week1/recshell2
Week1/recshell3
Week1/recshell4
Week1/square1.txt
Week1/square2.txt
Week1/Thumbs.db
Week1/tri
Week1/tri.c
Week1/tri1.c
Week1/tri1.o
Week1 보고서/1-1.jpg
Week1 보고서/1-2.jpg
Week1 보고서/1-3-1.jpg
Week1 보고서/1-3-2.jpg
Week1 보고서/1-4.jpg
Week1 보고서/1-5-1.jpg
Week1 보고서/1-5-2.jpg
Week1 보고서/1-6-1.jpg
Week1 보고서/1-6-2.jpg
Week1 보고서/1-6-3.jpg
Week1 보고서/2-1.jpg
Week1 보고서/2-3.jpg
Week1 보고서/2-4.jpg
Week1 보고서/2-5.jpg
Week1 보고서/2-7.jpg
Week1 보고서/2-8.jpg
Week1 보고서/2-9.jpg
Week1 보고서/3-1.jpg
Week1 보고서/3-2.jpg
Week1 보고서/3-3.jpg
Week1 보고서/Thumbs.db
Week1 보고서/Week1.hwp
Week2/librc.a
Week2/Makefile
Week2/rec.h
Week2/rec1
Week2/rec1.c
Week2/rec2.c
Week2/rec3.c
Week2/rec4.c
Week2/rec4.o
Week2/rec5
Week2/rec5.c
Week2/rect
Week2/Prac3/-g
Week2/Prac3/hw1
Week2/Prac3/hw1.c
Week2/Prac3/P3_1
Week2/Prac3/P3_1.c
Week2/Prac3/test01
Week2/Prac3/test01.c
Week2 보고서/1-1.jpg
Week2 보고서/1-3-1.jpg
Week2 보고서/1-3-2.jpg
Week2 보고서/1-3-3.jpg
Week2 보고서/1-3-4.jpg
Week2 보고서/1-3-5-1.jpg
Week2 보고서/1-3-5-2.jpg
Week2 보고서/1-3-6.jpg
Week2 보고서/1-3-7.jpg
Week2 보고서/1-4-1.jpg
Week2 보고서/1-4-2.jpg
Week2 보고서/2-1.jpg
Week2 보고서/2-3-0.jpg
Week2 보고서/2-3-1.jpg
Week2 보고서/2-3-2-1.jpg
Week2 보고서/2-3-2-2.jpg
Week2 보고서/2-3-2-3.jpg
Week2 보고서/2-3-3-a.jpg
Week2 보고서/2-3-3-b.jpg
Week2 보고서/2-3-3-c.jpg
Week2 보고서/2-3-4.jpg
Week2 보고서/2-4-1.jpg
Week2 보고서/2-4-2.jpg
Week2 보고서/2-4-3.jpg
Week2 보고서/2-4-4.jpg
Week2 보고서/2-4-5.jpg
Week2 보고서/2-5-1.jpg
Week2 보고서/2-5-2.jpg
Week2 보고서/2-5-3.jpg
Week2 보고서/2-5-4.jpg
Week2 보고서/2-5-5.jpg
Week2 보고서/2-5-6.jpg
Week2 보고서/2-5-7.jpg
Week2 보고서/2-5-8.jpg
Week2 보고서/2-5-9.jpg
Week2 보고서/Thumbs.db
Week2 보고서/Week2.hwp
Week3/ahw
Week3/alarm
Week3/alarm.c
Week3/amatC.txt
Week3/ctrlc2
Week3/ctrlc2.c
Week3/hw5
Week3/hw5.c
Week3/matC.txt
Week3/P3_2
Week3/P3_2.c
Week3/P3_3
Week3/P3_3.c
Week3/P3_4
Week3/P3_4.c
Week3/P3_5
Week3/P3_5.c
Week3/P3_6
Week3/P3_6.c
Week3/ps3_1.txt
Week3/ran-hw5.c
Week3/test
Week3/test.c
Week3 보고서/1-1-1.jpg
Week3 보고서/1-1-2.jpg
Week3 보고서/1-2-1.jpg
Week3 보고서/1-2-2.jpg
Week3 보고서/2-2-1.jpg
Week3 보고서/2-2-2.jpg
Week3 보고서/2-2-3.jpg
Week3 보고서/2-3-1.jpg
Week3 보고서/2-4-1.jpg
Week3 보고서/2-4-2.jpg
Week3 보고서/2-5-1.jpg
Week3 보고서/3-1-1.jpg
Week3 보고서/3-1-2.jpg
Week3 보고서/3-1-3.jpg
Week3 보고서/3-2-1.jpg
Week3 보고서/3-3-1.jpg
Week3 보고서/3-4-1.jpg
Week3 보고서/Thumbs.db
Week3 보고서/Week3.hwp
Week4/msg1
Week4/msg1.c
Week4/msg2
Week4/msg2.c
Week4/sem1
Week4/sem1.c
Week4/semun.h
Week4/shm1
Week4/shm1.c
Week4/shm2
Week4/shm2.c
Week4/shm_com.h
Week4 보고서/1-1.jpg
Week4 보고서/1-2.jpg
Week4 보고서/2-1.jpg
Week4 보고서/2-2.jpg
Week4 보고서/3-1.jpg
Week4 보고서/3-2.jpg
Week4 보고서/4-3-1.jpg
Week4 보고서/4-4-1.jpg
Week4 보고서/4-hw1-1.JPG
Week4 보고서/4-hw1-2.JPG
Week4 보고서/4-hw1-3.JPG
Week4 보고서/4-hw1-4.JPG
Week4 보고서/4-hw1-5.JPG
Week4 보고서/4-hw2-1.JPG
Week4 보고서/4-hw2-2.JPG
Week4 보고서/4-hw2-3.JPG
Week4 보고서/5-1.jpg
Week4 보고서/5-4.jpg
Week4 보고서/Thumbs.db
Week4 보고서/Week4.hwp
Week4 보고서/lego_circuit/lego_circuit.jpg
Week4 보고서/lego_circuit/Thumbs.db
Week5/dma.txt
Week5/DSCN4914.JPG
Week5/DSCN4915.JPG
Week5/DSCN4916.JPG
Week5/DSCN4917.JPG
Week5/DSCN4918.JPG
Week5/DSCN4919.JPG
Week5/DSCN4920.JPG
Week5/interrupts.txt
Week5/ioports.txt
Week5/stat.txt
Week5/Thumbs.db
Week5/simple/12.txt
Week5/simple/Makefile
Week5/simple/makesimple.txt
Week5/simple/makesimple2.txt
Week5/simple/out5.txt
Week5/simple/sensortest.txt
Week5/simple/simple.c
Week5/simple/simple.o
Week5/simple/smc.h
Week5/simple/smcapi.h
Week5/simple/test-mot.c
Week5/simple/tm
Week5/simple/tm.txt
Week5 보고서/2-10-1.jpg
Week5 보고서/2-10-2.jpg
Week5 보고서/2-12.jpg
Week5 보고서/2-5.jpg
Week5 보고서/2-7.jpg
Week5 보고서/2-8.jpg
Week5 보고서/2-9.jpg
Week5 보고서/Thumbs.db
Week5 보고서/Week5.hwp
Week6/module/catmodules.txt
Week6/module/hello.c
Week6/module/hello.o
Week6/module/lsmod.txt
Week6/module/make_module/make_module.c
Week6/module/make_module/make_module.o
Week6/module/make_module/mmodule.h
Week6/module/make_module/test.c
Week6/module/make_module/user_io
Week6/module/make_module/user_io.c
Week6/module/organ/Makefile
Week6/module/organ/old-Makefile
Week6/module/organ/old-organ.c
Week6/module/organ/old-sound.c
Week6/module/organ/old2-organ.c
Week6/module/organ/old2-sound.c
Week6/module/organ/organ.c
Week6/module/organ/organ.h
Week6/module/organ/organ.o
Week6/module/organ/sing
Week6/module/organ/sound
Week6/module/organ/sound.c
Week6 보고서/1-11.jpg
Week6 보고서/1-14.jpg
Week6 보고서/1-15.jpg
Week6 보고서/1-17.jpg
Week6 보고서/1-19.jpg
Week6 보고서/1-3.jpg
Week6 보고서/1-8-1.jpg
Week6 보고서/1-8-2.jpg
Week6 보고서/1-9.jpg
Week6 보고서/Thumbs.db
Week6 보고서/Week6.hwp
Week7/smc_2.2_isa/Makefile
Week7/smc_2.2_isa/smc.c
Week7/smc_2.2_isa/smc.h
Week7/smc_2.2_isa/smcapi.h
Week7/smc_2.2_isa/smc_load
Week7/smc_2.2_isa/smc_unload
Week7/smc_2.2_isa/stop.c
Week7/smc_2.2_isa/test-mot.c
Week7/smc_2.2_isa/test-sen.c
Week7 보고서/10-1-1.gif
Week7 보고서/10-1-2.gif
Week7 보고서/10-1-3.gif
Week7 보고서/10-2-1.gif
Week7 보고서/10-2-2.gif
Week7 보고서/10-2-3.gif
Week7 보고서/10-2-4.gif
Week7 보고서/10-2-5.gif
Week7 보고서/Thumbs.db
Week7 보고서/Week7.hwp
Week8/ex1
Week8/ex1.txt
Week8/ex2
Week8/ex3
Week8/ex4
Week8/ex5
Week8/ex7a
Week8/ex7b
Week8/ex8
Week8/example1
Week8/example1.c
Week8/example2
Week8/example2.c
Week8/example3
Week8/example3.c
Week8/example4.c
Week8/example5.c
Week8/example7a
Week8/example7a.c
Week8/example7b
Week8/example7b.c
Week8/example8
Week8/example8.c
Week8/example_1.c
Week8/example_2.c
Week8/fuzzycalib.h
Week8/libsmc.a
Week8/Makefile
Week8/makeso.txt
Week8/scc
Week8/smc.c
Week8/smc.h
Week8/smc.o
Week8/smcapi.c
Week8/smcapi.h
Week8/smc_load
Week8/smc_unload
Week8/stop
Week8/stop.c
Week8/test-mot.c
Week8/test-sen.c
Week8/tm
Week8/ts
Week8 보고서/1-1.jpg
Week8 보고서/2-1.jpg
Week8 보고서/2-2.jpg
Week8 보고서/3-1.jpg
Week8 보고서/4-1.jpg
Week8 보고서/5-1.jpg
Week8 보고서/6-1.jpg
Week8 보고서/6번순서도.vsd
Week8 보고서/7-1.jpg
Week8 보고서/7-2.jpg
Week8 보고서/8-1.jpg
Week8 보고서/8-2.jpg
Week8 보고서/Thumbs.db
Week8 보고서/Week8.hwp
Week9/callib.c
Week9/event-driven.c
Week9/example5.c
Week9/fuzzycalib.h
Week9/greenhouse.c
Week9/greenhouse1
Week9/libsmc.a
Week9/Makefile
Week9/makeso.txt
Week9/multi-thread.c
Week9/scc
Week9/smc.c
Week9/smc.h
Week9/smc.o
Week9/smcapi.c
Week9/smcapi.h
Week9/smc_load
Week9/smc_unload
Week9/stop
Week9/stop.c
Week9/test-mot.c
Week9/test-sen.c
Week9/tm
Week9/ts
Week9 보고서/1-1.jpg
Week9 보고서/1-2.jpg
Week9 보고서/1-3.jpg
Week9 보고서/1-4.jpg
Week9 보고서/2-1.jpg
Week9 보고서/2-2.jpg
Week9 보고서/2-3.jpg
Week9 보고서/2-4.jpg
Week9 보고서/2.vsd
Week9 보고서/3-1.jpg
Week9 보고서/3.vsd
Week9 보고서/4-1.jpg
Week9 보고서/4.vsd
Week9 보고서/Thumbs.db
Week9 보고서/Week9.hwp
다운로드 맨위로