Yocto 添加应用程序

Yocto参考文档

Yocto官网:https://www.yoctoproject.org/

Project仓库:https://git.yoctoproject.org/

Reference Manual:https://docs.yoctoproject.org/

Quick Start Guide:https://docs.yoctoproject.org/brief-yoctoprojectqs/index.html

AGL:https://wiki.automotivelinux.org/agl-distro/source-code

1、在已有meta层中添加

比如yocto工程目录meta-semidrive/recipes-bsp文件夹下,新建hello-bsp文件夹,

hello-bsp文件夹添加如下源文件:

.
├── hello-bsp
│   ├── inc
│   ├── LICENSE
│   ├── Makefile
│   └── src
│       └── hello_bsp.c
└── hello-bsp.bb

2、bb文件写法

hello-bsp.bb文件中SRC_URI指定编译使用的文件路径,S指定生成的镜像路径位于build/work/下;

do_compile、do_install指定编译和部署方法

  1 SUMMARY = "hello examples demo"                                                                                                                                
  2                                                                                 
  3 LICENSE = "BSD"                                                                 
  4 LIC_FILES_CHKSUM = "file://LICENSE;md5=b30cbe0b980e98bfd9759b1e6ba3d107"        
  5                                                                                 
  6                                                                                 
  7 SRC_URI = "\                                                                    
  8         file://LICENSE \                                                        
  9         file://Makefile \                                                       
 10         file://src/hello_bsp.c \                                                
 11         "                                                                       
 12                                                                                 
 13 S = "${WORKDIR}"                                                                
 14                                                                                 
 15 FILES_${PN} = "\                                                                
 16         /usr/bin/hello_bsp\                                                     
 17 "                                                                               
 18 do_compile() {                                                                  
 19     make MACHINE=${MACHINE}                                                     
 20 }                                                                               
 21                                                                                 
 22 do_install () {                                                                 
 23         install -d ${D}/usr/bin                                                 
 24         install -m 0755 hello_bsp ${D}/usr/bin/hello_bsp                        
 25 } 

3、Makefile

  1 APP := hello_bsp                                                                                                                                               
  2                                                                                 
  3 HELLO_BSP_OBJ  := src/hello_bsp.o                                               
  4                                                                                 
  5 CFLAGS += -Wall -Werror                                                         
  6                                                                                 
  7 all: $(APP)                                                                     
  8                                                                                 
  9 hello_bsp: $(HELLO_BSP_OBJ)                                                     
 10         $(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS) -lpthread                           
 11                                                                                 
 12 %.o: %.c                                                                        
 13         $(CC) -c $(CFLAGS) -o $@ $^ -I inc/                                     
 14                                                                                 
 15 clean:                                                                          
 16         rm -rf $(APP)  hello_bsp src/*.o  

4、hello_bsp.c源文件

 1 /*                                                                              
  2  * hello.c                                                                      
  3  *                                                                              
  4  * Copyright (c) 2020 Slamdunk.                                                 
  5  * All rights reserved.                                                         
  6  *                                                                              
  7  * Description:                                                                 
  8  *                                                                              
  9  * Revision History:                                                            
 10  * -----------------                                                            
 11  */                                                                             
 12 #include <stdio.h>                                                              
 13                                                                                                                                                                
 14 int main()                                                                      
 15 {                                                                               
 16         printf("hello yfve bsp\r\n");                                           
 17         return 0;                                                               
 18 } 

5、编译

bitbake hello-bsp 

$ bitbake hello-bsp 
WARNING: Layer x9-gen1 should set LAYERSERIES_COMPAT_x9-gen1 in its conf/layer.conf file to list the core layer names it is compatible with.
WARNING: Layer x9-gen1 should set LAYERSERIES_COMPAT_x9-gen1 in its conf/layer.conf file to list the core layer names it is compatible with.
WARNING: You have included the meta-gnome layer, but 'x11' has not been enabled in your DISTRO_FEATURES. Some bbappend files may not take effect. See the meta-gnome README for details on enabling meta-gnome support.
Loading cache: 100% |###############################################################################################################################| Time: 0:00:00
Loaded 3118 entries from dependency cache.
Parsing recipes:  85% |###########################################################################################################                  | ETA:  0:00:00

编译生成的文件位于:

tmp/work/aarch64-sdrv-linux/hello-bsp/1.0-r0/image/usr/bin/hello_bsp

file tmp/work/aarch64-sdrv-linux/hello-bsp/1.0-r0/image/usr/bin/hello_bsp 
tmp/work/aarch64-sdrv-linux/hello-bsp/1.0-r0/image/usr/bin/hello_bsp: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.14.0, BuildID[sha1]=ae7bf505abc6b562980916ef1f64c519055ce77e, not stripped

6、添加到yocto整合的rootfs中

IMAGE_INSTALL_append = "hello-bsp \"

重新编译整个工程即可:bitbake core-image-base

tmp/work/x9h_ref_serdes-sdrv-linux/core-image-base/1.0-r0/rootfs/usr/bin/hello_bsp

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的Yocto添加应用程序的例子: 1. 创建一个新的Yocto层 在您的应用程序源代码中创建一个新的Yocto层,例如myapp。 ``` mkdir -p ~/yocto/layers/myapp cd ~/yocto/layers/myapp ``` 2. 创建一个新的recipe文件 在myapp层中创建一个新的recipe文件,例如myapp.bb。 ``` touch ~/yocto/layers/myapp/recipes-myapp/myapp/myapp.bb ``` 在myapp.bb文件中添加以下内容: ``` SUMMARY = "My App" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=0123456789abcdef0123456789abcdef" SRC_URI = "git://github.com/myapp.git" SRCREV = "master" DEPENDS = "libcurl" S = "${WORKDIR}/git" do_compile() { cmake ${S} make } do_install() { install -d ${D}/usr/bin install -m 0755 ${S}/myapp ${D}/usr/bin/ } ``` 请注意,此示例recipe文件假定您的应用程序使用CMake进行构建,并将二进制文件安装到/usr/bin目录中。 3. 添加层到Yocto配置文件 打开Yocto的配置文件,例如conf/bblayers.conf,将myapp层添加到BBLAYERS变量中。 ``` BBLAYERS ?= " \ /home/user/yocto/poky/meta \ /home/user/yocto/poky/meta-poky \ /home/user/yocto/poky/meta-yocto-bsp \ /home/user/yocto/layers/myapp \ " ``` 4. 构建应用程序 运行Yocto构建系统以构建应用程序。 ``` source oe-init-build-env bitbake myapp ``` 5. 添加二进制文件到根文件系统 将生成的二进制文件添加Yocto的根文件系统中。您可以在构建目录中找到二进制文件。 ``` cp ~/yocto/build/tmp/work/cortexa7hf-neon-poky-linux-gnueabi/myapp/1.0-r0/myapp /path/to/rootfs/usr/bin/ ``` 以上是一个简单的Yocto添加应用程序的例子,实际的步骤可能会有所不同,具体取决于您的应用程序Yocto系统的配置。建议您查看Yocto文档以获取更详细的指导和示例。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值