当前位置: 首页 > news >正文

网站设计的国际专业流程包括教育机构退费纠纷找谁

网站设计的国际专业流程包括,教育机构退费纠纷找谁,diy网站建设系统源码,南山做网站公司文章目录 STM32MP257系列之定制的Yocto Machine1. TFA 定制2. OPTEE OS定制3. Uboot 定制3.1 创建 board3.2 创建 board的头文件3.3 创建 board的配置文件3.4 添加我们自己的dtb文件3.5 生成新patch打包到uboot recipe中3.6 修改yocto中的配置 4. Kernel 定制4.1 定制设备树 5.…

文章目录

  • STM32MP257系列之定制的Yocto Machine
    • 1. TFA 定制
    • 2. OPTEE OS定制
    • 3. Uboot 定制
      • 3.1 创建 board
      • 3.2 创建 board的头文件
      • 3.3 创建 board的配置文件
      • 3.4 添加我们自己的dtb文件
      • 3.5 生成新patch打包到uboot recipe中
      • 3.6 修改yocto中的配置
    • 4. Kernel 定制
      • 4.1 定制设备树
    • 5. 添加Machine
      • 5.1 添加Machine文件
      • 5.2 添加image recipe
    • 6. 完整编译烧录验证
      • 6.1 编译
      • 6.2 烧录
      • 6.3 启动

STM32MP257系列之定制的Yocto Machine

在第一篇文章中我们使用米尔官方提供的Yocto源码编译得到了产物镜像,但是是米尔自己的系统,本章节将在Yocto系统中添加我们自己的Machine,因为笔者想基于STM32MP257开发一个桌面机器人,所以起名叫Zero Robot, 寓意从0开始的机器人之旅。

1. TFA 定制

首先需要适配的就是TFA的改动,在yocto工程中获得TFA的源码,使用如下指令将TFA的源码添加到工作区:

devtool modify tf-a-stm32mp

稍等片刻我们就可以在build-openstlinuxweston-myd-ld25x/workspace/sources/tf-a-stm32mp 下面看到完整的tfa源码:
在这里插入图片描述
然后按照如下指令添加自定义设备树:

cd fdts
cp myb-stm32mp257x-2GB.dts zero-robot-stm32mp257x-2GB.dts
cp myb-stm32mp257x-base.dtsi zero-robot-stm32mp257x-base.dtsi
cp myb-stm32mp257x-2GB-fw-config.dts zero-robot-stm32mp257x-2GB-fw-config.dts
cp myb-stm32mp257x-2GB-fw-config.dtsi zero-robot-stm32mp257x-2GB-fw-config.dtsi

修改zero-robot-stm32mp257x-2GB.dts中的dtsi引用名称:

#include "zero-robot-stm32mp257x-base.dtsi" // 改这个
#include "stm32mp25-lpddr4-1x16Gbits-1x32bits-1200MHz.dtsi"
#include "stm32mp25-pinctrl.dtsi"
#include "stm32mp25xxai-pinctrl.dtsi"

修改zero-robot-stm32mp257x-2GB-fw-config.dts中的dtsi引用名称:

#include "stm32mp25-fw-config.dtsi"
#include "zero-robot-stm32mp257x-2GB-fw-config.dtsi" //改这个

完成以后使用git 添加到暂存区:

git add .
git commit -m "tfa add zero-robot dtb"

最后更新改动到recipe中:

devtool update-recipe tf-a-stm32mp

2. OPTEE OS定制

接着适配的就是OPTEE的改动,首先在yocto工程中获得optee os的源码,使用如下指令将optee的源码添加到工作区:

devtool modify optee-os-stm32mp

稍等片刻我们就可以在build-openstlinuxweston-myd-ld25x/workspace/sources/optee-os-stm32mp 下面看到完整的optee源码:
在这里插入图片描述
然后按照如下指令添加自定义设备树:

cd core/arch/arm/dts
mv myb-stm32mp257x-base.dtsi  zero-robot-stm32mp257x-base.dtsi 
mv myb-stm32mp257x-2GB.dts zero-robot-stm32mp257x-2GB.dts

修改zero-robot-stm32mp257x-2GB.dts中的dtsi引用名称:

#include "zero-robot-stm32mp257x-base.dtsi"  //主要修改这个
#include "myb-stm32mp257x-rcc.dtsi"
#include "myb-stm32mp257x-2GB-resmem.dtsi"
#include "myb-stm32mp257x-rif.dtsi"
#include "stm32mp25-pinctrl.dtsi"
#include "stm32mp25xxai-pinctrl.dtsi"

接下来需要将我们的dts添加到flavor中,修改core/arch/arm/plat-stm32mp2/conf.mk

flavor_dts_file-257F_DK = stm32mp257f-dk.dts
flavor_dts_file-257F_EV1 = stm32mp257f-ev1.dts
flavor_dts_file-257X_MYB2GB = myb-stm32mp257x-2GB.dts
flavor_dts_file-257X_MYB1GB = myb-stm32mp257x-1GB.dts
flavor_dts_file-257X_MYT2GB = myt-stm32mp257x-2GB.dts
flavor_dts_file-257X_MYT1GB = myt-stm32mp257x-1GB.dts
flavor_dts_file-257X_ZERO_ROBOT = myb-stm32mp257x-2GB.dts  //addflavorlist-MP25 = $(flavor_dts_file-257F_DK) \$(flavor_dts_file-257X_MYB2GB) \$(flavor_dts_file-257X_MYB1GB) \$(flavor_dts_file-257X_MYT2GB) \$(flavor_dts_file-257X_MYT1GB) \$(flavor_dts_file-257F_EV1) \$(flavor_dts_file-257X_ZERO_ROBOT)  //add

完成以后使用git 添加到暂存区:

git add .
git commit -m "optee adds zero-robot dtb"

最后更新改动到recipe中:

devtool update-recipe optee-os-stm32mp

3. Uboot 定制

接下来就是定制Uboot,首先在yocto工程中获得Uboot的源码,使用如下指令将Uboot的源码添加到工作区:

devtool modify u-boot-stm32mp

稍等片刻我们就可以在build-openstlinuxweston-myd-ld25x/workspace/sources/u-boot-stm32mp 下面看到完整的Uboot源码:
在这里插入图片描述

3.1 创建 board

我们需要根据自己的要求创建属于自己的板子配置文件,首先从board文件夹下拷贝myir为zero-robot,删除6ul相关的文件夹,只保留跟stm32mp25系列有关的内容

  1. 创建zero-robot 文件夹
cd build-openstlinuxweston-myd-ld25x/workspace/sources/u-boot-stm32mp/board
cp -r myir zero-robot
rm -rf zero-robot/mys_6ulx
mv zero-robot/myd_ld25x zero-robot/zero-robot_ld25x
mv zero-robot/zero-robot_ld25x/myd-ld25x.c  zero-robot/zero-robot_ld25x/zero-robot-ld25x.c
  1. 接下来要修改 Makefile,将 myd-ld25x.o 修改为 zero-robot_ld25x.o:
    在这里插入图片描述

  2. 然后修改Kconfig,将SYS_BOARDSYS_VENDORSYS_CONFIG_NAME修改为我们自己的
    在这里插入图片描述

  3. 我们的board已经准备完毕,接下来就是将我们的board添加到系统中
    arch/arm/mach-stm32mp/Kconfig.25x 文件最后增加我们的Kconfig路径(这个会影响 make menuconfig 配置):
    在这里插入图片描述
    这里的改动项主要是添加了一个我们的目标配置:TARGET_ZERO_ROBOT_LD25X,然后将我们的board路径添加进来

3.2 创建 board的头文件

有了我们自己的board以后还得有新单板的头文件,继续按照如下指令操作:

cd include/configs
cp myd_ld25x.h zero-robot_ld25x.h

这个zero-robot_ld25x.h其实就是我们在创建board文件夹中Kconfig中 SYS_CONFIG_NAME变量指定的。

3.3 创建 board的配置文件

距离大功告成还有一步,就是创建我们的配置文件,实操:

cd configs
cp myd_ld25x_2G_defconfig zero-robot_ld25x_2G_defconfig

因为我们上面添加了我们自己的target,所以我们还需要将zero-robot_ld25x_2G_defconfig下面的TARGET修改为刚才添加的TARGET_ZERO_ROBOT_LD25X:
在这里插入图片描述

3.4 添加我们自己的dtb文件

上面的步骤完成以后我们已经有了自己的单板,接下来就是创建我们自己的dtb文件,后面所有的定制都将基于我们自己的dts文件去修改。
米尔官方的uboot使用的dts主要有如下几部分构成:
在这里插入图片描述
编译 MYD-LD25X 的 uboot 源码时会合并相关的所有 dts/dtsi 文件,生成 uboot 阶段默认使用的 myb-stm32mp257x-2GB.dtb,我们以myb-stm32mp257x-2GB.dts为基础,拷贝一份出来命名为zero-robot-stm32mp257x-2GB.dts作为我们单板的默认配置设备树:

cd arch/arm/dts
cp myb-stm32mp257x-2GB.dts zero-robot-stm32mp257x-2GB.dts

接着修改该目录下的设备树 Makefile,添加zero-robot-stm32mp257x-2GB.dtb ,内容如下:
在这里插入图片描述
最后还需要修改我们上面创建的zero-robot_ld25x_2G_defconfig 配置文件中默认的设备树:
在这里插入图片描述

3.5 生成新patch打包到uboot recipe中

至此uboot部分的定制完成,我们需要使用如下命令将改动同步会yocto源码中:

devtool update-recipe u-boot-stm32mp

3.6 修改yocto中的配置

uboot代码修改完毕以后还需要修改yocto layer里面的相关配置

  1. 修改默认的defconfig
    最后修改yocto uboot recipe中meta-myir/meta-myir-stm32mp/recipes-bsp/u-boot/u-boot-stm32mp-config.inc的内容,修改default_stm32mp25 的默认目标为我们的配置:
UBOOT_CONFIG[default_stm32mp25] ?= "**zero-robot_ld25x_2G_defconfig**,,u-boot.dtb"
  1. 添加我们的设备树到系统中
    这部分需要修改我们自己的Machine文件,在第4章节添加Machine中补充。

添加完成以后可以使用bitbake u-boot-stm32mp 编译uboot,然后使用 bitbake u-boot-stm32mp -e | grep ^D= 查看编译产物的路径:
在这里插入图片描述
里面确实生成了我们的u-boot-zero-robot-stm32mp257x-2GB.dtb

4. Kernel 定制

4.1 定制设备树

内核定制主要就是添加我们自定义的设备树,首先生成工作区,获取kernel源码:

devtool modify linux-stm32mp

生成的kernel源码路径在build-openstlinuxweston-myd-ld25x/workspace/sources/linux-stm32mp 路径。
米尔的设备树文件位于 arch/arm64/boot/dts/myir/ 路径下:

cd ./arch/arm64/boot/dts/myir/
cp myb-stm32mp257x-2GB.dts zero-robot-stm32mp257x-2GB.dts
cp myb-stm32mp257x-base.dtsi zero-robot-stm32mp257x-base.dtsi

然后修改zero-robot-stm32mp257x-2GB.dts里面的部分内容:

/dts-v1/;#define		LVDS_7INCH_PANEL		1
#define		ETH_SWITCH_ENABLE  		0#include "zero-robot-stm32mp257x-base.dtsi"   //修改为我们的dtsi引用
#include "myb-stm32mp257x-2GB-resmem.dtsi"
#include "myb-stm32mp257x-ethswitch.dtsi"/ {// model 和compatible 修改为我们的自定义内容model = "Zero Robot STM32MP257x Evaluation Board"; compatible = "tao,zero-robot-stm32mp257x", "st,stm32mp257f-ev1", "st,stm32mp257";chosen {stdout-path = "serial0:115200n8";};memory@80000000 {device_type = "memory";reg = <0x0 0x80000000 0x0 0x80000000>;};};

最后需要在Makefile中添加我们的zero-robot-stm32mp257x-2GB.dtb 文件:

# SPDX-License-Identifier: GPL-2.0-only
dtb-$(CONFIG_ARCH_STM32) += \stm32mp257f-dk.dtb \stm32mp257f-ev1.dtb \myb-stm32mp257x-1GB.dtb \myb-stm32mp257x-2GB.dtb \zero-robot-stm32mp257x-2GB.dtb \myb-stm32mp257x-1GB-ethswitch.dtb \myb-stm32mp257x-2GB-ethswitch.dtb

完成以后就可以提交修改:

git add . 
git commit -m "add zero-robot-stm32mp257x-2GB.dtb in kernel"

然后将修改同步回recipe:

devtool update-recipe linux-stm32mp

5. 添加Machine

5.1 添加Machine文件

这一部我们需要添加属于我们自己的Machine了,还是先以myd-ld25x.conf为蓝本操作:

cd layers/meta-myir/meta-myir-stm32mp/conf/machine
cp myd-ld25x.conf zero-robot.conf

然后修改zero-robot.conf中的关键内容:

MACHINENAME="zero-robot"ST_OPTEE_EXPORT_TA_REF_BOARD:stm32mp2common = "zero-robot-stm32mp257x-2GB.dts"KERNEL_DEVICETREE += "myir/myb-stm32mp257x-1GB.dtb \myir/myb-stm32mp257x-2GB.dtb \myir/zero-robot-stm32mp257x-2GB.dtb \myir/myb-stm32mp257x-2GB-ethswitch.dtb \myir/myb-stm32mp257x-1GB-ethswitch.dtb \	"
STM32MP_DT_FILES_EMMC   += "myb-stm32mp257x-1GB"
STM32MP_DT_FILES_EMMC   += "myb-stm32mp257x-2GB"
STM32MP_DT_FILES_EMMC   += "zero-robot-stm32mp257x-2GB"
STM32MP_DT_FILES_SDCARD += "myb-stm32mp257x-1GB"
STM32MP_DT_FILES_SDCARD += "myb-stm32mp257x-2GB"
STM32MP_DT_FILES_SDCARD += "zero-robot-stm32mp257x-2GB"STM32MP_DT_FILES_EMMC   += "stm32mp257f-ev1"
STM32MP_DT_FILES_SDCARD += "stm32mp257f-ev1"EXTERNAL_DEVICETREE_SDCARD = "zero-robot-stm32mp257x-2GB-ca35tdcid-ostl"
EXTERNAL_DEVICETREE_SDCARD =+ "zero-robot-stm32mp257x-2GB-ca35tdcid-ostl-m33-examples"
EXTERNAL_DEVICETREE_SDCARD = "myb-stm32mp257x-2GB-ca35tdcid-ostl"
EXTERNAL_DEVICETREE_SDCARD =+ "myb-stm32mp257x-2GB-ca35tdcid-ostl-m33-examples"
EXTERNAL_DEVICETREE_SDCARD =+ "stm32mp257f-ev1-ca35tdcid-ostl"
EXTERNAL_DEVICETREE_SDCARD =+ "stm32mp257f-ev1-ca35tdcid-ostl-m33-examples"EXTERNAL_DEVICETREE_EMMC = "zero-robot-stm32mp257x-2GB-ca35tdcid-ostl"
EXTERNAL_DEVICETREE_EMMC =+ "zero-robot-stm32mp257x-2GB-ca35tdcid-ostl-m33-examples"
EXTERNAL_DEVICETREE_EMMC = "myb-stm32mp257x-2GB-ca35tdcid-ostl"
EXTERNAL_DEVICETREE_EMMC =+ "myb-stm32mp257x-2GB-ca35tdcid-ostl-m33-examples"
EXTERNAL_DEVICETREE_EMMC =+ "stm32mp257f-ev1-ca35tdcid-ostl"
EXTERNAL_DEVICETREE_EMMC =+ "stm32mp257f-ev1-ca35tdcid-ostl-m33-examples"

5.2 添加image recipe

有了machine的配置文件,再创建一个属于我们的image:

cd layers/meta-myir/meta-myir-openstlinux/recipes-st/images
cp myir-image-core.bb zero-robot-image-core.bb
cp myir-image-full.bb zero-robot-image-full.bb

大功告成,下面就是我们的编译和验证之旅啦

6. 完整编译烧录验证

6.1 编译

编译整体image:

DISTRO=openstlinux-weston MACHINE=zero-robot source layers/meta-myir/scripts/envsetup.sh
bitbake zero-robot-image-core

然后就是漫长的等待,注意这里可以修改build-openstlinuxweston-zero-robot/conf/local.conf里面的 DL_DIR 变量,指向上一次你下载的downloads文件夹的路径,避免重复下载组件,占用磁盘空间和编译耗时:

DL_DIR ?= "${TOPDIR}/../../downloads"

在这里插入图片描述
终于编译成功,可以在build-openstlinuxweston-zero-robot/tmp-glibc/deploy/images/zero-robot 下面看到所有的编译产物,并且也生成了flashlayout_zero-robot-image-core/optee/FlashLayout_emmc_zero-robot-stm32mp257x-2GB-optee.tsv文件:
在这里插入图片描述

6.2 烧录

接下来就是使用烧录工具将image烧录到emmc里拉,首先将开发板上的启动选择拨码开关设置到0000,然后USB OTG口连接到电脑,上位机软件选择配置如下:
在这里插入图片描述
点击Download开始烧录,等待片刻即可烧录完成,再将板子的拨码开关调整为0100启动。

6.3 启动


文章转载自:
http://follow.c7627.cn
http://denizen.c7627.cn
http://unassuageable.c7627.cn
http://beach.c7627.cn
http://publican.c7627.cn
http://nonnitrogenous.c7627.cn
http://apricot.c7627.cn
http://rhabdocoele.c7627.cn
http://undercellar.c7627.cn
http://lkr.c7627.cn
http://charitarian.c7627.cn
http://diffidence.c7627.cn
http://porcelanous.c7627.cn
http://aachen.c7627.cn
http://kettering.c7627.cn
http://austerely.c7627.cn
http://aerate.c7627.cn
http://hjs.c7627.cn
http://adversity.c7627.cn
http://araponga.c7627.cn
http://pixy.c7627.cn
http://lithify.c7627.cn
http://piedfort.c7627.cn
http://khfos.c7627.cn
http://enunciative.c7627.cn
http://autoinfection.c7627.cn
http://ywca.c7627.cn
http://vagotomy.c7627.cn
http://slimmer.c7627.cn
http://qualifiable.c7627.cn
http://fanega.c7627.cn
http://uncordial.c7627.cn
http://yancey.c7627.cn
http://gratulant.c7627.cn
http://rheid.c7627.cn
http://soundlessly.c7627.cn
http://breakpoint.c7627.cn
http://resumable.c7627.cn
http://sierra.c7627.cn
http://gentle.c7627.cn
http://thundercloud.c7627.cn
http://unmodish.c7627.cn
http://goblinry.c7627.cn
http://eytie.c7627.cn
http://glow.c7627.cn
http://panchreston.c7627.cn
http://commemoratory.c7627.cn
http://thp.c7627.cn
http://furphy.c7627.cn
http://binocle.c7627.cn
http://endotesta.c7627.cn
http://carburant.c7627.cn
http://unorderly.c7627.cn
http://held.c7627.cn
http://catchcry.c7627.cn
http://crying.c7627.cn
http://ssr.c7627.cn
http://periodize.c7627.cn
http://tried.c7627.cn
http://tinker.c7627.cn
http://whisk.c7627.cn
http://gangsterism.c7627.cn
http://phenotype.c7627.cn
http://supinely.c7627.cn
http://hot.c7627.cn
http://liquid.c7627.cn
http://astringency.c7627.cn
http://redif.c7627.cn
http://windburn.c7627.cn
http://sap.c7627.cn
http://chronometrical.c7627.cn
http://xenophobia.c7627.cn
http://contemptibility.c7627.cn
http://waterskin.c7627.cn
http://strigiform.c7627.cn
http://trf.c7627.cn
http://fusee.c7627.cn
http://hazemeter.c7627.cn
http://henceforth.c7627.cn
http://flechette.c7627.cn
http://cmy.c7627.cn
http://dwindle.c7627.cn
http://monopodium.c7627.cn
http://nmu.c7627.cn
http://video.c7627.cn
http://daydream.c7627.cn
http://inarticulacy.c7627.cn
http://eightieth.c7627.cn
http://donable.c7627.cn
http://cob.c7627.cn
http://antennal.c7627.cn
http://ropery.c7627.cn
http://afreet.c7627.cn
http://cruse.c7627.cn
http://nethermore.c7627.cn
http://redroot.c7627.cn
http://oestrone.c7627.cn
http://collegiality.c7627.cn
http://gastralgia.c7627.cn
http://pythic.c7627.cn
http://www.zhongyajixie.com/news/96355.html

相关文章:

  • 手机网站建设是什么被代运营骗了去哪投诉
  • 外贸自建站费用网站优化排名软件网站
  • 天津网站建设网页设计公司怎么做好营销推广
  • 一个微信可以做两个网站支付宝营销型网站建设套餐
  • 北京专业做网站一键制作单页网站
  • 青岛网站建设方案书十大免费excel网站
  • 深圳网站建设哪里好网站排名优化快速
  • 制作公司网页价钱seo和sem的区别是什么
  • seo网站排名优化新闻头条最新消息今天发布
  • 国外ip 网站 百度收录搜索app下载
  • 外贸英语学习网站在线看网址不收费不登录
  • 广西建设工程造价管理协会网站企业网站开发制作
  • 怎么做网站 白交换链接
  • 扁平化网站首页seo推广教程
  • 做网站还需要买空间吗百度推广下载
  • wordpress纯css头像青岛seo关键词优化排名
  • 网站域名用公司注册信息查询用网站模板建站
  • 做网站送域名和邮箱北京网站优化指导
  • 公司微网站怎么做的bt搜索引擎下载
  • 乌鲁木齐建设工程信息网网站内链优化
  • 制作网站公网站收录提交
  • 装饰网站建设公司橘子seo
  • 自适应网站建设百度发布信息怎么弄
  • 建设网站服务器 知乎泉州百度seo
  • 做号网站吗谷歌浏览器搜索引擎入口
  • 域名对行业网站的作用seo友情链接
  • 政府网站的作用百度搜索关键词优化
  • 内容电商网站有哪些响应式网站模板的应用
  • 装wordpress需要配置apacheseo怎么学在哪里学
  • 中山网络公司网站建设免费网站制作成品