IDE/IoT/搭建物联网(LiteOS)集成开发环境,基于 LiteOS Studio + GCC + JLink

news2025/5/19 17:26:50

文章目录

  • 概述
  • LiteOS Studio
    • 不推荐?
    • 安装和使用手册呢?
    • HCIP实验的源码呢?
  • 软件和依赖安装
    • 软件下载
    • 软件安装
    • 插件安装
    • 依赖工具-方案2
    • 依赖工具-方案1
  • 工程配置
    • 打开或新建工程
    • 板卡配置
    • 组件配置
    • 编译器配置-gcc工具链
    • 编译器配置-Makefile脚本
    • 其他配置
    • 编译完成
  • 编译和烧录
    • 可执行文件
    • STLink转JLink
    • 烧录器配置
    • 烧录步骤
  • 验证和调试
    • 程序运行
    • 若无打印输出
    • 源代码分析
    • elf 文件
    • 调试器配置
    • 单步调试
  • 再见

概述

本文详细介绍了华为云物联网专用集成开发环境 LiteOS Studio 的搭建过程和使用方法。可基于此环境完成HCIP-IOT实验。

@HISTORY
为了更好的完成基于小熊派开发板的HCIP实验,我的大多实践并没选用 LiteOS Studio IDE,而是用小熊派社区推荐的 VSCode + Gitbash+GCC 工具模式,也尝试使用过 VSCode+IoT Link 插件模式。在不少地方提到,若聚焦华为硬件与云服务,LiteOS Studio 会更高效,经不住诱导,且HCIP实验指导手册中使用的是 Studio 环境,故再次尝试安装并使用 LiteOS Studio 集成开发环境。

怎么说呢,挺烦的。在开始的差不多一个月内,我始终没有找到 Studio 的安装和使用手册,无论是GitEE、GitHub、华为社区,相关链接都是失效的。在没有详细指导手册的情况下,我只能凭借对类似开发环境的认知和依赖包等,硬强的搭建起了IoT Studio环境。但整个过程相当的不爽,耗费了很多时间,是浪费,这个过程我也简单有所记录。

直到后来,还是意外地发现,虽然网络资料中的各种连接都是失效的,但 LiteOS Studio 的详细的安装说明、使用说明,依然还在,在Git上就有,只是我没有留意到。有了官方保姆级的说明书后,一切就变得顺当了许多,算是豁然开朗吧。

LiteOS Studio

我在这套开发环境的搭建和测试上,耗费了不少心血,推荐还是不推荐呢?

不推荐?

2个月前,我并不推荐使用该IDE环境,主要是因为它多年前就不再被维护了。后来我找到了详细说明书,情况就不一样了!
HUAWEI LiteOS Studio是以Visual Studio Code的社区开源代码为基础,根据C编程语言特点、LiteOS嵌入式系统软件的业务场景,定制开发的一款轻量级集成开发环境解决方案。它提供了代码编辑、编译、烧录、调试等能力。
相比于原始的 VSCode 工具,LiteOS Studio 专为华为 LiteOS 设计,面向物联网嵌入式开发。一站式集成内置组件配置、烧录、调试工具,提供系统级跟踪调试(如内存监控、任务栈分析)。深度集成华为云 IoT 平台(不需要额外的插件扩展云服务),包含完整工具链和 SDK。LiteOS Studio采用混合开源模式,其核心框架和基础工具链开放源码(BSD-3协议),但涉及华为芯片深度集成和商业服务的模块仍为闭源。开发者可根据需求选择开源版本或申请商业授权。
不光不建议使用,开始我是拒绝甚至厌恶此开发环境的。20250415,由于HCIP实验3使用的是该环境,本着按部就班的原则,生怕错过什么,于是重启安装并使用此环境。到最后,感觉还行,至少这个过程也促使我思考并Get到了些知识点。

安装和使用手册呢?

在202503期间,第一次尝试中,光是如何下载该工具,就别扭了一番。
在华为云搜索窗口搜索 #LiteOS Studio#,可以在华为云在线文档资源中找到 安装LiteOS Studio、LiteOS Studio安装指南,GitEE Liteos_studio、开发者联盟官网 等字样的连接,可惜它们全是失效状态。这么不走心,所以就不想用它了。
当初我还总结了如下不想使用该环境的几点原因:
1、官方文档给出的连接多是失效的,无论是指向github还是gitee的。
2、软件已经停更多年,其依赖的VSCode版本也相当的陈旧。上述GitEE项目虽然还在,但是早已没有人维护,项目相关的安装文档、使用文档等全部缺失(在一些老旧的网络文章中,是提及曾经有这些文档的),即使有连接但也都打不开,ISSUE也有人提问,始终无人应答。
3、担心会和新版本的VSCode存在安装冲突不!实践证明,这个现象没有出现。
4、在插件安装界面,不能联网。实践表明,这可能是工具开发者有意为之,直接从代码层级上关闭了软件的联网功能。因为,即使我开着软件自动更新配置,也不会弹更新提示。

时间到了5月4号,我在查看某篇文章的参考链接时,才意外访问到了LiteOS Studio 使用手册,它就在已经被我访问了多次的,GittEE/开源项目 > 开发工具/Huawei LiteOS/LiteOS_Studio项目之下。该项目docs目录下,包含studio的介绍、安装、配置等,非常详细。也就是说,LiteOS Studio 使用手册还在,只是项目主页的连接不对了。

我在 GitEE开源项目 > 开发工具/Huawei LiteOS/LiteOS_Studio 上提交了修改,不过该项目没有人维护,可能不会通过申请。所以我Fork了该项目。可参见 qugx0528 HUAWEI LiteOS Studio 简介,该页面中的跳转链接,我已修改提交,
在这里插入图片描述

HCIP实验的源码呢?

参照HCIP-IOT实验手册,应该使用名为 LiteOS_Lab_HCIP 的源码,配置LiteOS Studio环境的使用和学习。
可惜,我在 GitHub 和 GitEE 上都搜不到LiteOS_Lab_HCIP源码项目,只能找到 LiteOS_Lab 项目,但没有实验手册中的案例。在华为云论坛也没搞到下载链接。好在,实验手册中的案例,我是见过的,在小熊派社区提供的资料中。BearPi-IoT_Std开发板案例代码下载,GitEE地址,BearPi-IoT_Std_LiteOS 源码,GitEE下载地址。HCIP实验手册提及的helloword,在BearPi-IoT_Std_LiteOS项目下,
在这里插入图片描述
顺嘴也说一些 LiteOS_Lab 项目,其本质上是开发实验框架与工具链。它是围绕LiteOS内核构建的开发环境,提供针对具体硬件平台(如STM32系列)的示例代码、编译工具链和配置工具,帮助开发者快速上手LiteOS开发。实际上,这里头没有看到小熊派的案例程序,也没看见工具链,但却有许多非常有用的文档,如 IoT SDK 架构,各种开发指南,LiteOS使用说明等。
在这里插入图片描述

后续在华为云社区也找到了下载链接,已合并上传到CSDN
https://bbs.huaweicloud.com/forum/thread-68066-1-1.html

软件和依赖安装

本章节从简介绍软件和依赖包的安装,详情请参见 HUAWEI LiteOS Studio安装。

软件下载

从 Huawei LiteOS/LiteOS_Studio 或 LiteOS Studio 下载发行版。或从CSDN资源下载。
在这里插入图片描述
202503 来看,项目最后发行版 HUAWEI-LiteOS-Studio V1.45.9 Beta 更新于4年前的2021年8月4号。GitHub的访问由于各种原因不太稳定,可通过 如下地址 也能访问到LiteOS Studio项目,并没有任何软件release发布版,只有源码,最后更新时间6年前,同样已停更。

软件安装

IDE主体安装过程很简单,顺着走就行,
在这里插入图片描述

插件安装

如上,相关插件也被自动安装了。插件市场无法联网不能使用,你可从本地安装。以中文包为例,简单唠唠。
首先参考 HUAWEI LiteOS Studio安装 中提到的 扩展自动下载程序脚本 得到一个下载中文语言包扩展的地址,克隆到本地目录,并按照VSCODE离线插件安装方式操作即可。
在这里插入图片描述
参考使用说明书,通过 Configure Display Language 切换为中文模式。

依赖工具-方案2

我先尝试的是下一节的方案1,那个时候,我还没有发现正规的LiteOS Studio安装说明书,因此借用了小熊派物联网网开发工具集合包。HUAWEI LiteOS Studio安装 文档中提到,HUAWEI LiteOS Studio不提供常用工具、常用扩展的预置,需要用户自行下载,如用户本地已安装,可忽略此步骤。文档中提到的工具和扩展包含,
在这里插入图片描述
上述工具中,除了JLink仿真器软件外,在 小熊派 developTools.zip 工具集下都是存在的。下文,烧录配置章节,会进一步讲解如何将ST-LINK刷成J-LINK,并基于JLINK在LiteOS Studio中完成烧录和调试。

依赖工具-方案1

在写此文前,我已经完成了#<IDE/IoT/搭建物联网(LiteOS)集成开发环境,基于 VSCode + GitBash + GCC工具>#,文中环境搭建过程中使用了小熊派社区下载的构建和编译工具链集合。下载 developTools.zip ,将安装包解压到任意目录,运行 developTools.exe,按提示安装。
在这里插入图片描述
后文在工程配置阶段,会用到上述目录下工具,不要找不到。

工程配置

在该实验中,配置步骤是最关键和最复杂的。
在这里插入图片描述
点击如上红框标记处的设置按钮,进入工程设置主界面。本章节主要讲述板卡配置和编译配置。后续章节将讲述烧录配置和调试过程。

打开或新建工程

如下测试过程我是打开的bearpi-iot_std_liteos-master根文件夹。这里还有个坑让我比较蒙圈,有一次我打开的是 bearpi-iot_std_liteos-master\targets\STM32L431_BearPi 目录,重新配置构建器、编译器等,竟然无法执行编译过程,编译就卡在那里,也没有任何的报错或告警。

下文的测试过程是基于最简单的helloworld进行的,
bearpi-iot_std_liteos-master\targets\STM32L431_BearPi\Demos\hello_world_demo

板卡配置

选取当前工程对应的开发板,主芯片型号,
在这里插入图片描述
@Note,改变板卡配置,最导致编译器、调试器等配置都恢复到默认配置。

组件配置

早期的时候,没有说明书,我不知道这是个什么。当我直接打开小熊派helloworld程序,
在这里插入图片描述
内容是空的,我更纳闷啦。后来采用新建工程,component是有内容的,
在这里插入图片描述
这里我没大搞明白,但也没有影响到我,实验手册上也没提到。再后来从官方使用说明说中了解到,
如需对LiteOS开放可配置的组件与属性进行使能,而不是仅使用默认的配置,用户可以点击工程配置界面上的组件配置,在左侧的选择组件中点击想要使能或修改的组件,在右侧的组件属性栏勾选需要使能的组件,或更改组件属性值。

编译器配置-gcc工具链

在这里插入图片描述
编译器路径,
…\developTools\GNU Tools Arm Embedded\7 2018-q2-update\bin
Make构建器路径,
…\developTools\GNU MCU Eclipse\Build Tools\2.11-20180428-1604\bin\make.exe
Makefile 脚本路径, 上图中显示的是基于VSCode打开目录的相对路径,
…\bearpi-iot_std_liteos-master\targets\STM32L431_BearPi\Makefile

关于Makefile脚本的配置,我是耗费了些时间的,它指的就是Makefile构建文件所在的路径。

编译器配置-Makefile脚本

刚开始,由于没有直接下载到HCIP-IoT实验手册中的LiteOS_Lab_HCIP源码,
而只能使用小熊派 bearpi-iot_std_liteos-master\targets\STM32L431_BearPi 源码,
使得配置过程复杂了那么丢丢。你可能需要对Makefile构建系统有基本的了解,能使用 menuconfig 和 genconfig 系统构建工具链中的配置管理工具。关于 menuconfig 和 genconfig 工具与 Makefile之间的互动关系,请参阅 #<IDE/用构建工具 menuconfig和genconfig 驱动Makefile构建流程,基于STM32L431_BearPi源码构建过程的分析>#,这里不再赘述。

我们简化描述配置过程,基础目录 …bearpi-iot_std_liteos-master\targets\STM32L431_BearPi
在这里插入图片描述
0、上述根目录下的 Makefile 文件 include 包含使用 .config 和 project.mk 文件,驱动Makefile下的构建流程。
1、将 Demos\hello_world_demo 目录下的defaults.sdkconfig 文件内容,拷贝覆盖到 STM32L431_BearPi目录下的 .config 文件中。
2、随便打开个终端窗口,执行 genconfig.exe,以更新生成 iot_config.h 头文件。
3、上述配置后,就可以放心使用Makefile文件啦。

其他配置

在示例程序中找不到 osal.h 头文件,在这里插入图片描述

…\bearpi-iot_std_liteos-master\targets\STM32L431_BearPi\Demos\hello_world_demo.vscode\c_cpp_properties.json

{
    "configurations": [
			...
            "compilerPath": "..GNU Tools Arm Embedded\\7 2018-q2-update\\bin\\arm-none-eabi-gcc.exe",
            "cStandard": "c11",
            "cppStandard": "c++11",
            "intelliSenseMode": "gcc-x64"
        }
    ],
    "version": 4

编译完成

按照前文配置,即使不配置烧录和调试卡,编译helloword示例程序,
在这里插入图片描述

编译和烧录

上一节的工作,已完成编译过程。接下来我们看看编译结果以及如何下载程序。

可执行文件

编译完成后会生成3种类型的同名文件,
在这里插入图片描述
上述三类文件的一个基础对比如下,
在这里插入图片描述

文件生成关系
LiteOS通过 Makefile 调用GCC生成 .elf 文件(含完整调试信息)。随后使用 objcopy 工具转换 .elf 为 .bin 或 .hex 文件。
转换逻辑:
.elf → .bin:去除符号表和调试信息,保留纯二进制代码。
.elf → .hex:将二进制代码转换为Intel HEX标准格式,添加地址和校验信息。
逆向不可行:.bin/.hex 无法还原为完整 .elf,因调试信息已丢失

STLink转JLink

为什么多出来这么个步骤呢?在LiteOS Studio烧录配置中没有ST-Link选项。
在这里插入图片描述
参考 STM32工程示例/ST-Link仿真器单步调测,章节中的描述,对于板载ST-Link仿真器的STM32开发板,如STM23L431RC、STM32F769NI,为了更加稳定的调测体验,建议刷成JLInk进行调测。在开始之前,需要先确保已安装ST-LINK USB Drivers和J-Link软件。

参见 安装JLink仿真器软件,访问Jlink官网, 选择J-Link Software and Documentation Pack后再选择J-Link Software and Documentation pack for Windows下载JLink软件,如我们经常使用的6.70e版本。Windows版本,针对传统x86/x64架构的Windows系统设计,适用于Intel/AMD平台的PC或工作站。Windows ARM版本,专门为ARM64架构的Windows设备(如Surface Pro X、树莓派Windows IoT版)开发,适配基于ARM的处理器。旧版本一般只有32bit,也可在64bitWin10可靠运行。
在这里插入图片描述
上述驱动选择默认安装即可,对于驱动,一般习惯保持默认安装在C盘中。

使用 JLink官网提供的STLink_Reflash工具 ,
在这里插入图片描述
第一次尝试失败了,通过deepseek查询,可能是供电不足导致的。我将开发板的USB从集线器上拔下来,直接接到电脑的USB口上,重新执行<1> 固件转换操作,还真成功了。

后来我试图将外置ST-LINK刷成J-LINK失败,文档中提到的是板载的STLink,外置ST-LINK可能就是不可以。
在这里插入图片描述

烧录器配置

在这里插入图片描述
ST-Link刷成Jlink后,按照上图进行配置。烧录器目录选择JLink驱动的安装目录(不是bin目录哈)。烧录文件可以使用.bin或.hex类型,就是前文提到的编译生成的执行文件。

烧录步骤

首次执行烧录操作,有如下警示,
在这里插入图片描述
烧录完成后,显示,
在这里插入图片描述

验证和调试

程序运行

以下是程序烧录后的运行结果(非调试状态)(烧录后记得按复位键重启板子),
在这里插入图片描述
对打印过程的补充说明,
printf依赖的底层函数,实现在 STM32L431_BearPi\Src\uart_debug.c

若无打印输出

烧录成功后,如果没有信息输出,首先确认AT模式开关是否在MCU侧。如下做简单原因描述,详情参见开发板原理图。
将拨码开关拨至PC侧,通信模组(如NB-IoT、WiFi模块)的串口直接与PC端的USB虚拟串口连接,绕过主控MCU。此时MCU处于断电或空闲状态,仅通信模组工作。
将拨码开关拨至MCU侧,通信模组与主控MCU(STM32L431)的串口(如LPUART1)直连。MCU通过串口发送AT指令控制通信模组,实现数据采集、协议封装及云端交互。如调用HAL_UART_Transmit发送AT指令。

源代码分析

bearpi-iot_std_liteos-master\targets\STM32L431_BearPi\Src\main.c

int main(void)   {
    UINT32 uwRet = LOS_OK;
    HardWare_Init();
    uwRet = LOS_KernelInit();
    if (uwRet != LOS_OK)   {
        return LOS_NOK;
    }

    extern void shell_uart_init(int baud);
    shell_uart_init(115200);

    link_test();   //PROGRESS-TAG-1

    (void)LOS_Start();
    return 0;
}

static int link_test()  {
    int ret = -1;
    UINT32 uwRet = LOS_OK;
    UINT32  handle;
    TSK_INIT_PARAM_S task_init_param;

    memset (&task_init_param, 0, sizeof (TSK_INIT_PARAM_S));
    task_init_param.uwArg = (unsigned int)NULL;
    task_init_param.usTaskPrio = 2;
    task_init_param.pcName =(char *) "link_main";
    task_init_param.pfnTaskEntry = (TSK_ENTRY_FUNC)link_main; //PROGRESS-TAG-2
    task_init_param.uwStackSize = 0x1000;
    uwRet = LOS_TaskCreate(&handle, &task_init_param);
    if(LOS_OK == uwRet){
        ret = 0;
    }
    return ret;
}

bearpi-iot_std_liteos-master\iot_link\link_main.c

int link_main(void *args)   {
	...
	#ifdef CONFIG_LINKDEMO_ENABLE
    extern int standard_app_demo_main(void);
    (void) standard_app_demo_main(); //PROGRESS-TAG-3
#endif
}

bearpi-iot_std_liteos-master\targets\STM32L431_BearPi\Demos\hello_world_demo\hello_world_demo.c

static int app_hello_world_entry() {
    while (1)    {
        printf("Hello World! This is BearPi!\r\n");
        osal_task_sleep(4*1000);
    }
}

//PROGRESS-TAG-4
int standard_app_demo_main() {
    osal_task_create("helloworld",app_hello_world_entry,NULL,0x400,NULL,2);
    return 0;
}

elf 文件

Huawei_LiteOS.elf 是华为 LiteOS 操作系统在编译过程中生成的一种可执行文件格式,主要用于调试、仿真和程序分析。通过 objcopy 工具可将 .elf 转换为 .bin 或 .hex,烧录至硬件运行。
该文件遵循 ELF(Executable and Linkable Format) 标准,其特点包括:
复合结构:不仅包含二进制机器码,还记录了程序的内存布局、符号表、调试信息等元数据。
内存地址映射:通过程序头表指定代码段、数据段的加载地址,适应嵌入式系统的内存管理需求。
调试支持:包含源代码与汇编指令的对应关系,支持断点设置、变量监视等调试操。

调试器配置

截图---
调试器配置如上图,注意以下几点:
1、GDB目录与编译器目录一致。
如 d:\Program Files\IoT_developTools\GNU Tools Arm Embedded\7 2018-q2-update\bin
该目录含arm-none-eabi-gcc/gdb 等工具。
2、执行文件路径,选择工程编译后生成的*.elf文件。
3、调试配置类型,选择复位调试。

单步调试

在这里插入图片描述
查看变量值,监视表达式值、查看调用堆栈、断点等。

再见

在完成HCIP-IoT实验的过程中,还会穿插一些关于IDE构建和使用的文章或内容片段。此文不再多说什么!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2379434.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法加训之最短路 上(dijkstra算法)

目录 P4779 【模板】单源最短路径&#xff08;标准版&#xff09;&#xff08;洛谷&#xff09; 思路 743. 网络延迟时间&#xff08;力扣&#xff09; 思路 1514.概率最大路径&#xff08;力扣&#xff09; 思路 1631.最小体力消耗路径 思路 1976. 到达目的地的方案数 …

QT+Opencv 卡尺工具找直线

QTOpencv 卡尺工具找直线 自己将别的项目中&#xff0c;单独整理出来的。实现了一个找直线的工具类。 功能如下&#xff1a;1.添加图片 2.添加卡尺工具 3.鼠标可任意拖动图片和卡尺工具 4.可调整卡尺参数和直线拟合参数 5.程序中包含了接口函数&#xff0c;其他cpp文件传入相…

GraphPad Prism简介、安装与工作界面

《2025GraphPad Prism操作教程书籍 GraphPad Prism图表可视化与统计数据分析视频教学版GraphPad Prism科技绘图与数据分析学术图表 GraphPadPrism图表》【摘要 书评 试读】- 京东图书 GraphPad Prism统计数据分析_夏天又到了的博客-CSDN博客 1.1 GraphPad Prism简介 GraphP…

esp32课设记录(一)按键的短按、长按与双击

课程用的esp32的板子上只有一个按键&#xff0c;引脚几乎都被我用光了&#xff0c;很难再外置按键。怎么控制屏幕的gui呢&#xff1f;这就得充分利用按键了&#xff0c;比如说短按、长按与双击&#xff0c;实现不同的功能。 咱们先从短按入手讲起。 通过查看原理图&#xff0c;…

React19源码系列之 API(react-dom)

API之 preconnect preconnect – React 中文文档 preconnect 函数向浏览器提供一个提示&#xff0c;告诉它应该打开到给定服务器的连接。如果浏览器选择这样做&#xff0c;则可以加快从该服务器加载资源的速度。 preconnect(href) 一、使用例子 import { preconnect } fro…

supervisorctl守护进程

supervisorctl守护进程 1 安装 # ubuntu安装&#xff1a; sudo apt-get install supervisor 完成后可以在/etc/supervisor文件夹&#xff0c;找到supervisor.conf。 如果没有的话可以用如下命令创建配置文件&#xff08;注意必须存在/etc/supervisor这个文件夹&#xff09; s…

下载的旧版的jenkins,为什么没有旧版的插件

下载的旧版的jenkins&#xff0c;为什么没有旧版的插件&#xff0c;别急 我的jenkins版本&#xff1a; 然后我去找对应的插件 https://updates.jenkins.io/download/plugins/ 1、Maven Integration plugin&#xff1a; Maven 集成管理插件。 然后点击及下载成功 然后 注意&…

【ALINX 实战笔记】FPGA 大神 Adam Taylor 使用 ChipScope 调试 AMD Versal 设计

本篇文章来自 FPGA 大神、Ardiuvo & Hackster.IO 知名博主 Adam Taylor。在这里感谢 Adam Taylor 对 ALINX 产品的关注与使用。为了让文章更易阅读&#xff0c;我们在原文的基础上作了一些灵活的调整。原文链接已贴在文章底部&#xff0c;欢迎大家在评论区友好互动。 在上篇…

【PostgreSQL数据分析实战:从数据清洗到可视化全流程】附录-A. PostgreSQL常用函数速查表

👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 PostgreSQL常用函数速查表:从数据清洗到分析的全场景工具集引言一、字符串处理函数1.1 基础操作函数1.2 模式匹配函数(正则表达式)二、数值计算函数2.1 基础运算函数2.2 统计相关函数三、日期与时间函…

【时空图神经网络 交通】相关模型2:STSGCN | 时空同步图卷积网络 | 空间相关性,时间相关性,空间-时间异质性

注:仅学习使用~ 前情提要: 【时空图神经网络 & 交通】相关模型1:STGCN | 完全卷积结构,高效的图卷积近似,瓶颈策略 | 时间门控卷积层:GLU(Gated Linear Unit),一种特殊的非线性门控单元目录 STSGCN-2020年1.1 背景1.2 模型1.2.1 问题背景:现有模型存在的问题1.2…

docker 学习记录

docker pull nginx docker 将本地nginx快照保存到当前文件夹下 docker save -o nginx.tar nginx:latestdocker 将本地nginx 加载 docker load -i nginx.tar docker运行nginx在80端口 docker run --name dnginx -p 80:80 -d nginxredis启动 docker run --name mr -p 6379:6379 -…

南京邮电大学金工实习答案

一、金工实习的定义 金工实习是机械类专业学生一项重要的实践课程&#xff0c;它绝非仅仅只是理论知识在操作层面的简单验证&#xff0c;而是一个全方位培养学生综合实践能力与职业素养的系统工程。从本质上而言&#xff0c;金工实习是学生走出教室&#xff0c;亲身踏入机械加…

世界模型+大模型+自动驾驶 论文小汇总

最近看了一些论文&#xff0c;懒得一个个写博客了&#xff0c;直接汇总起来 文章目录 大模型VLM-ADVLM-E2EOpenDriveVLAFASIONAD&#xff1a;自适应反馈的类人自动驾驶中快速和慢速思维融合系统快系统慢系统快慢结合 世界模型End-to-End Driving with Online Trajectory Evalu…

C++函数三剑客:缺省参数·函数重载·引用的高效编程指南

前引&#xff1a;在C编程中&#xff0c;缺省参数、函数重载、引用是提升代码简洁性、复用性和效率的三大核心机制。它们既能减少冗杂的代码&#xff0c;又能增强接口设计的灵活性。本文将通过清晰的理论解析与实战案列&#xff0c;带你深入理解这三者的设计思想、使用场景以及闭…

SWUST数据结构下半期实验练习题

1068: 图的按录入顺序深度优先搜索 #include"iostream" using namespace std; #include"cstring" int visited[100]; char s[100]; int a[100][100]; int n; void dfs(int k,int n) {if(visited[k]0){visited[k]1;cout<<s[k];for(int i0;i<n;i){i…

机器学习 Day18 Support Vector Machine ——最优美的机器学习算法

1.问题导入&#xff1a; 2.SVM定义和一些最优化理论 2.1SVM中的定义 2.1.1 定义 SVM 定义&#xff1a;SVM&#xff08;Support Vector Machine&#xff0c;支持向量机&#xff09;核心是寻找超平面将样本分成两类且间隔最大 。它功能多样&#xff0c;可用于线性或非线性分类…

答题pk小程序道具卡的获取与应用

道具卡是答题PK小程序中必不可少的一项增加趣味性的辅助应用&#xff0c;那么道具卡是如何获取与应用的呢&#xff0c;接下来我们来揭晓答案&#xff1a; 一、道具卡的获取&#xff1a; 签到获取&#xff1a;在每日签到中签到不仅可获得当日的签到奖励积分&#xff0c;同时连…

leetcode3265. 统计近似相等数对 I-medium

1 题目&#xff1a;统计近似相等数对 I 官方标定难度&#xff1a;中 给你一个正整数数组 nums 。 如果我们执行以下操作 至多一次 可以让两个整数 x 和 y 相等&#xff0c;那么我们称这个数对是 近似相等 的&#xff1a; 选择 x 或者 y 之一&#xff0c;将这个数字中的两个…

【架构篇】代码组织结构设计

代码组织结构设计&#xff1a;模块化分层与高效协作实践 摘要 本文以Java项目为例&#xff0c;解析后端代码组织的标准化结构&#xff0c;涵盖模块划分原则、依赖管理策略及实际应用场景。通过模块化设计提升代码可维护性、团队协作效率及系统扩展能力。 一、模块化设计的核心…

日期数据渲染转换问题

今天在学习Springboot框架时&#xff0c;想做一个非常简单的增删改查巩固一下&#xff0c;结果在数据渲染上出现了一个小问题&#xff0c;如图数据库中的数据一切正常 但是在前端渲染时&#xff0c;是下面这个效果 这是因为数据库存储的日期类型数据在前端渲染时&#xff0c;没…