임베디드 소프트웨어 프로젝트 - 샤프심뽑기 [소스코드 해석 포함]
본 자료는 8페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
해당 자료는 8페이지 까지만 미리보기를 제공합니다.
8페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

임베디드 소프트웨어 프로젝트 - 샤프심뽑기 [소스코드 해석 포함]에 대한 보고서 자료입니다.

목차

목 차

1. 개요

2. 설계

3. 알고리즘 분석

4. 실험 결과

5. 결론 및 토의



부록. 소스와 Makefile

1. app.c

2. gpiobutton.c

3. textlcd.c

4. Makefile

본문내용

{
set_ddram_address(i);
writebyte(' ');
}
/* 시간 표시 */
for(i = 0; time[i] != '\0' i++){
set_ddram_address(i);
writebyte(time[i]);
}
/* 시간을 s와 ms 단위로 각각 저장 */
sprintf(sec, "%d", timei/10);
sprintf(msec,"%d",timei%10);
j=0;
/* sec 부분 표시 */
for(i=7; sec[j]!='\0' i++){
set_ddram_address(i);
writebyte(sec[j]);
j++;
}
/* s와 ms 사이의 값 표시 */
set_ddram_address(i++);
writebyte('.');
j=0;
/* ms 단위 표시 */
for(;msec[j]!='\0'i++){
set_ddram_address(i);
writebyte(msec[j]);
j++;
}
}
/* 게임이 끝나면 "Game over!!"표시 */
void timer_stop(){
char end[] = "Game over!!"
int i;
for(i=0; end[i] != '\0' i++){
set_ddram_address(64+i);
writebyte(end[i]);
}
}
int textlcdport_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long t)
{
unsigned long time;
copy_from_user(&time, t , sizeof(time) );
switch(cmd)
{
case TEXTLCD_TIMER_START:
timer_start(time);
break
case TEXTLCD_CLEAR:
clear_display();
break
case TEXTLCD_TIMER_STOP:
timer_stop();
break
}
return 1;
}
int textlcdport_open(struct inode *inode, struct file *file)
{
/* 메세지 */
char welcome[] = "Welcome to our game!"
char msg[] = "Press GPIO 16 button!"
int i;
/* 모든 문자 제거 */
for(i = 0; i<20; i++)
{
set_ddram_address(i);
writebyte(' ');
}
for(i = 64; i<84; i++)
{
set_ddram_address(i);
writebyte(' ');
}
/* 문자 표시 */
for(i=0; welcome[i] != '\0'i++){
set_ddram_address(i);
writebyte(welcome[i]);
}
for(i = 0; msg[i] != '\0' ; i++)
{
set_ddram_address(i+64);
writebyte(msg[i]);
}
MOD_INC_USE_COUNT; // open function에 항상 사용
printk("Opencall for text LCD device \n");
return 0;
}
int textlcdport_release(struct inode *inode, struct file *file)
{
MOD_DEC_USE_COUNT; // release function에 항상 사용
printk("Releasecall for Char Device \n");
return 0;
}
ssize_t textlcdport_write(struct file *file, const char *buffer, size_t length, loff_t *offset)
{
return length;
}
static struct file_operations textlcd_fops =
{
write : textlcdport_write,
ioctl : textlcdport_ioctl,
open : textlcdport_open,
release : textlcdport_release,
};
int init_module(void)
{
printk("TESTDEVICE DRIVER \n");
strcpy(device_name, "TEST_Device");
result= register_chrdev(major_number, device_name, &textlcd_fops);
if(result<0)
{
printk(KERN_WARNING "device: can get major number");
return result;
}
if(major_number==0)
major_number=result;
printk("major_number:%d\n",major_number);
return 0;
}
void cleanup_module(void)
{
printk("CleanUp Module\n");
if(!unregister_chrdev(major_number,device_name))
printk("%s: Successful deregistration\n",device_name);
else
printk("%s: Cleanup failed",device_name);
}
4. Makefile
CC:=arm-linux-gcc
INCLUDEDIR := /root/PXA255-Pro/Kernel/linux-2.4.19-pro3_nlcd/include
CFLAGS := -D__KERNEL__ -Wall -O2 -DMODULE
CFLAGS2 := -I.. -I$(INCLUDEDIR)
CROSS_COMPILE := arm-linux-
CC=$(CROSS_COMPILE)gcc
LD=$(CROSS_COMPILE)ld
All: gpiobutton textlcd app
gpiobutton :
$(CC) $(CFLAGS) $(CFLAGS2) -c -o gpiobutton.o gpiobutton.c
textlcd:
$(CC) $(CFLAGS) -c textlcd.c -o textlcd.o
app :
$(CC) -I$(INCLUDEDIR) -o app app.c -lrt
clean :
rm -rf app *.o
  • 가격4,000
  • 페이지수24페이지
  • 등록일2012.05.22
  • 저작시기2011.12
  • 파일형식한글(hwp)
  • 자료번호#748632
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니