Chinaunix首页 | 论坛 | 博客
  • 博客访问: 178244
  • 博文数量: 62
  • 博客积分: 2025
  • 博客等级: 大尉
  • 技术积分: 860
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-12 10:04
文章分类

全部博文(62)

文章存档

2010年(4)

2009年(13)

2008年(45)

我的朋友
最近访客

分类:

2008-10-24 16:29:51

  1: 在44B0开发板的uClinux中添加应用程序
      下面是uClinux下一个应用程序的代码leddemo.c
#include
/*
 *     LED blink function.
 *     this function blink the led
 */
void led_blink(void)
{
static int led_status = 0;
led_status += 1;
if(led_status % 2 == 0)
*(char *)0x02000000 = 0xff;
else
*(char *)0x02000000 = 0x00;
}
/*
 *     LED blink function.
 *     this function blink the led
 */
void seg_blink(void)
{
static unsigned char seg_value[] = { 0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0x88, 0x83, 0xc6, 0xa1, 0x86, 0x8e };   
static int seg_status = 0;
*((unsigned char *)0x8000000) = seg_value[seg_status];
seg_status += 1;
if(seg_status > 15)
seg_status = 0;
}
int main()
{
int loopcnt;
printf("hello world!!!\n");
while(1)
{
led_blink();
seg_blink();
sleep(1);
}
return 0;
}
使用如下Makefile文件编译
CC = arm-elf-gcc
LD = arm-elf-ld
EXEC = leddemo
OBJS = leddemo.o
CFLAGS += 
LDFLAGS += -Wl,-elf2flt 
all: $(EXEC)
$(EXEC): $(OBJS)
$(CC) $(LDFLAGS) -o $@ $(OBJS) $(LDLIBS$(LDLIBS_$@))
clean:
-rm -f $(EXEC) *.elf *.gdb *.o
$(OBJS):
将上述两个文件保存在一个目录下,然后使用make命令编译,编译成功将生成leddemo和leddemo.gdb,其中leddemo文件即为生成的uClinux应用程序,可以将其加载到文件系统中,然后在uClinux中运行。
2:配置应用程序自动运行
   如果需要在系统启动以后自动运行leddemo程序,需要编辑ramdisk中的启动脚本文件,该文件为
    etc/rc
  使用vim编辑器编辑,在该文件最后添加如下脚本:
  /bin/leddemo
  该脚本将启动后运行leddemo,直到程序退出。或
  /bin/leddemo&
 它将在后台运行leddemo,不影响其他的程序运行
 
阅读(501) | 评论(0) | 转发(0) |
0

上一篇:指针的“右左法则”

下一篇:解读startx

给主人留下些什么吧!~~