在uclinux 中添加自己应用程序的详细过程

在uclinux 中添加自己应用程序的详细过程 ( 文中所用的路径为uclinux 安装的相对路径, 比如: /uClinux-Samsung)   编译uclinux并运行成功后, 下一步的工作就是写个最经典、最简单的程序“ hello,  world” 。在uclin ux下, 当然要比在普通的OS下麻烦些。 ( 我用的是ANYWHERE-Ⅱ 开发板, 不同的开发板的过程应相似)  我基本是按照 Documentation/Adding-User-Apps-HOWTO 的步骤进行, 有部分修改。 1、在user 目录下创建新目录 user/sample, 用来存放源代码。写“ hello.c” 文件。( “ hello.c” 文件 如何写, 不用我说了吧。)  2、编辑文件 user/Makefile, 增加下面这行 dir_$(CONFIG_USER_SAMPLE_HELLO) += sample 具体增加到哪里, 你打开文件就会发现相似的语句, 按照字母顺序, 放到合适的位置。 3、编辑文件 config/Configure.help, 增加下行 CONFIG_USER_SAMPLE_HELLO A example C program. This Program print "hello, world" on screen. 注意: 第2行以2个空格开头, 总长度小于70 个字符。 4、编辑文件 config/config.in 在 ‘ Games’ 后添加新的部分 ######################### mainmenu_option next_comment comment ‘ Sample’  bool ‘ hello’  CONFIG_USER_SAMPLE_HELLO endmenu ( 注意这里的单引号字符不对, 不要直接COPY这里的字符, 最好自己手工输入, 或参考文件中已有的行修 改。)  5、创建合适的 user/sample/Makefile 文件 HELLO = hello HELLOOBJS = hello.o all: $(HELLO) $(HELLO): $(HELLOOBJS) $(CC) $(LDFLAGS) -o $@ $(HELLOOBJS) $(LDLOBS) 此句错误 $(CC) $(LDFLAGS) -o $@ $(HELLOOBJS) $(LDLIBS) PDF created with FinePrint pdfFactory trial version http://www.fineprint.com 欧赛尔电子工作室http://www.osoar.com 电子资讯论坛http://www.osoar.com/bbs romfs: ["$(CONFIG_USER_SAMPLE_HELLO)" != y] || cp hello $(ROMFSDIR)/bin/. clean: -rm -f $(HELLO) *.elf *.gdb *.o 6、重新编译生成image.rom。注意在运行make config 或make menuconfig时选择生成"hello" 。 是否Makefile 文件中修改如下:  romfs: ["$(CONFIG_USER_SAMPLE_HELLO)" == y] || cp hello $(ROMFSDIR)/bin/. 是否能默认选择“ hello” , 我还未试。 7、烧写image.rom, 运行 >hello 即可看到输出“ hello, world" 8、完毕。 任平生xuleipost@sina.com xuleipost@sina.com 下一步要用GDB调试。成功了再写详细过程。 以后有什么经验大家多分享。 问题1: 我按照上述步骤, 在make user_only 时, 出现 make[2]: Leaving directory `/usr/linux/uClinux-Samsung/user/route' make[2]: Entering directory `/usr/linux/uClinux-Samsung/user/sample' Makefile• : *** missing separator. Stop. make[2]: Leaving directory `/usr/linux/uClinux-Samsung/user/sample' make[1]: *** [all] Error 2 make[1]: Leaving directory `/usr/linux/uClinux-Samsung/user' make: *** [user_only] Error 2 还请二位指教: (已经成功编译了uclinux 得内核) 答: 可能是MAKEFILE 文件有错误, 你不要直接COPY 上面的MAKEFILE, 你应该参考系统中已经有的 MAKEFILE 文件, 格式有特殊要求的。我写的内容对, 但格式无法在这里表现。 你把MAKEFILE 改一下。 问题2: 俺也是照着上面的步骤下来, 结果在make user_only 的时候。出现错误, 错误信息如下: Makefile□ :***missing separator . stop. make[1]:***[all] Error 2 make:***[user_only] Error 2 这些信息我是通过make user_only 2>/Errormsg.txt 所得到的结果。 望各位兄台多多指教。谢谢! 答: 我有时间把MAKEFILE 文件写成TXT 文件让大家下载。 PDF created with FinePrint pdfFactory trial version http://www.fineprint.com 欧赛尔电子工作室http://www.osoar.com 电子资讯论坛http://www.osoar.com/bbs 错误可能是写MAKEFILE 中没有在相应位置加上TAB。 问题3: 把任兄给的Makefile 文件拷贝到 usr/sample/ 目录下。 得到了另外一个错误信息:   /opt/uClinux/arm-elf/bin/gld: cannot find -lc collect2: ld returned 1 exit status make[2]: *** [hello] Error 1 make[1]: *** [all] Error 2 make: *** [user_only] Error 2 任兄请多指教, GUN make 真的是好难伺候呐!  BTW, 你说的在make menuconfig 时选择“ hello"这一步没有问题。但是根据你所说 是否Makefile 文件中修改如下:  romfs:  ["$(CONFIG_USER_SAMPLE_HELLO)"==y]||cp hello $(ROMFSDIR)/bin/. 这个我怎么也不知道该怎么办, 只是手动的在uClinux 目录下的Makefile 文件中进行修改。不知道是不是 因为这个而出错, 请指教, 谢谢! 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值