uclinux编译: 如何将自己的应用程序编译到uC..

  参考:[http://www.crazycoder.cn/]

前些天移植完uCLinux后想自己写LCD应用并编译到uCLinuxromfs中在网络中搜索了半天愣是没找到篇相关介绍而关于Makefile编写资料倒是很多看了好长时间也没什么用处最好经摸索思考终于成功特写出方法供大家参考
2vHfbaiducukrE7    注意:OS_HOME为您uCLinux/Linux源代码根目录

编写自己代码:

uCLinux/Linux应用通常存放在OS_HOME/user目录下我们在该目录下创建个Hello目录并创建Hello.c文件输入以下代码即大家最常见Hello world!

Hello world应用

参考:[http://www.crazycoder.cn/]

Hello.c
2vHfbaiducukrE7# <stdio.h>
2vHfbaiducukrE7# <stdlib.h>
2vHfbaiducukrE7void
2vHfbaiducukrE7{
2vHfbaiducukrE7       prf(“Hello world!”);
2vHfbaiducukrE7}

--------------------------------------------------------------------------------------------

二、为Hello world编写Makefile文件文件存放在OS_HOME\user\hello\下

Makefile

--------------------------------------------------------------------------------------------

#########################################################

# uclinux project type.

#########################################################

EXEC = Hello

OBJS = Hello.o

CFLAGS -I.

all: $(EXEC)

$(EXEC): $(OBJS)

       $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LDLIBS)

romfs:

       $(ROMFSINST) /bin/$(EXEC)

clean:

       -rm -f $(EXEC) *.elf *.gdb *.o

-------------------------------------------------------------------------------------------

    上面代码我就不解释了大家参考相关文件注意Hello为可执行文件名Hello.o为目标文件名大家可以根据自己工程来修改

三、修改uCLinux/Linux相关配置文件

这里需要修改文件有:OS_HOME/user/MakefileOS_HOME/config/config.in两个文件下面分别针对uCLinux和Linux讲解

1. uCLinux中修改OS_HOME/user/Makefile文件

打开OS_HOME/user/Makefile:

--------------------------------------------------------------------------------------------

#

#     Makefile -- Build instructions for user level apps

#

.EXPORT_ALL_VARIABLES:

#

# Include architecture specic build rules.

#

ndef ROOTDIR

ROOTDIR=..

end

UCLINUX_BUILD_USER=1

$(LINUX_CONFIG)

$(CONFIG_CONFIG)

$(ARCH_CONFIG)

- $(MODULES_CONFIG)

VEND=$(ROOTDIR)/vendors

#

# must run the vendor build first

#

dir_y = $(VEND)/$(CONFIG_VENDOR)/$(CONFIG_PRODUCT)/.

dir_n =

dir_  =

dir_$(CONFIG_JFFS_FS)                       mtd-utils

dir_$(CONFIG_JFFS2_FS)                      mtd-utils

……(中间略去)

dir_$(CONFIG_USER_WLG3)                   wlg3

dir_$(CONFIG_USER_TEST111)               test111

dir_$(CONFIG_USER_HELLO)                  Hello

dir_y

all:

       for i in $(dir_y) ; do  make -C $$i || exit $? ; done

romfs:

       for i in $(dir_y) ; do  make -C $$i romfs || exit $? ; done

clean:

       -for i in $(dir_y) $(dir_n) $(dir_) ; do \

              [ ! -d $$i ] || make -C $$i clean; \

       Done

添加代码上面代码中灰底蓝字部分该行代码中CONFIG_USER_HELLO定义个符号在其他文件中用到 Hello为应用相对路径

2. uCLinux中修改OS_HOME/config/config.in

打开OS_HOME/config/config.in文件

--------------------------------------------------------------------------------------------
2vHfbaiducukrE7##################################################################

#

# NOTE : it is fairly important that changes to this file consider their

#        effect _disibledevent="23%"> (全文结束)

Tags:  编译程序 uc应用程序错误 uclinux内核编译 uclinux编译

延伸阅读

最新评论

发表评论