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

制作网站案例网址关键词密度

制作网站案例网址,关键词密度,优秀甜品网站,免费网站建设软件推荐目录 一、TF-A概述 二、编译官方代码 2.1 解压源码 2.2 打补丁 2.3 编译准备 (1)修改Makfile.sdk (2)设置环境变量 (3)编译 三、移植 3.1 复制官方文件 3.2 修改电源 3.3 修改TF卡和emmc 3.4 添…

目录

一、TF-A概述

二、编译官方代码

2.1 解压源码

2.2 打补丁

2.3 编译准备

(1)修改Makfile.sdk

(2)设置环境变量

(3)编译

三、移植

3.1 复制官方文件

3.2 修改电源

3.3 修改TF卡和emmc

3.4 添加clk_hse

3.5 删除其他串口

3.6 修改引脚

四、编译


一、TF-A概述

        总而言之,和安全相关,篇幅受限,不做详细介绍,可以参考其他博主的帖子,本帖只做移植教程

二、编译官方代码

2.1 解压源码

       这里面有一个压缩包,把它解压可以得到源码,根据版本不同,不要照搬,只要能解压出来就行

tar xf tf-a-stm32mp-v2.8.6-stm32mp-r1-r0.tar.xz

特别注意:有一个README.HOW_TO.txt这是官方写给我们的使用文档,完全可以按照里面的方法去编译

2.2 打补丁

        官方的源码还是不能编译的,要先打补丁!!!

        先进入到源码目录,就是上一步解压出来的文件夹

cd tf-a-stm32mp-v2.8.6-stm32mp-r1-r0.tar.xz
for p in `ls -1 ../*.patch`; do patch -p1 < $p; done

2.3 编译准备

(1)修改Makfile.sdk

        编译源码不使用源码目录下的Makefile,使用上一级目录的Makefile.sdk,先对他进行修改。

DEPLOYDIR ?= $(SRC_PATH)/../../FIP_artifacts/arm-trusted-firmware

         Makefile.sdk第4行,把DEPLOYDIR目录指向FIP_artifacts下的arm-trusted-firmware,这样编译出来的文件会直接输出到arm-trusted-firmware文件夹,方便后面fiptool打包

TF_A_DEVICETREE ?= stm32mp135f-dk

        Makefile.sdk第19行,把其他设备树都给删了,只留下135的板子,之后添加自己板子的时候也要在这里添加

(2)设置环境变量

        打开一个终端,之后就不要关闭它了!!!

        终端要在源码目录下打开,源码!

source /opt/st/stm32mp1/4.2.1-openstlinux-6.1-yocto-mickledore-mp1-v23.06.21/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabiexport FIP_DEPLOYDIR_ROOT=$PWD/../../FIP_artifacts

        source是要用arm-ostl-linux-gnueabi这个交叉编译器

        export是设置FIP的目录,绝对路径或者相对路径都可以,可能写到Makefile.sdk里也可以,可以写一个sh脚本,不用每次都加载这个环境。

        注意:笔者交叉编译器安装路径直接默认了,大家安装的时候记得路径记一下

(3)编译

make -f ../Makefile.sdk all

        最后提示 Missing u-boot-stm32mp135f-dk.dtb file in folder: '$FIP_DEPLOYDIR_UBOOT' or '$FIP_DEPLOYDIR_ROOT/u-boot'

        没有关系,别在意这个,这是因为Makefile.sdk里自动调用fiptool给我们打包了,但是现在又还没有编译u-boot和optee,所以会报这个

        最后会在FIP_artifacts/arm-trusted-fimware里生成如下:

1.        tf-a-stm32mp135f-dk-emmc.stm32

2.        tf-a-stm32mp135f-dk-usb.stm32

3.        tf-a-stm32mp135f-dk-uart.stm32

4.        ...(这几个都是.stm32文件,不列了

n.        metadata.bin

n+1.        fwconfig/stm32mp135f-dk-fw-config-optee.dtb

三、移植

修改头文件引用

#include "stm32mp13-pinctrl-atk.dtsi"

3.1 复制官方文件

cd fdts/
cp stm32mp135f-dk.dts stm32mp135-atk.dts
cp stm32mp13-pinctrl.dtsi stm32mp13-pinctrl-atk.dtsi
cp stm32mp135f-dk-fw-config.dts stm32mp135-atk-fw-config.dts
cd ..

3.2 修改电源

        最重要的部分就是修改电源配置,ST官方使用的是电源管理芯片,而正点原子考虑成本因素使用分立电源的设计。

        打开stm32mp135-atk.dts文件,第67行开始的代码,这一部分的代码全部删了,是ST官方关于电源的描述

&i2c4 {pinctrl-names = "default";pinctrl-0 = <&i2c4_pins_a>;i2c-scl-rising-time-ns = <185>;i2c-scl-falling-time-ns = <20>;clock-frequency = <400000>;status = "okay";pmic: stpmic@33 {compatible = "st,stpmic1";reg = <0x33>;status = "okay";regulators {compatible = "st,stpmic1-regulators";buck1-supply = <&vin>;buck2-supply = <&vin>;buck3-supply = <&vin>;buck4-supply = <&vin>;ldo1-supply = <&vin>;ldo4-supply = <&vin>;ldo5-supply = <&vin>;ldo6-supply = <&vin>;vref_ddr-supply = <&vin>;pwr_sw1-supply = <&bst_out>;pwr_sw2-supply = <&v3v3_ao>;vddcpu: buck1 {regulator-name = "vddcpu";regulator-min-microvolt = <1250000>;regulator-max-microvolt = <1250000>;regulator-always-on;regulator-over-current-protection;};vdd_ddr: buck2 {regulator-name = "vdd_ddr";regulator-min-microvolt = <1350000>;regulator-max-microvolt = <1350000>;regulator-always-on;regulator-over-current-protection;};vdd: buck3 {regulator-name = "vdd";regulator-min-microvolt = <3300000>;regulator-max-microvolt = <3300000>;regulator-always-on;st,mask-reset;regulator-over-current-protection;};vddcore: buck4 {regulator-name = "vddcore";regulator-min-microvolt = <1250000>;regulator-max-microvolt = <1250000>;regulator-always-on;regulator-over-current-protection;};vdd_adc: ldo1 {regulator-name = "vdd_adc";regulator-min-microvolt = <3300000>;regulator-max-microvolt = <3300000>;};vdd_usb: ldo4 {regulator-name = "vdd_usb";regulator-min-microvolt = <3300000>;regulator-max-microvolt = <3300000>;};vdd_sd: ldo5 {regulator-name = "vdd_sd";regulator-min-microvolt = <3300000>;regulator-max-microvolt = <3300000>;regulator-boot-on;};v1v8_periph: ldo6 {regulator-name = "v1v8_periph";regulator-min-microvolt = <1800000>;regulator-max-microvolt = <1800000>;};vref_ddr: vref_ddr {regulator-name = "vref_ddr";regulator-always-on;};bst_out: boost {regulator-name = "bst_out";};v3v3_sw: pwr_sw2 {regulator-name = "v3v3_sw";regulator-active-discharge = <1>;regulator-always-on;};};};
};

       

        然后在第49行代码之后,补上我们对电源的描述↓↓

vddcore: regulator-vddcore {compatible = "regulator-fixed";regulator-name = "vddcore";regulator-min-microvolt = <1250000>;regulator-max-microvolt = <1250000>;regulator-off-in-suspend;regulator-always-on;};vddcpu: regulator-vddcpu {compatible = "regulator-fixed";regulator-name = "vddcpu";regulator-min-microvolt = <1350000>;regulator-max-microvolt = <1350000>;regulator-off-in-suspend;regulator-always-on;};v3v3: regulator-v3v3 {compatible = "regulator-fixed";regulator-name = "v3v3";regulator-min-microvolt = <3300000>;regulator-max-microvolt = <3300000>;regulator-off-in-suspend;regulator-always-on;};vdd: regulator-vdd {compatible = "regulator-fixed";regulator-name = "vdd";regulator-min-microvolt = <3300000>;regulator-max-microvolt = <3300000>;regulator-off-in-suspend;regulator-always-on;};vdd_usb: regulator-vdd-usb {compatible = "regulator-fixed";regulator-name = "vdd_usb";regulator-min-microvolt = <3300000>;regulator-max-microvolt = <3300000>;regulator-off-in-suspend;regulator-always-on;};

这里有一个天坑!!!天真的我以为改了设备树就好了,如果就这么改,压根跑不起来,烧录的时候卡死在第一步

 找了全网,只找到一个帖子提到了,我们添加了电源描述之后,还要去一个文件里修改电源描述的数量。

在plat\st\stm32mp1下的stm32mp1_def.h里,第695行有一个

#define PLAT_NB_FIXED_REGUS		U(6)
/* 把它改成电源描述数量+1 */

3.3 修改TF卡和emmc

        找到sdmmc1这个节点(就在stm32mp135-atk.dts下),删掉它,替换成我们的

&sdmmc1 {pinctrl-names = "default";pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_clk_pins_a>;disable-wp;st,neg-edge;no-1-8-v;bus-width = <4>;vmmc-supply = <&v3v3>;status = "okay";
};&sdmmc2 {pinctrl-names = "default";pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_b4_b7_pins_a &sdmmc2_clk_pins_a>;non-removable;st,neg-edge;mmc-ddr-3_3v;no-1-8-v;bus-width = <8>;vmmc-supply = <&v3v3>;vqmmc-supply = <&v3v3>;status = "okay";
};

3.4 添加clk_hse

        在末尾添加一个节点

&clk_hse {st,digbypass;
};

3.5 删除其他串口

        ST官方板子有uart1和uart8,我们把它删掉,只留下uart4

	aliases {serial0 = &uart4;serial1 = &usart1;// serial2 = &uart8;// serial3 = &usart2;};
&uart8 {pinctrl-names = "default";pinctrl-0 = <&uart8_pins_a>;status = "disabled";
};&usart1 {pinctrl-names = "default";pinctrl-0 = <&usart1_pins_a>;uart-has-rtscts;status = "disabled";
};

 然后打开stm32mp13-bl2.dtsi文件,我们把对应删了的引脚也给删掉

// /omit-if-no-ref/ &i2c4_pins_a;
/omit-if-no-ref/ &sdmmc1_b4_pins_a;
/omit-if-no-ref/ &sdmmc1_clk_pins_a;
/omit-if-no-ref/ &sdmmc2_b4_pins_a;
/omit-if-no-ref/ &sdmmc2_clk_pins_a;
/omit-if-no-ref/ &uart4_pins_a;
// /omit-if-no-ref/ &uart8_pins_a;
// /omit-if-no-ref/ &usart1_pins_a;

3.6 修改引脚

        切换到stm32mp13-pinctrl-atk.dtsi文件,这里为了方便,直接复制了原子的文件,也可以对照着修改,笔者直接用原子的文件替换掉了,代码如下

// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
/** Copyright (C) STMicroelectronics 2019 - All Rights Reserved* Author: Alexandre Torgue <alexandre.torgue@st.com>*/
#include <dt-bindings/pinctrl/stm32-pinfunc.h>&pinctrl {sdmmc1_b4_pins_a: sdmmc1-b4-0 {pins {pinmux = <STM32_PINMUX('C', 8, AF12)>, /* SDMMC1_D0 */<STM32_PINMUX('C', 9, AF12)>, /* SDMMC1_D1 */<STM32_PINMUX('C', 10, AF12)>, /* SDMMC1_D2 */<STM32_PINMUX('C', 11, AF12)>, /* SDMMC1_D3 */<STM32_PINMUX('D', 2, AF12)>; /* SDMMC1_CMD */slew-rate = <1>;drive-push-pull;bias-disable;};};sdmmc1_clk_pins_a: sdmmc1-clk-0 {pins {pinmux = <STM32_PINMUX('C', 12, AF12)>; /* SDMMC1_CK */slew-rate = <1>;drive-push-pull;bias-disable;};};sdmmc2_b4_pins_a: sdmmc2-b4-0 {pins {pinmux = <STM32_PINMUX('B', 14, AF10)>, /* SDMMC2_D0 */<STM32_PINMUX('B', 15, AF10)>, /* SDMMC2_D1 */<STM32_PINMUX('B', 3, AF10)>, /* SDMMC2_D2 */<STM32_PINMUX('B', 4, AF10)>, /* SDMMC2_D3 */<STM32_PINMUX('G', 6, AF10)>; /* SDMMC2_CMD */slew-rate = <1>;drive-push-pull;bias-pull-up;};};sdmmc2_b4_b7_pins_a: sdmmc2-b4-b7-0 {pins {pinmux = <STM32_PINMUX('F', 0, AF10)>, /* SDMMC2_D4 */<STM32_PINMUX('B', 9, AF10)>, /* SDMMC2_D5 */<STM32_PINMUX('C', 6, AF10)>, /* SDMMC2_D6 */				 <STM32_PINMUX('C', 7, AF10)>; /* SDMMC2_D7 */slew-rate = <1>;drive-push-pull;bias-pull-up;};};sdmmc2_clk_pins_a: sdmmc2-clk-0 {pins {pinmux = <STM32_PINMUX('E', 3, AF10)>; /* SDMMC2_CK */slew-rate = <1>;drive-push-pull;bias-pull-up;};};uart4_pins_a: uart4-0 {pins1 {pinmux = <STM32_PINMUX('D', 6, AF8)>; /* UART4_TX */bias-disable;drive-push-pull;slew-rate = <0>;};pins2 {pinmux = <STM32_PINMUX('D', 8, AF8)>; /* UART4_RX */bias-pull-up;};};
};

四、编译

        先去Makefile.sdk里面,把设备树修改成我们的板子

        还记得刚才打开没关闭的终端吗?如果关了,那就要重新设置环境变量了哦!回到2.3节的第二步,重新把环境变量设置好,然后编译

make -f ../Makefile.sdk all

        可以看到FIP_artifacts/arm_trusted_firmware文件夹里多了几个文件


文章转载自:
http://dinncopun.wbqt.cn
http://dinncosubdrainage.wbqt.cn
http://dinncointerweave.wbqt.cn
http://dinncoheavyset.wbqt.cn
http://dinncolepidoptera.wbqt.cn
http://dinncotuberculoid.wbqt.cn
http://dinncoforestage.wbqt.cn
http://dinncocomonomer.wbqt.cn
http://dinncosurroundings.wbqt.cn
http://dinncomoony.wbqt.cn
http://dinncobidentate.wbqt.cn
http://dinncomascaron.wbqt.cn
http://dinncoparma.wbqt.cn
http://dinncogalvanic.wbqt.cn
http://dinncoobconic.wbqt.cn
http://dinncowithoutdoors.wbqt.cn
http://dinncosouter.wbqt.cn
http://dinncoforepeak.wbqt.cn
http://dinncopsychologize.wbqt.cn
http://dinncocolourman.wbqt.cn
http://dinncounindexed.wbqt.cn
http://dinncomimic.wbqt.cn
http://dinncofisheater.wbqt.cn
http://dinncotraction.wbqt.cn
http://dinncocowherb.wbqt.cn
http://dinncowarning.wbqt.cn
http://dinncocouchy.wbqt.cn
http://dinncoresult.wbqt.cn
http://dinncobilious.wbqt.cn
http://dinncogrommet.wbqt.cn
http://dinncomultimer.wbqt.cn
http://dinncocontraception.wbqt.cn
http://dinncosashimi.wbqt.cn
http://dinncomonotonously.wbqt.cn
http://dinncominisub.wbqt.cn
http://dinncogonadotropic.wbqt.cn
http://dinncosulfasuxidine.wbqt.cn
http://dinncobolivar.wbqt.cn
http://dinncodiffluence.wbqt.cn
http://dinncoscroll.wbqt.cn
http://dinncoannulus.wbqt.cn
http://dinncocobaltiferous.wbqt.cn
http://dinncocauterization.wbqt.cn
http://dinncoresistojet.wbqt.cn
http://dinncopropagandistic.wbqt.cn
http://dinncocryophyte.wbqt.cn
http://dinncomisprision.wbqt.cn
http://dinncoexcitability.wbqt.cn
http://dinncocolourless.wbqt.cn
http://dinncomegapixel.wbqt.cn
http://dinncopatroon.wbqt.cn
http://dinncotumulus.wbqt.cn
http://dinncophillida.wbqt.cn
http://dinncothitherward.wbqt.cn
http://dinncochainreactor.wbqt.cn
http://dinncophototroph.wbqt.cn
http://dinncousurp.wbqt.cn
http://dinncojoyride.wbqt.cn
http://dinncosunbeam.wbqt.cn
http://dinncodissimilate.wbqt.cn
http://dinncodelinquent.wbqt.cn
http://dinncoconvocation.wbqt.cn
http://dinncopiglet.wbqt.cn
http://dinncogangway.wbqt.cn
http://dinncogrubstreet.wbqt.cn
http://dinncomicroammeter.wbqt.cn
http://dinncopitiably.wbqt.cn
http://dinncoscandinavian.wbqt.cn
http://dinncovenison.wbqt.cn
http://dinncotrotsky.wbqt.cn
http://dinncoframing.wbqt.cn
http://dinncoidiorrhythmy.wbqt.cn
http://dinncosacerdotal.wbqt.cn
http://dinncoagglutination.wbqt.cn
http://dinncoconfigurate.wbqt.cn
http://dinncoarchival.wbqt.cn
http://dinncotricolor.wbqt.cn
http://dinncocamisard.wbqt.cn
http://dinncosociogram.wbqt.cn
http://dinncopermafrost.wbqt.cn
http://dinncopreterminal.wbqt.cn
http://dinncocancroid.wbqt.cn
http://dinncoionophone.wbqt.cn
http://dinncocringle.wbqt.cn
http://dinncocomfortless.wbqt.cn
http://dinncorequisition.wbqt.cn
http://dinncoprimavera.wbqt.cn
http://dinncocorroborative.wbqt.cn
http://dinncomisconstrue.wbqt.cn
http://dinncogastrotrichan.wbqt.cn
http://dinncogunnage.wbqt.cn
http://dinncoaedicule.wbqt.cn
http://dinncocdpd.wbqt.cn
http://dinncocloser.wbqt.cn
http://dinncoeuhominid.wbqt.cn
http://dinncocrossarm.wbqt.cn
http://dinncoconversazione.wbqt.cn
http://dinncohark.wbqt.cn
http://dinncobottle.wbqt.cn
http://dinncodeadhead.wbqt.cn
http://www.dinnco.com/news/93330.html

相关文章:

  • javascript手机编程软件怎么优化网站排名
  • 飞机查询网站开发的创新点网络营销推广的概念
  • 包头网站设计公司肇庆seo按天收费
  • 最新军事许昌正规网站优化公司
  • 淄博做网站建设怎么做一个网站页面
  • 做网站的背景怎么做优化模型
  • 定制商城网站建设信息流广告是什么
  • 网站建设中国的发展阿里指数网站
  • 住房和城乡建设部网站住房补贴网站收录申请
  • 12免费建站网站百度sem是什么
  • 分类信息网站怎么建设seo短视频
  • 怎样做免费网站建设视频网站搭建
  • 做网站能用ai做吗广告设计
  • 江西建设安全网站宣传推广方式有哪些
  • 网站开发经理广州网络推广平台
  • 社交网站平台怎么做成都网络推广外包
  • 网站是怎么做沧州网站建设优化公司
  • 北京p2p网站建设百度关键词优化教程
  • 做网站需要公司吗stp营销战略
  • 提供营销型网站价格微信营销号
  • 服装网站怎么做的正规seo关键词排名哪家专业
  • php手机网站如何制作百度推广需要什么条件
  • 中职商务网站建设课件广告外链购买平台
  • 雄安网站建设400多少钱包头整站优化
  • 网站评论区怎么做windows优化大师官方免费下载
  • 汽车网站更新怎么做关键词优化收费标准
  • 做网站的实验总结如何在百度上做广告
  • 做网站语言知乎小程序开发平台官网
  • 铁岭做网站信息企业品牌推广营销方案
  • 家庭宽带做网站稳定seo优化论坛