DshanMCU-R128s2 SDK 架构与目录结构
R128 S2 是全志提供的一款 M33(ARM)+C906(RISCV-64)+HIFI5(Xtensa) 三核异构 SoC,同时芯片内部 SIP 有 1M SRAM、8M LSPSRAM、8M HSPSRAM 以及 16M NORFLASH。
本文档作为 R128 FreeRTOS SDK 开发指南,旨在帮助软件开发工程师、技术支持工程师快速上手,熟悉 R128 FreeRTOS SDK 的开发流程。
SDK 架构
R128 包含 3 个核,需要编译 M33+C906+HIFI5 共3 个核的镜像。启动时同时运行三个 RTOS 系统。其中 M33 与 C906 使用的是 FreeRTOS v10.4.3,从 https://www.freertos.org/RTOS.html 获取,HIFI5 使用的 FreeRTOS 是根据Cadence Support 的推荐的 https://github.com/foss‑xtensa/amazon‑freertos (tag:v1.7‑xtensa)版本
开发 HIFI5 需要 Cadence Xtensa 的 IDE 工具, DSP 的 XCC 工具链包。Cadence Xtensa 的授权 License,用于服务器代码编译和 Xplorer 仿真使用。这些工具需要向 Cadence 申请授权,链接:https://www.cadence.com/en_US/home/tools/ip/tensilica-ip/technologies.html,Xplorer 下载链接:https://www.cadence.com/en_US/home/tools/ip/tensilica-ip/sdk-download.html。
SDK 软件框架

R128 软件框架如上图所示,一共4 层,分别为硬件层、内核层、组件层、应用层。
- Hardware。硬件层包括处理器、内存、存储介质、无线网卡、总线以及外设等。
- Kernel。内核层包括FreeRTOS 核心系统、文件系统、网络系统、BSP 驱动等。
- Component。组件层包括控制台、多媒体、功耗管理、OTA、音频系统、显示系统、图像采集等。
- APP。应用层包括各种应用demo。
SDK 目录结构
以R128-S2芯片为例,SDK 目录结构如下,重点目录进行了展开处理
.
├── board # 板级配置目录
│ ├── common # 公共板级配置目录
│ │ ├── configs # 公共板级配置
│ │ └── data # 公共数据
│ │ ├── reserve # Wi-Fi & BT 固件
│ │ ├── secret # 公共安全区
│ │ └── UDISK # 公共 UDISK 分区
│ └── r128s2 # R128 S2 芯片配置目录
│ ├── 86panel # R128 S2 86面板开发板 板级配置目录
│ │ ├── bin # 86面板开发板固件,引导等bin
│ │ ├── configs # 86面板开发板配置文件,引脚复用,分区表等配置文件
│ │ │ └── ota # 86面板开发板配置文件,OTA相关配置文件
│ │ └── data # 86面板开发板数据
│ │ ├── reserve
│ │ ├── secret
│ │ └── UDISK
│ └── module # R128 S2 Module 模块板级配置目录
│ ├── bin # R128 S2 Module 固件,引导等bin
│ ├── configs # R128 S2 Module 配置文件,引脚复用,分区表等配置文件
│ │ └── ota # R128 S2 Module 配置文件,OTA相关配置文件
│ └── data # R128 S2 Module 数据
│ ├── reserve
│ ├── secret
│ └── UDISK
├── lichee # 系统源码目录
│ ├── brandy-2.0 # 启动相关目录
│ │ ├── tools # U-Boot 使用的工具链
│ │ └── u-boot-2018 # U-Boot 启动代码
│ ├── rtos # M33/C906 FreeRTOS 系统、组件、应用
│ │ ├── arch # 处理器架构相关代码
│ │ │ ├── arm # ARM 处理器初始化、中断处理、异常处理、内存映射相关功能的实现
│ │ │ │ ├── armv8m
│ │ │ │ └── common
│ │ │ ├── common
│ │ │ └── risc-v # RISC-V 处理器初始化、中断处理、异常处理、内存映射相关功能的实现
│ │ │ ├── c906
│ │ │ ├── common
│ │ │ ├── includes
│ │ │ └── sun20iw2p1
│ │ ├── build # 编译临时文件输出目录
│ │ ├── components # 应用组件,libc、多媒体、lvgl等
│ │ │ ├── aw # Allwinner 提供的组件
│ │ │ │ ├── blkpart
│ │ │ │ ├── bluetooth
│ │ │ │ ├── ...
│ │ │ │ └── wireless_video
│ │ │ ├── common -> ../../rtos-components
│ │ │ └── thirdparty # 第三方提供的组件
│ │ │ ├── common
│ │ │ ├── console
│ │ │ ├── ...
│ │ │ └── vfs
│ │ ├── drivers # RTOS 驱动
│ │ │ ├── drv
│ │ │ │ ├── bluetooth
│ │ │ │ ├── ...
│ │ │ │ └── wireless
│ │ │ ├── osal
│ │ │ │ └── src
│ │ │ └── rtos-hal -> ../../rtos-hal/
│ │ ├── include # RTOS 头文件目录
│ │ │ ├── arch # 架构相关头文件
│ │ │ │ ├── arm
│ │ │ │ └── riscv
│ │ │ ├── drivers # 驱动相关头文件
│ │ │ ├── FreeRTOS_POSIX
│ │ │ ├── ...
│ │ │ └── sys
│ │ ├── kernel # FreeRTOS 内核
│ │ ├── projects # 方案工程目录,后文有详细介绍
│ │ ├── scripts # 编译脚手架脚本
│ │ └── tools # RTOS 使用的工具链
│ ├── rtos-components # 公共应用组件,libc、多媒体、lvgl等
│ │ ├── aw # Allwinner 提供的公共应用组件
│ │ └── thirdparty # 第三方提供的公共应用组件
│ └── rtos-hal # RTOS HAL驱动
│ ├── hal # HAL 驱动
│ ├── include # HAL 头文件
│ └── tools # HAL 相关工具
├── out # 打包输出的临时文件与最终镜像文件
│ └── r128s2
│ └── pro
└── tools # 用于存放打包相关的脚本、工具├── image-file├── scripts├── tool│ └── cppcheck├── win-tools└── xradio-tools├── data├── HcidumpXr├── NLink├── NTest└── sdd_editor
R128 SDK 目录结构如上所示,主要包括如下几个关键目录:
board:板级配置目录,用于存放芯片方案的配置文件,主要包括env配置、分区表配置、
sys_config.fex引脚复用配置等。lichee/brandy‑2.0:主要存放uboot 等代码。lichee/rtos:存放 M33/C906 FreeRTOS 系统、组件、应用。lichee/rtos‑components:公共组件目录。lichee/rtos‑hal:HAL BSP 驱动目录。用于存放各种驱动代码。out:用于保存打包时输出的临时文件与最终镜像文件。打包时自动生成此目录。tools:工具目录,用于存放打包相关的脚本、工具等。
lichee/rtos 目录
lichee/rtos├── arch # 处理器架构相关├── build # 编译临时文件输出目录├── components # 组件├── drivers # 驱动├── include├── kernel # FreeRTOS内核├── projects # 方案工程├── scripts└── tools # 工具链
lichee/rtos 目录主要包括arch(架构相关)、components(组件)、drivers(驱动)、include(头文件)、kernel(内核)、projects(工程)、toos(工具链) 几个目录。
arch 目录
arch 目录主要放置跟SoC 架构相关的内容,每个SoC 单独目录管理,主要包括跟R128 处理器相关的ARCH 初始化、中断处理、异常处理、内存映射相关功能的实现。
drivers 目录
drivers 目录包含R128 所需的外设驱动,主要包括各外设控制器驱动的具体实现(rtos‑hal 软连接)以及OSAL 层接口实现(osal)。
kernel 目录
kernel 目录主要包含FreeRTOS 的kernel 源码,ARMv8M 的portable 源码以及全志实现的系统功能相关代码。
.
├── FreeRTOS
│ ├── Makefile
│ └── Source
├── FreeRTOS-orig
│ ├── License
│ ├── Makefile
│ └── Source
├── Kconfig
├── Makefile
├── objects.mk
└── Posix├── CMakeLists.txt├── include├── Makefile└── source
projects 目录
projects 目录下的每一个子目录代表一个SoC 类别,每个 SoC 类别下面存放对应的方案,每个方案都有 m33 与c906 目录,在这些目录下面实现各处理器上第一个任务,选择不同的 project 编译出来的 bin 具有不同功能。每个 project 有独立的 FreeRTOSConfig 配置。
.
├── config.h # 公共配置头文件
├── Kconfig # Kconfig 引索文件
├── Makefile # Makefile
├── objects.mk # Makefile 构建脚本
└── r128s2 # R128 S2 平台方案├── bt.lds.S # 蓝牙协议栈等链接脚本├── Makefile # Makefile 构建脚本├── 86panel_c906 # 86panel 方案 C906 RISC-V 核相关文件│ ├── defconfig # 软件包配置文件│ ├── freertos.lds.S # 链接脚本│ ├── Kconfig # Kconfig 引索文件│ ├── Makefile # Makefile 构建脚本│ └── src # 86panel 方案 C906 RISC-V 核相关源码│ ├── alsa_config.c # alsa 框架插件配置文件│ ├── assert.c # 断言处理│ ├── card_default.c # 声卡配置文件│ ├── FreeRTOSConfig.h # FreeRTOS 配置文件│ ├── hooks.c # FreeRTOS 相关钩子函数配置│ └── main.c # FreeRTOS 程序入口├── wlan.lds.S # WiFi 链接文件└── xip.lds.S # xip 链接文件
Tools 目录
这个目录主要包含一些预编译好的交叉编译工具链,目前M33 基于GCC 8.3.1 的交叉编译环境,C906 基于GCC 8.4.0 的交叉编译器。
M33 编译器
Using built-in specs.
COLLECT_GCC=./arm-none-eabi-gcc
COLLECT_LTO_WRAPPER=/R128-FreeRTOS/lichee/rtos/tools/gcc-arm-none-eabi-8-2019-q3-update/bin/../lib/gcc/arm-none-eabi/8.3.1/lto-wrapper
Target: arm-none-eabi
Configured with: /tmp/jenkins/jenkins-GCC-8-build_toolchain_docker-594_20190704_1562200936/src/gcc/configure --target=arm-none-eabi --prefix=/tmp/jenkins/jenkins-GCC-8-build_toolchain_docker-594_20190704_1562200936/install-native --libexecdir=/tmp/jenkins/jenkins-GCC-8-build_toolchain_docker-594_20190704_1562200936/install-native/lib --infodir=/tmp/jenkins/jenkins-GCC-8-build_toolchain_docker-594_20190704_1562200936/install-native/share/doc/gcc-arm-none-eabi/info --mandir=/tmp/jenkins/jenkins-GCC-8-build_toolchain_docker-594_20190704_1562200936/install-native/share/doc/gcc-arm-none-eabi/man --htmldir=/tmp/jenkins/jenkins-GCC-8-build_toolchain_docker-594_20190704_1562200936/install-native/share/doc/gcc-arm-none-eabi/html --pdfdir=/tmp/jenkins/jenkins-GCC-8-build_toolchain_docker-594_20190704_1562200936/install-native/share/doc/gcc-arm-none-eabi/pdf --enable-languages=c,c++ --enable-plugins --disable-decimal-float --disable-libffi --disable-libgomp --disable-libmudflap --disable-libquadmath --disable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-tls --with-gnu-as --with-gnu-ld --with-newlib --with-headers=yes --with-python-dir=share/gcc-arm-none-eabi --with-sysroot=/tmp/jenkins/jenkins-GCC-8-build_toolchain_docker-594_20190704_1562200936/install-native/arm-none-eabi --build=x86_64-linux-gnu --host=x86_64-linux-gnu --with-gmp=/tmp/jenkins/jenkins-GCC-8-build_toolchain_docker-594_20190704_1562200936/build-native/host-libs/usr --with-mpfr=/tmp/jenkins/jenkins-GCC-8-build_toolchain_docker-594_20190704_1562200936/build-native/host-libs/usr --with-mpc=/tmp/jenkins/jenkins-GCC-8-build_toolchain_docker-594_20190704_1562200936/build-native/host-libs/usr --with-isl=/tmp/jenkins/jenkins-GCC-8-build_toolchain_docker-594_20190704_1562200936/build-native/host-libs/usr --with-libelf=/tmp/jenkins/jenkins-GCC-8-build_toolchain_docker-594_20190704_1562200936/build-native/host-libs/usr --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-pkgversion='GNU Tools for Arm Embedded Processors 8-2019-q3-update' --with-multilib-list=rmprofile
Thread model: single
gcc version 8.3.1 20190703 (release) [gcc-8-branch revision 273027] (GNU Tools for Arm Embedded Processors 8-2019-q3-update)
C906 RISC-V 编译器
Using built-in specs.
COLLECT_GCC=./riscv64-unknown-elf-gcc
COLLECT_LTO_WRAPPER=/R128-FreeRTOS/lichee/rtos/tools/riscv64-elf-x86_64-20201104/bin/../libexec/gcc/riscv64-unknown-elf/8.4.0/lto-wrapper
Target: riscv64-unknown-elf
Configured with: /ldhome/software/toolsbuild/slave/workspace/riscv64_build_elf_x86_64/build/../source/riscv/riscv-gcc/configure --target=riscv64-unknown-elf --with-mpc=/ldhome/software/toolsbuild/slave/workspace/riscv64_build_elf_x86_64/lib-for-gcc-x86_64-linux/ --with-mpfr=/ldhome/software/toolsbuild/slave/workspace/riscv64_build_elf_x86_64/lib-for-gcc-x86_64-linux/ --with-gmp=/ldhome/software/toolsbuild/slave/workspace/riscv64_build_elf_x86_64/lib-for-gcc-x86_64-linux/ --prefix=/ldhome/software/toolsbuild/slave/workspace/riscv64_build_elf_x86_64/install --disable-shared --disable-threads --enable-languages=c,c++ --with-system-zlib --enable-tls --enable-libgcctf --with-newlib --with-sysroot=/ldhome/software/toolsbuild/slave/workspace/riscv64_build_elf_x86_64/install/riscv64-unknown-elf --with-native-system-header-dir=/include --disable-libmudflap --disable-libssp --disable-libquadmath --disable-libgomp --disable-nls --src=../../source/riscv/riscv-gcc --with-pkgversion='T-HEAD RISCV Tools V1.10.2 B20201104' --enable-multilib --with-abi=lp64d --with-arch=rv64gcxthead 'CFLAGS_FOR_TARGET=-Os -mcmodel=medany' 'CXXFLAGS_FOR_TARGET=-Os -mcmodel=medany' CC=gcc CXX=g++
Thread model: single
gcc version 8.4.0 (T-HEAD RISCV Tools V1.10.2 B20201104)
相关文章:
DshanMCU-R128s2 SDK 架构与目录结构
R128 S2 是全志提供的一款 M33(ARM)C906(RISCV-64)HIFI5(Xtensa) 三核异构 SoC,同时芯片内部 SIP 有 1M SRAM、8M LSPSRAM、8M HSPSRAM 以及 16M NORFLASH。 本文档作为 R128 FreeRTOS SDK 开发指南,旨在帮助软件开发工程师、技术支持工程师快速上手&am…...
【5G PHY】NR参考信号功率和小区总传输功率的计算
博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…...
k8s学习 — 各知识点快捷入口
k8s学习 — 各知识点快捷入口 k8s学习 — 第一章 核心概念 k8s学习 — 第一章 核心概念 命名空间 实践: k8s学习 — (实践)第二章 搭建k8s集群k8s学习 — (实践)第三章 深入Podk8s学习 — (实践࿰…...
【Python】Python 批量转换PDF到Excel
PDF是面向展示和打印使用的,并未考虑编辑使用,所以缺少了很多编辑属性且非常难修改PDF里面的数据。当您需要分析或修改PDF文档数据时,可以将PDF保存为Excel工作簿,实现轻松编辑数据的需求。PDF转Excel,技术关键就是提取…...
Python并行计算和分布式任务全面指南
更多Python学习内容:ipengtao.com 大家好,我是彭涛,今天为大家分享 Python并行计算和分布式任务全面指南。全文2900字,阅读大约8分钟 并发编程是现代软件开发中不可或缺的一部分,它允许程序同时执行多个任务࿰…...
微信小程序promise封装
一. 在utils文件夹内创建一个request.js 写以下封装的 wx.request() 方法 const baseURL https:// 域名 ; //公用总路径地址 export const request (params) > { //暴露出去一个函数,并且接收一个外部传入的参数let dataObj params.data || {}; //…...
hash长度扩展攻击
作为一个信息安全的人,打各个学校的CTF比赛是比较重要的! 最近一个朋友发了道题目过来,发现有道题目比较有意思,这里跟大家分享下 这串代码的大致意思是: 这段代码首先引入了一个名为"flag.php"的文件&am…...
设计模式--命令模式
实验16:命令模式 本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解命令模式的动机,掌握该模式的结构; 2、能够利用命令模式解决实际问题。 [实验任务]:多次撤销和重复的命令模式 某系…...
单例模式的七种写法
为什么使用单例? 避免重复创建对象,节省内存,方便管理;一般我们在工具类中频繁使用单例模式; 1.饿汉式(静态常量)-[可用] /*** 饿汉式(静态常量)*/ public class Singleton1 {private static final Singleton1 INSTANCE new Singleton1();private Singleton1(){}…...
ElasticSearch入门介绍和实战
目录 1.ElasticSearch简介 1.1 ElasticSearch(简称ES) 1.2 ElasticSearch与Lucene的关系 1.3 哪些公司在使用Elasticsearch 1.4 ES vs Solr比较 1.4.1 ES vs Solr 检索速度 2. Lucene全文检索框架 2.1 什么是全文检索 2.2 分词原理之倒排索引…...
【FPGA】分享一些FPGA视频图像处理相关的书籍
在做FPGA工程师的这些年,买过好多书,也看过好多书,分享一下。 后续会慢慢的补充书评。 【FPGA】分享一些FPGA入门学习的书籍【FPGA】分享一些FPGA协同MATLAB开发的书籍 【FPGA】分享一些FPGA视频图像处理相关的书籍 【FPGA】分享一些FPGA高速…...
AUTOSAR从入门到精通-车载以太网(四)
目录 前言 原理 车载以太网发展历史 为何选择车载以太网...
MySQL报错:1054 - Unknown column ‘xx‘ in ‘field list的解决方法
我在操作MySQL遇到1054报错,报错内容:1054 - Unknown column Cindy in field list,下面演示解决方法,非常简单。 根据箭头指示,Cindy对应的应该是VARCHAR文本数字类型,字符串要用引号,所以解决方…...
【Android 13】使用Android Studio调试系统应用之Settings移植(四):40+个依赖子模块之ActionBarShadow
文章目录 一、篇头二、系列文章2.1 Android 13 系列文章2.2 Android 9 系列文章2.3 Android 11 系列文章三、子模块AS移植3.1 AS创建目标3.2 创建ActionBarShadow(1)使用VS Code打开org_settings/SettingsLib目录(2)ActionBarShadow的Manifest.xml(3)ActionBarShadow的An…...
nosql-redis整合测试
nosql-redis整合测试 1、创建项目并导入redis2、配置redis3、写测试类4、在redis中创建key5、访问80826、在集成测试中测试方法 1、创建项目并导入redis 2、配置redis 3、写测试类 4、在redis中创建key 5、访问8082 6、在集成测试中测试方法 package com.example.boot3.redis;…...
智能化中的控制与自动化中的控制不同
智能化中的控制相对于自动化中的控制更加灵活、智能、综合和学习能力强。智能化控制系统能够根据实际情况进行自主决策和优化,适用范围更广,效果更好。 首先,智能化控制系统能够根据外部环境的变化和实时数据的反馈来自主调整和优化控制策略&…...
java练习题之多态练习
1:关于多态描述错误的是(D) A. 父类型的引用指向不同的子类对象 B. 用引用调用方法,只能调用引用中声明的方法 C. 如果子类覆盖了父类中方法,则调用子类覆盖后的方法 D. 子类对象类型会随着引用类型的改变而改变 2:class Supe…...
[原创][R语言]股票分析实战[4]:周级别涨幅趋势的相关性
[简介] 常用网名: 猪头三 出生日期: 1981.XX.XX QQ联系: 643439947 个人网站: 80x86汇编小站 https://www.x86asm.org 编程生涯: 2001年~至今[共22年] 职业生涯: 20年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、D…...
esp32使用lvgl,给图片取模显示图片
使用LVGL官方工具。 https://lvgl.io/tools/imageconverter 上传图片,如果想要透明效果,那么选择 输出格式C array,点击Convert进行转换。 下载.c文件放置到工程下使用即可。...
R语言使用scitb包10分钟快速绘制论文基线表
scitb包目前进行了升级到1.7版本了,我做了一个操作视频,如何快速绘制基线表。 scitb包绘制基线表 可以配套看下我的关于scitb包文章理解一下 scitb包1.6版本发布,一个为制作专业统计表格而生的R包...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...
聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...
【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...
视觉slam十四讲实践部分记录——ch2、ch3
ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...
处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...
