(三)嵌入式:交叉编译应用程序并为内核添加APP配置

一.交叉编译应用程序

  1. 首先在uCLinux-dist目录里面进入user目录,创建文件夹scu,接着在scu文件夹里面创建文件hello.c和Makefile,并编辑这两个文件。如图1-1所示:
    (三)嵌入式:交叉编译应用程序并为内核添加APP配置_第1张图片
    (三)嵌入式:交叉编译应用程序并为内核添加APP配置_第2张图片
    图1-1 编辑hello.c和Makefile

编写好后,现在Ubuntu下面编译hello.c,并运行,如图1-2所示:
(三)嵌入式:交叉编译应用程序并为内核添加APP配置_第3张图片
图1-2 ubuntu运行hello

  1. 退回上级目录user,编辑Makefile,添加一行。如图1-3所示:
    在这里插入图片描述
    图1-3 编辑上级Makefile

修改和编辑完成后,在uCLinux目录,执行make user_only 命令(即只执行user下面的编译命令),这时可以看见/user/scu目录下面出现了可执行文件hello,如图1-4所示:
在这里插入图片描述
图1-4 查看编译好的可执行文件

  1. 接着安装文件到/uClinux-dist/romfs目录:make romfs;然后为刚刚编译出来的可执行文件hello创建映像:make image。连接开发板,重新下载zRomfs和zImage,然后启动开发板。
  2. 可以发现在开发板/bin/目录下出现了刚刚编译好的hello命令,运行hello,成功,如图1-5所示:
    (三)嵌入式:交叉编译应用程序并为内核添加APP配置_第4张图片
    图1-5 开发板运行hello命令

二.为内核添加APP配置

  1. 在UCLinux里面添加编写的APP配置选项。首先修改配置选项,修改/config/config.in/在末尾添加,如图1-6所示:
    (三)嵌入式:交叉编译应用程序并为内核添加APP配置_第5张图片
    图1-6 修改配置文件,添加配置选项为SCU Application

接着修改/config/Configure.help/,在末尾添加,如图1-7所示:
在这里插入图片描述
图1-6 修改配置帮助文件,添加APP说明
然后修改/user/Makefile,将之前添加的去掉,然后添加新的一行,如图1-7所示:
(三)嵌入式:交叉编译应用程序并为内核添加APP配置_第6张图片
图1-7 修改Makefile
接着修改/user/scu/Makefile,修改romfs的command,如图1-8所示:
(三)嵌入式:交叉编译应用程序并为内核添加APP配置_第7张图片
图1-8 修改Makefile
进入UCLinux/romfs,删掉bin目录下所有文件,然后在UCLinux目录下,执行make xconfig命令,出现的菜单界面可以发现有刚刚添加的选项,如图1-9所示:
(三)嵌入式:交叉编译应用程序并为内核添加APP配置_第8张图片
图1-9 查看新添加的选项
此时可以点击help,可以看见与之前添加到Configure.help里面的符合,如图1-10所示:
(三)嵌入式:交叉编译应用程序并为内核添加APP配置_第9张图片
图1-10 查看help
首先选择Y,然后保存退出,接着执行make user_only,make romfs;进入romfs/bin/下面,查看文件,可以发现出现了hello,如图1-11所示:
在这里插入图片描述
图1-11 查看/romfs/bin目录
这表明刚刚的配置选项中选中了SCU Application生效,可以在UCLinux的文件系统里面找到hello命令。
再次删掉UCLinux/romfs/bin目录下所有文件,接着在UCLinux目录下,再次执行make xconfig命令,出现的菜单界面,此次选择N,然后保存退出,如图1-12所示:
(三)嵌入式:交叉编译应用程序并为内核添加APP配置_第10张图片
图1-12 选择N选项

保存退出后接着执行make user_only,make romfs;再进入romfs/bin/下面,查看文件,可以发现hello没有了,如图1-13所示:
(三)嵌入式:交叉编译应用程序并为内核添加APP配置_第11张图片
图1-13 查看/romfs/bin目录
这表明刚刚的配置选项SCU Application生效,hello命令未配置编译进入UCLinux文件系统。

你可能感兴趣的:(UCLinux)