网站大量收购独家精品文档,联系QQ:2885784924

8-uClinux扩充和应用-1讲课.ppt

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8-uClinux扩充和应用-1讲课

uClinux功能扩充和应用; 添加用户应用程序 在uClinux支持下实现串口通信;添加用户程序;;2. 直接在目标板上进行开发。将宿主机和目标板通过串口相连,在宿主PC 机上运行minicom 作为目标板的显示终端,mount 上宿主机硬盘,直接在目标板上调试应用。 这种直接TARGET 开发模式下的开发流程:;;;; /*w1.c*/ #include linux/unistd.h void main() { int i=getuid(); printf(“Hello Word!This is my uid:%d\n”,i); } ?;3)?在w1目录下编辑Makefile如下: EXEC = w1 OBJS = w1.o? all: $(EXEC)? $(EXEC): $(OBJS) $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LDLIBS) romfs: $(ROMFSINST) /bin/$(EXEC)? clean:-rm -f $(EXEC) *.elf *.gdb *.o ;4) 修改uClinux-dist/user/Makefile,在那一大堆dir_y += 后面添加 dir_y += w1 5)重新编译uClinux:返回uCLinux目录,执行make 6)重新烧写内核到目标板 7)在宿主机端启动 minicom 复位目标板,则在minicom显示uClinux启动信息。文件变化见下图:即在bin目录下添加了命令w1 8)执行w1则;应用程序的开发;;;#include sys/types.h #include sys/stat.h #include stdio.h #include string.h #include stdlib.h #include errno.h #include unistd.h #include fcntl.h ? #define NEWFILE (O_WRONLY|O_CREAT|O_TRUNC) #define SIZE 80? int write_buffer(int fd, char *buf, int count); ?;int main(void) { int outfile; char filename[ ]={test.dat}; char buffer[SIZE];? if(outfile=open(filename, NEWFILE, 0640)==-1) { printf(ERROR, OPEN FILE FAILED! \n); exit(255); }? while(!strcmp(buffer,quit)) { gets(buffer); ;if(write_buffer(outfile, buffer, SIZE)==-1) { printf(ERROR,WRITE FAILED: \n“,sys_errlist[errno]); exit(255); } } close(outfile); return 0; }?;int write_buffer(int fd, char *buf, int count) { int i,n; char write_buf[SIZE]; int write_offset=0; for(i=0; icount; ++i) { write_buf[write_offset++]=*buf++; if(write_offset==SIZE) { write_offset=0; n=write(fd, write_buf, sizeof(write_buf));? if(n!=SIZE) return -1; } } return -1;};3)????? 在Creat目录下编辑Makefile如下??? EXEC = creat OBJS = creat.o? all: $(EXEC)? $(EXEC): $(OBJS) $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LDLIBS) romfs: $(ROMFSINST) /bin/$(EXEC)? clean:-rm -f $(EXEC) *.elf *.gdb *.o ;4) 修改uClinux-di

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档