openWRT的DTS文件配置--MT7620A

2023-10-27

原文地址:http://blog.chinaunix.net/uid-29616823-id-4390033.html

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

接上xx路由器的串口后有输出但无法输入,用示波器量下信号-----可能是uboot里面把RX引脚给配置了。

1.属性的定义采用property = value的形式,“”字符串、<>32或64位值、[]二进制[0x01 0x02]
2.用=赋值的才是节点属性,其他是子节点。
3.root节点的compitable属性供内核选择匹配机器码machinetype,其他节点的compitable属性供内核选择匹配对应的驱动
(如三星2416的lcd控制器节点,内核里面lcd的驱动有很多)
4.DTB文件头boot_paras_header,其中的magic字段用来标志Uboot传来的启动参数是DTB还是taglist(bootargs)
,xx_offset标志DTB在内存中的地址。
compatible:兼容的,相容的


/ {---------------------"/"表示根节点的名称,一个设备树只能有一个根节点多个文件中的根节点在编译时会被合并。
#address-cells = <1>;---------------表示地址空间的个数,如系统有两片内存,那就需要<a b c d>两组数据来表示,ab表示内存1的空间 cd表示内存2空间。
#size-cells = <1>;------------------表示地址空间所需字节数,如表示64位的GPIO控制寄存器组就需要<0x00000001 0x000000002 0x00000001 0x000000006>
表示的空间是0x0000000100000000200000001000000006
compatible = "ralink,mtk7620a-soc";----“compatible”属性表示CPU所述系列,如mips架构ralink,mtk7620a系列
、arm架构stm32,cortex-M3系列。

cpus {
cpu@0 {---------节点名称@节点寄存器偏移地址或节点设备编号,若该节点无reg属性则不写定义成空节点即可。
compatible = "mips,mips24KEc";
};
};


chosen {
bootargs = "console=ttyS0,57600";-----通过dts给内核传递uboot的bootargs参数,uboot省事了
};


cpuintc: cpuintc@0 {-------------该节点名称是中断控制器,cpuintc是标签即cpuintc@0,
为了方便引用cpuintc@0。
#address-cells = <0>;
#interrupt-cells = <1>;
interrupt-controller;
compatible = "mti,cpu-interrupt-controller";
};


palmbus@10000000 {------palmbus类似arm的AMBA,属于片内总线。
compatible = "palmbus";
reg = <0x10000000 0x200000>;---reg属性表示该控制器的reg地址及总长度
                ranges = <0x0 0x10000000 0x1FFFFF>;


#address-cells = <1>;----若节点的子节点有控制寄存器,则必须定义这两个属性。
#size-cells = <1>;


sysc@0 {
compatible = "ralink,mt7620a-sysc", "ralink,rt3050-sysc";
reg = <0x0 0x100>;
};


timer@100 {
compatible = "ralink,mt7620a-timer", "ralink,rt2880-timer";
reg = <0x100 0x20>;


interrupt-parent = <&intc>;
interrupts = <1>;
};


watchdog@120 {
compatible = "ralink,mt7620a-wdt", "ralink,rt2880-wdt";
reg = <0x120 0x10>;


resets = <&rstctrl 8>;
reset-names = "wdt";


interrupt-parent = <&intc>;
interrupts = <1>;
};


intc: intc@200 {-----intc为标签(为方便被其他节点引用)
compatible = "ralink,mt7620a-intc", "ralink,rt2880-intc";
reg = <0x200 0x100>;


resets = <&rstctrl 19>;
reset-names = "intc";


interrupt-controller;
#interrupt-cells = <1>;


interrupt-parent = <&cpuintc>;--------引用节点cpuintc
interrupts = <2>;
};


memc@300 {----------描述系统内存的节点,为根节点的子节点
compatible = "ralink,mt7620a-memc", "ralink,rt3050-memc";
reg = <0x300 0x100>;


resets = <&rstctrl 20>;
reset-names = "mc";


interrupt-parent = <&intc>;
interrupts = <3>;
};


gpio0: gpio@600 {
compatible = "ralink,mt7620a-gpio", "ralink,rt2880-gpio";
reg = <0x600 0x34>;


resets = <&rstctrl 13>;
reset-names = "pio";


interrupt-parent = <&intc>;
interrupts = <6>;---------表示其在中断控制器中的硬件中断编号,分系统异常中断/systick中断/两个外部中断。。。等


gpio-controller;
#gpio-cells = <2>;-----表示gpio控制寄存器是64位的


ralink,gpio-base = <0>;----该组gpio从GPIO0开始
ralink,num-gpios = <24>;-------到GPIO24结束
ralink,register-map = [ 00 04 08 0c
20 24 28 2c
30 34 ];
};


gpio1: gpio@638 {
compatible = "ralink,mt7620a-gpio", "ralink,rt2880-gpio";
reg = <0x638 0x24>;


interrupt-parent = <&intc>;
interrupts = <6>;


gpio-controller;
#gpio-cells = <2>;


ralink,gpio-base = <24>;
ralink,num-gpios = <16>;
ralink,register-map = [ 00 04 08 0c
10 14 18 1c
20 24 ];-----执行cat /proc/iomem显示的数值?


status = "disabled";
};


gpio2: gpio@660 {
compatible = "ralink,mt7620a-gpio", "ralink,rt2880-gpio";
reg = <0x660 0x24>;


interrupt-parent = <&intc>;
interrupts = <6>;


gpio-controller;
#gpio-cells = <2>;


ralink,gpio-base = <40>;
ralink,num-gpios = <32>;
ralink,register-map = [ 00 04 08 0c
10 14 18 1c
20 24 ];


status = "disabled";
};


gpio3: gpio@688 {
compatible = "ralink,mt7620a-gpio", "ralink,rt2880-gpio";
reg = <0x688 0x24>;


interrupt-parent = <&intc>;
interrupts = <6>;


gpio-controller;
#gpio-cells = <2>;


ralink,gpio-base = <72>;
ralink,num-gpios = <1>;
ralink,register-map = [ 00 04 08 0c
10 14 18 1c
20 24 ];


status = "disabled";
};


i2c@900 {
compatible = "link,mt7620a-i2c", "ralink,rt2880-i2c";
reg = <0x900 0x100>;


resets = <&rstctrl 16>;
reset-names = "i2c";


#address-cells = <1>;
#size-cells = <0>;


status = "disabled";


pinctrl-names = "default";----i2c除了对i2c控制器寄存器定义外,还要对i2c所用的gpio管脚定义
pinctrl-0 = <&i2c_pins>;
};


i2s@a00 {
compatible = "ralink,mt7620a-i2s";
reg = <0xa00 0x100>;


resets = <&rstctrl 17>;
reset-names = "i2s";


interrupt-parent = <&intc>;
interrupts = <10>;


dmas = <&gdma 4>,
<&gdma 5>;
dma-names = "tx", "rx";


status = "disabled";
};


spi@b00 {
compatible = "ralink,mt7620a-spi", "ralink,rt2880-spi";
reg = <0xb00 0x100>;


resets = <&rstctrl 18>;
reset-names = "spi";


#address-cells = <1>;
#size-cells = <1>;


status = "disabled";


pinctrl-names = "default";
pinctrl-0 = <&spi_pins>;-----spi_pins不在dts文件中定义?
};


uartlite@c00 {
compatible = "ralink,mt7620a-uart", "ralink,rt2880-uart", "ns16550a";
reg = <0xc00 0x100>;


resets = <&rstctrl 19>;
reset-names = "uartl";


interrupt-parent = <&intc>;
interrupts = <12>;


reg-shift = <2>;


pinctrl-names = "default";
pinctrl-0 = <&uartlite_pins>;
};


uart@500 {
compatible = "ralink,mt7620a-uart", "ralink,rt2880-uart", "ns16550a";
reg = <0x500 0x100>;


resets = <&rstctrl 12>;
reset-names = "uart";


interrupt-parent = <&intc>;
interrupts = <5>;


reg-shift = <2>;


pinctrl-names = "default";
pinctrl-0 = <&pcm_uartf_pins>;
};


systick@d00 {
compatible = "ralink,mt7620a-systick", "ralink,cevt-systick";
reg = <0xd00 0x10>;


resets = <&rstctrl 28>;
reset-names = "intc";


interrupt-parent = <&cpuintc>;
interrupts = <7>;
};


pcm@2000 {
compatible = "ralink,mt7620a-pcm";
reg = <0x2000 0x800>;


resets = <&rstctrl 11>;--------resets属性含义?
reset-names = "pcm";


interrupt-parent = <&intc>;
interrupts = <4>;


status = "disabled";
};


gdma: gdma@2800 {
compatible = "ralink,mt7620a-gdma", "ralink,rt2880-gdma";
reg = <0x2800 0x800>;


resets = <&rstctrl 14>;
reset-names = "dma";


interrupt-parent = <&intc>;
interrupts = <7>;


#dma-cells = <1>;
#dma-channels = <16>;
#dma-requests = <16>;


status = "disabled";
};
};


pinctrl {
compatible = "ralink,rt2880-pinmux";
pinctrl-names = "default";
pinctrl-0 = <&state_default>;
state_default: pinctrl0 {
};
pcm_uartf_pins: pcm_uartf {
pcm_uartf {
ralink,group = "uartf";
ralink,function = "pcm uartf";
};
};
spi_pins: spi {
spi {
ralink,group = "spi";
ralink,function = "spi";
};
};
i2c_pins: i2c {
i2c {
lantiq,group = "i2c";
lantiq,function = "i2c";
};
};
uartlite_pins: uartlite {
uart {
ralink,group = "uartlite";
ralink,function = "uartlite";
};
};
mdio_pins: mdio {
mdio {
ralink,group = "mdio";
ralink,function = "mdio";
};
};
ephy_pins: ephy {
ephy {
ralink,group = "ephy";
ralink,function = "ephy";
};
};
wled_pins: wled {
wled {
ralink,group = "wled";
ralink,function = "wled";
};
};
rgmii1_pins: rgmii1 {
rgmii1 {
ralink,group = "rgmii1";
ralink,function = "rgmii1";
};
};
rgmii2_pins: rgmii2 {
rgmii2 {
ralink,group = "rgmii2";
ralink,function = "rgmii2";
};
};
};


rstctrl: rstctrl {
compatible = "ralink,mt7620a-reset", "ralink,rt2880-reset";
#reset-cells = <1>;
};


ubsphy {
compatible = "ralink,mt7620a-usbphy";


resets = <&rstctrl 22 &rstctrl 25>;
reset-names = "host", "device";
};


ethernet@10100000 {
compatible = "ralink,mt7620a-eth";
reg = <0x10100000 10000>;


#address-cells = <1>;
#size-cells = <0>;


interrupt-parent = <&cpuintc>;
interrupts = <5>;


resets = <&rstctrl 21 &rstctrl 23>;----当<>内出现多个数据时,一般两个数据一组。。。
reset-names = "fe", "esw";


port@4 {
compatible = "ralink,mt7620a-gsw-port", "ralink,eth-port";
reg = <4>;


status = "disabled";
};


port@5 {
compatible = "ralink,mt7620a-gsw-port", "ralink,eth-port";
reg = <5>;


status = "disabled";
};


mdio-bus {
#address-cells = <1>;
#size-cells = <0>;


status = "disabled";
};
};


gsw@10110000 {
compatible = "ralink,mt7620a-gsw";
reg = <0x10110000 8000>;


interrupt-parent = <&intc>;
interrupts = <17>;
};


sdhci@10130000 {
compatible = "ralink,mt7620a-sdhci";
reg = <0x10130000 4000>;


interrupt-parent = <&intc>;
interrupts = <14>;


status = "disabled";
};


ehci@101c0000 {
compatible = "ralink,rt3xxx-ehci";
reg = <0x101c0000 0x1000>;


interrupt-parent = <&intc>;
interrupts = <18>;


status = "disabled";
};


ohci@101c1000 {
compatible = "ralink,rt3xxx-ohci";
reg = <0x101c1000 0x1000>;


interrupt-parent = <&intc>;
interrupts = <18>;


status = "disabled";
};


pcie@10140000 {
compatible = "ralink,mt7620a-pci";
reg = <0x10140000 0x100
0x10142000 0x100>;


resets = <&rstctrl 26>;
reset-names = "pcie0";


interrupt-parent = <&cpuintc>;
interrupts = <4>;


status = "disabled";
};
};
==============================================================================
例如一个在.dts文件中关于gpio资源的描述:
  gpio: gpio-controller@1070000000800 {
            #gpio-cells = <2>;
            compatible = "cavium,octeon-3860-gpio";
            reg = <0x10700 0x00000800 0x0 0x100>;


            gpio-controller;
........
根据其描述, 可知道gpio控制器的IO内存起始地址为:0x107900000800, 长度为0x100.
即从 0x107900000800 到 0x1079000008ff.
在目标板里使用  cat /proc/iomem  可以看到:
1070000000800-10700000008ff : /soc@0/gpio-controller@1070000000800

====================================================================================
/dts-v1/;


/include/ "xxe.dtsi"


/ {
compatible = "xxx0", "ralink,mt7620a-soc";
model = "xxxxx";------model属性表示my board name。


palmbus@10000000 {
gpio1: gpio@638 {
status = "okay";
};


gpio2: gpio@660 {
status = "okay";
};


spi@b00 {
status = "okay";


m25p80@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "en25q64";
reg = <0 0>;
linux,modalias = "m25p80", "w25p128";
spi-max-frequency = <10000000>;


partition@0 {----@后面为该节点寄存器的偏移地址或设备编号
label = "u-boot";
reg = <0x0 0x30000>;---reg属性表示寄存器偏移地址和长度,
还能表示flash分区的便宜地址和长度
read-only;
};


partition@30000 {
label = "u-boot-env";
reg = <0x30000 0x10000>;
read-only;
};


factory: partition@40000 {
label = "factory";
reg = <0x40000 0x10000>;
};


partition@50000 {
label = "firmware";
reg = <0x50000 0xfb0000>;
};
};
};
};


pinctrl {
state_default: pinctrl0 {
default {
ralink,group = "i2c", "rgmii1", "rgmii2";
ralink,function = "gpio";
};
};
};


ethernet@10100000 {
mtd-mac-address = <&factory 0x28>;
ralink,port-map = "llllw";
};


gsw@10110000 {
ralink,port4 = "ephy";
};


ehci@101c0000 {
status = "okay";
};


ohci@101c1000 {
status = "okay";
};


gpio-leds {
compatible = "gpio-leds";


sys {
label = "xxx:blue:sys";
gpios = <&gpio2 20 1>;---用gpio2组的GPIO管脚,偏移地址是20即该组的第20个管脚,默认输出高电平。
}; 


wan {
label = "xxx:blue:wan";
gpios = <&gpio2 24 1>;
};


wireless {
label = "xxx:blue:wireless";
gpios = <&gpio2 21 1>;
};
};


gpio-keys-polled {
compatible = "gpio-keys-polled";
#address-cells = <1>;
#size-cells = <0>;
poll-interval = <20>;


zigbee {
label = "zigbee";
gpios = <&gpio2 23 1>;-------按此按键后开启zigbee模块业务?
linux,code = <0x197>;
};
reset {
label = "reset";
gpios = <&gpio2 22 1>;
linux,code = <0x198>;-------该属性的含义?
}; 
};


i2c-gpio {
compatible = "i2c-gpio";
gpios = <&gpio0 1 0 &gpio0 2 0>;-------i2c总线配置两个GPIO管脚
i2c-gpio,delay-us = <100>; /*10KHz */
#address-cells = <1>;
#size-cells = <0>;

pcf8563@51 {-----------------pcf8563为挂在该i2c总线的rtc芯片型号
compatible = "nxp,pcf8563";
reg = <0x51>;
}; 
};
};


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

openWRT的DTS文件配置--MT7620A 的相关文章

  • Node exec 无权执行脚本

    直到最近 它都运行良好 但是当我今天尝试使用它时 它无法正常运行 它返回以下错误 错误 命令失败 bin sh c home pi RPi Computer Power RPi Server routes scripts hash js 1
  • vm.dirty_ratio 和 vm.dirty_background_ratio 之间的区别?

    我目前正在试验中找到的内核参数 proc sys vm 尤其dirty ratio and dirty background ratio 内核文档对两者都有以下解释 脏背景比例 包含 以包含空闲页面的总可用内存的百分比表示 和可回收页 后台
  • __libc_start_main 发生了什么?

    我真的很想理解从高级代码到可执行文件的步骤 但是遇到了一些困难 我写了一个空的int main C 文件并尝试通过以下方式破译反汇编objdump d 这是发生的事情 in start 设置对齐方式 将参数压入堆栈 调用 libc star
  • 远程 ssh 命令:第一个回显输出丢失

    我试图通过 ssh 1 liner 调用在远程机器上运行多个命令 方法是将它们指定为传递给 bash c 的分号分隔字符串 它适用于某些情况 但不适用于其他情况 看一下这个 Note the echo 1 output is lost ba
  • Linux 源代码中的哪个位置会识别特定的 USB 设备?

    我有一个特定的 USB 设备 我想检查其 Linux 驱动程序源代码 我的理解是 USB 驱动程序执行的第一步是注册自己能够处理具有特定供应商 ID 和产品 ID 的设备 就我而言 供应商 ID 是0BDA产品 ID 是8187 有了这些信
  • bash 或 sh 中的“=”和“==”运算符有什么区别

    我意识到 和 运算符都可以在 if 语句中使用 例如 var some string if var some string then doing something fi if var some string then doing some
  • Linux 的 gcc __attribute__((selectany)) 替代方案?

    我想知道是否有替代方案 attribute selectany 在Linux中 我想定义这样的东西 char a qwe zxc 并将其包含在许多链接在一起的 c 文件中 因此链接器将看到 a 的多个定义 因此不会链接 我读过这个属性 se
  • 将一个文件写入.c中的另一个文件

    我有一个读取文件然后将其内容复制到另一个文件的代码 我需要使其仅复制每 20 个符号 然后跳过 10 个符号 然后再次跳过 20 个符号 依此类推 我必须使用 lseek 函数 但我不知道如何将所有这些放入循环中来执行此操作 main ar
  • 从命名管道读取

    我必须实现一个 打印服务器 我有 1 个客户端文件和 1 个服务器文件 include
  • 尝试 SSH 时设备的 ioctl 不合适

    我正在尝试通过 SSH 连接几台服务器并尝试获取sudo l每个服务器的输出 下面是我正在执行的脚本 bin bash serverlist tmp servers while IFS read r server netgroup user
  • 不同GIT版本的GIT合并结果不同

    在不同的 GIT 版本上运行 merge 命令我们得到不同的结果 命令是 git merge no ff origin master codeline Results 版本2 1 4 gt 合并成功 版本1 7 1 gt 同一提交上的同一合
  • 将用户添加到组但运行“id”时未反映

    R 创建了一个名为 Staff 的组 我希望能够在不以 sudo 身份启动 R 的情况下更新软件包 所以我使用以下方法将自己添加到员工中 sudo usermod G adm dialout cdrom plugdev lpadmin ad
  • 使用 gatttool 或 bluepy BLE 订阅通知

    我正在使用 bluepy 编写一个程序 用于监听蓝牙设备发送的特征 我还可以使用任何库或语言 唯一的限制是在 Linux 上运行 而不是在移动环境中运行 似乎仅在移动设备中广泛使用 没有人在桌面上使用 BLE 使用 bluepy 我注册了委
  • 如何随时暂停 pthread?

    最近我开始将 ucos ii 移植到 Ubuntu PC 上 我们知道 在pthread的回调函数中的 while 循环中简单地添加一个标志来执行暂停和恢复是不可能模拟ucos ii中的 进程 的 如下解决方案 因为ucos ii中的 进程
  • 代码::块 - 警告:GDB:无法设置控制终端:不允许操作

    我已经通过官方存储库在 Ubuntu 14 04 中安装了 Code Blocks 13 12 当我编译时 一切正常 但是当我调试时 shell 中会显示以下消息 警告 GDB 无法设置控制终端 操作不正确 允许的 程序执行到断点 但当我执
  • 访问 Linux 线程(pthreads)的本地堆栈

    我目前正在实现一个使用多线程但对总内存消耗有要求的应用程序 我希望有一个主线程执行 I O 并有几个工作线程执行计算 目前 我在主堆栈上有几个可供工作人员访问的数据结构 我使用 OpenMP 进行工作分配 由于主 工作者模式不能很好地与 O
  • sed 仅最后一个匹配模式

    我想sed仅文本文件的最后一个匹配模式 输入文件 boy boy girl boy 输出文件 boy boy girl boys 一种方法是反转文件 仅替换第一个匹配项 然后再次反转 tac
  • Nasm 打印到下一行

    我用 nasm Assembly 编写了以下程序 section text global start start Input variables mov edx inLen mov ecx inMsg mov ebx 1 mov eax 4
  • bash双括号问题

    我对 bash 脚本非常陌生 在使用双括号时遇到了问题 我似乎无法让它们在 Ubuntu Server 11 10 中工作 我的下面的脚本位于 if test sh 中 bin bash if 14 14 then echo FOO fi
  • 从 Linux 命令行发送 SNMP 陷阱消息

    Folks 我需要从 Linux 命令行使用此命令 snmptrap 将自定义消息发送到陷阱侦听器 我需要根据用户设置在 v1 和 v2c 中发送相同的消息 这是我发现的 For v1 snmptrap v 1 c Tas hostname

随机推荐

  • Springboot整合SpringSecurity

    使用Basic认证模式 1 maven依赖
  • 26.JavaWeb-SpringSecurity安全框架

    1 SpringSecurity安全框架 Spring Security是一个功能强大且灵活的安全框架 它专注于为Java应用程序提供身份验证 Authentication 授权 Authorization 和其他安全功能 Spring S
  • csv反序列化_序列化与反序列化

    toc 定义 序列化 将对象或数据结构转换成约定格式数据的过程 反序列化 将约定格式的数据转换成对象或数据结构的过程 通常我们将这种 约定格式的数据 称之为序列化协议 根据协议的特点序列化协议可以细分为文本序列化协议 以下简称文本协议 和二
  • 网线直连NUC调试并使用VSCode实现X11转发(Jetson,树莓派适用)

    1 场景描述 此种场景下 NUC与PC机通过一根网线进行连接 网线负责PC与NUC进行通信 SSH连接 同时可以将NUC的图形界面转发到PC 远程桌面或X11窗口转发均可 方便战队成员在没有显示器的场景下对NUC进行调试 配置示例如下图所示
  • springboot微服务前端传参数至后端的几个方式,@RequestBody如何传入多个参数@RequestParam

    一 问题 在接口测试工具中 常常要传入参数 初学者 也就是我菜鸡经常传错参数 不明白在Query还是Body里面传参 以及测试工具 AxxPoxx 测试下载接口的时候为什么发送数据成功却没有下载文档下来 后端参数传输方式 二 解决 quer
  • JNDI 资源

    第 6 章 JNDI 资源 Java 命名和目录接口 Java Naming and Directory Interface JNDI 是一种应用编程接口 application programming interface API 用于访问
  • "NO 3D support is available from the host"

    https forums opensuse org showthread php 494522 No 3d Support or graphics accelleration http askubuntu com questions 537
  • 【项目设计】高并发内存池 (四)[pagecache实现]

    C 学习历程 入门 博客主页 一起去看日落吗 持续分享博主的C 学习历程 博主的能力有限 出现错误希望大家不吝赐教 分享给大家一句我很喜欢的话 也许你现在做的事情 暂时看不到成果 但不要忘记 树 成长之前也要扎根 也要在漫长的时光 中沉淀养
  • 解决出现“raw.githubusercontent.com (raw.githubusercontent.com)

    服务器安装软件的时候出现 正在连接 raw githubusercontent com raw githubusercontent com 0 0 0 0 443 失败 拒绝连接 是因为改网址是被墙的 但是还是需要安装软件怎么办 打开多个地
  • 固态U盘量产:群联PS3111主控开卡量产工具使用教程

    PS3111开卡量产工具是一款专门用来进行量产的软件工具 下面将为大家提供使用教程 以帮助大家更加顺利地进行U盘量产 1 下载PS3111开卡量产工具 首先 需要在量产部落官网下载该工具并解压到电脑上 2 连接U盘 将需要进行量产的固态U盘
  • C++ opencv视频处理与保存

    1 视频属性类型 视频有很多的属性 有时长 分辨率 帧宽度 帧高度 帧速率等 视频属性中 由于国内互联网视频网站的定义 我们对分辨率的区分有些误区 所以这里重新介绍一下视频的分辨率 至于其他属性 一般不会有什么误区 分辨率 通常国际标准 我
  • 大语言模型高质量提示词最佳实践

    大语言模型高质量提示词最佳实践 一 提供更清晰的指令 使用大语言模型 类似ChatGPT Bard等工具 的过程中 一个关键的技巧是能够给出清晰和明确的指令 大语言模型的运作方式是根据提供的输入 预测接下来应该生成什么内容 因此 给出明确的
  • Vue的UI网页创建和引入Element组件

    第一步 新创建一个文件夹用来生成vue项目 第二步 进入这个文件夹 在路径栏输入CMD打开DOS窗口 第三步 打开cmd窗口 输入命令 vue ui 第四步 输入命令后运行 浏览器会自动打开vue ui 网页 第五步 点击仪表盘上方的文本框
  • Keepalived--05--脑裂问题

    一 问题 1 1 场景 高可用 在高可用 HA 系统中 当联系2个节点的 心跳线 断开时 本来为一整体 动作协调的HA系统 就分裂成为2个独立的个体 由于相互失去了联系 都以为是对方出了故障 两个节点上的HA软件像 裂脑人 一样 争抢 共享
  • 在TensorFlow中使用自定义数据集训练自己的模型

    在TensorFlow中使用自定义数据集训练自己的模型 写在前面的话 一 自定义数据集的目录结构 以今年电赛数字识别为例 二 在TensorFlow中读取数据集 2 1 纯手工打造 2 1 1 获取所有图片的路径 2 1 2 获取标签并转换
  • PCB结构和谐振(三)

    PCB结构和谐振 一 PCB结构和谐振 二 仿真研究 在本节中 我们首先对玻璃束的随机分布进行了简单的模拟研究 然后我们利用这些实验结论来简化常用的玻璃布3D结构 最后 这种简化的结构用于研究复杂层压板和两个周期性布局设计的谐振 玻璃束的随
  • git 连接gitee时报错 Auth error: Access deined: authorize failure. fatal: Could not read from remote repos

    这是个特别坑的错误 但是我找了很久 是可以当笑话看了 把ssh公钥添加好 并且进行remote远程库的连接 这两个是基本操作 网上有很多帖子都介绍的很详细 这里就不罗嗦了 说一下我这次的坑爹的情况 我从头到尾把步骤都仔仔细细排查了好几遍 结
  • Java集合排序方法comparable和comparator的总结

    Java集合排序方法的总结 接口comparable和接口comparator的比较 一 相关概念 Comparable和Comparator都是用来实现集合中元素的比较 排序的 一 Comparable Comparable是在集合内部定
  • 使用海伦公式求三角形面积C++

    include
  • openWRT的DTS文件配置--MT7620A

    原文地址 http blog chinaunix net uid 29616823 id 4390033 html 接上xx路由器的串口后有输出但无法输入 用示波器量下信号 可能是uboot里面把RX引脚给配置了 1 属性的定义采用prop