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

clion+arm-cm3+MSYS-mingw +jlink配置用于嵌入式开发

0.前言

正文可以跳过这段
初识clion,应该是2015年首次发布的时候, 那会还是大三,被一则推介广告吸引到,当时还在用vs studio,但是就喜欢鼓捣新工具,然后下载安装试用了clion,但是当时对cmake规则知之甚少,而且觉得还麻烦,所以之后就没有再用clion了。一晃10年已逝。
从事嵌入式MCU开发工作的,现在用过Keil MDK、IAR、VS-Code、RT-thread studio(eclipse核),现在从我辈楷模这里了解用Clion也能做嵌入式开发,那必须试试,
1.为了从github上 clone 稚晖的项目学习进步;
2.了解多种IDE的开发方式,知己知彼,后续可以根据项目适用哪种平台,灵活的选择开发方式:
比如,我现在喜欢RT-Thread Studio,因为基于HAL库的初始化代码可以很方面的使用cubemx的ioc工程配置,rt-thread系统的管理 也很方便。
Clion 也可以使用ioc工程完成基于HAL库的的初始化配置。
所以可以根据项目的特点 选择最易开发的平台。
3.另外就是大家说的开源问题,商业软件都涉及licenses,能用开源的方式还是开源的方式,虽然clion也不是开源的,但是商业化的便捷也可以试试到底有多好用。

参考稚晖君-配置CLion用于STM32开发【优雅の嵌入式开发】,随着系统版本更新,各软件也都更新,与时俱进,参考配置的过程也不是一帆风顺,故记录一下,我的配置环境和过程,方便交流学习。

1.环境及所需工具

软件环境:

软件名版本号描述
Windows 11
STM32CubeMXV6.5.0官网直达
Clion2024.3.4官网直达
MinGW-W64MSYS2更新最新版官网直达
OpenOCDOpenOCD是用于对STM32进行下载仿真的工具,是一个开源软件包
arm-none-eabi-gcc

关于交叉编译工具链的详细可跳转到我的另外一篇博文windows平台下交叉编译工具链和环境详解

硬件环境:

软件名版本号描述
STM32F103VET6
J-LinkV9

2.需要重点注意的点

稚晖的文档已经很详细了,我这里只说点卡点
Clion的配置上,在配置预设的MinGW和Cmake环境上,我是使用MSYS2安装的MinGW-W64环境,
这是正确的配置图
Clion工具链设置
提供一个错误的配置图,该mingw64-环境 是用于配置rt-thread studio的环境和工具链的,这个mingw64-环境是我在其它平台上正常可以使用的环境,也不知道为什么不能正常工作,这里先将其配置为msys下配置的mingw环境 先解决问题;
在这里插入图片描述
其实 对于 插件管理式的平台,针对嵌入式开发 离不开这些环境的配置;比如vscode eclipse clion等。

目前clion的这个环境文件很重要,即使我不更改下面的其它可执行文件,即为配置成这样也可以正常构建
在这里插入图片描述

我现在有一个问题是 clion 是 如何查找捆绑的cmake gdb的 ?

上述配置完成后 基本上是可以 构建程序了 完成了很重要的一步。

openocd下载和运行

openocd 在稚晖君的教程中需要配置一下 这个 进入方式
在这里插入图片描述
进入后需要在该界面下新建一个openocd下载和运行的配置环境,类似于keil里面需要下载什么文件进去,使用什么调试工具。

在这里插入图片描述

按照教程 配置 和稚晖的区别是他使用的DAP 可能windows下 clion支持挺好的 , 我用的jlink 就出现一个错误

使用的stm32f1x.cfg文件内容如下

# 选择 J-Link 适配器
adapter driver jlink# 选择 SWD 协议
transport select swd# 配置目标芯片(STM32F103VE)
source [find target/stm32f1x.cfg]

错误情况:

Open On-Chip Debugger 0.12.0
Licensed under GNU GPL v2
For bug reports, readhttp://openocd.org/doc/doxygen/bugs.html
Warn : Failed to open device: LIBUSB_ERROR_NOT_SUPPORTED
Error: No J-Link device found

使用 OpenOCD 调试模式

openocd -d3 -f stm32f103c8_blue_pill.cfg

得到的详细debug 报告

PS D:\MyProjectRepos\MCUDevelopProject\Ctrl-FOC-Lite\2.Firmware\STM32_HAL_version\Ctrl-FOC-Lite-fw> openocd -d3 -f stm32f103c8_blue_pill.cfg
Open On-Chip Debugger 0.12.0
Licensed under GNU GPL v2
For bug reports, readhttp://openocd.org/doc/doxygen/bugs.html
User : 3 2 options.c:52 configuration_output_handler(): debug_level: 3
User : 4 4 options.c:52 configuration_output_handler():
Debug: 5 6 options.c:233 add_default_dirs(): bindir=D:/a/msys64/mingw64/bin
Debug: 6 7 options.c:234 add_default_dirs(): pkgdatadir=D:/a/msys64/mingw64/share/openocd
Debug: 7 9 options.c:235 add_default_dirs(): exepath=D:/msys64/mingw64/bin
Debug: 8 11 options.c:236 add_default_dirs(): bin2data=../share/openocd
Debug: 9 13 configuration.c:33 add_script_search_dir(): adding C:/Users/leesincere/AppData/Roaming/OpenOCD
Debug: 10 16 configuration.c:33 add_script_search_dir(): adding D:/msys64/mingw64/bin/../share/openocd/site
Debug: 11 19 configuration.c:33 add_script_search_dir(): adding D:/msys64/mingw64/bin/../share/openocd/scripts
Debug: 12 22 command.c:155 script_debug(): command - ocd_find stm32f103c8_blue_pill.cfg
Debug: 13 24 configuration.c:88 find_file(): found stm32f103c8_blue_pill.cfg
Debug: 14 28 command.c:155 script_debug(): command - adapter driver jlink
Debug: 15 30 command.c:155 script_debug(): command - transport select swd
Debug: 16 32 command.c:155 script_debug(): command - ocd_find target/stm32f1x.cfg
Debug: 17 35 configuration.c:88 find_file(): found D:/msys64/mingw64/bin/../share/openocd/scripts/target/stm32f1x.cfg
Debug: 18 38 command.c:155 script_debug(): command - ocd_find target/swj-dp.tcl
Debug: 19 41 configuration.c:88 find_file(): found D:/msys64/mingw64/bin/../share/openocd/scripts/target/swj-dp.tcl
Debug: 20 44 command.c:155 script_debug(): command - transport select
Debug: 21 46 command.c:155 script_debug(): command - ocd_find mem_helper.tcl
Debug: 22 48 configuration.c:88 find_file(): found D:/msys64/mingw64/bin/../share/openocd/scripts/mem_helper.tcl
Debug: 23 52 command.c:155 script_debug(): command - add_usage_text mrw address
Debug: 24 54 command.c:155 script_debug(): command - add_help_text mrw Returns value of word in memory.
Debug: 25 56 command.c:155 script_debug(): command - add_usage_text mrh address
Debug: 26 59 command.c:155 script_debug(): command - add_help_text mrh Returns value of halfword in memory.
Debug: 27 62 command.c:155 script_debug(): command - add_usage_text mrb address
Debug: 28 64 command.c:155 script_debug(): command - add_help_text mrb Returns value of byte in memory.
Debug: 29 67 command.c:155 script_debug(): command - add_usage_text mmw address setbits clearbits
Debug: 30 69 command.c:155 script_debug(): command - add_help_text mmw Modify word in memory. new_val = (old_val & ~clearbits) | setbits;
Debug: 31 73 command.c:155 script_debug(): command - transport select
Debug: 32 74 command.c:155 script_debug(): command - expr  [ string first "jtag" $_TRANSPORT ] != -1
Debug: 33 76 command.c:155 script_debug(): command - transport select
Debug: 34 78 command.c:155 script_debug(): command - expr  [ string first "jtag" $_TRANSPORT ] != -1
Debug: 35 81 command.c:155 script_debug(): command - transport select
Debug: 36 82 command.c:155 script_debug(): command - expr  [ string first "swd" $_TRANSPORT ] != -1
Debug: 37 85 command.c:155 script_debug(): command - swd newdap stm32f1x cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id 0x1ba01477
Debug: 38 88 tcl.c:557 jim_newtap_cmd(): Creating New Tap, Chip: stm32f1x, Tap: cpu, Dotted: stm32f1x.cpu, 8 params
Debug: 39 92 core.c:1474 jtag_tap_init(): Created Tap: stm32f1x.cpu @ abs position 0, irlen 0, capture: 0x0 mask: 0x0
Debug: 40 95 command.c:155 script_debug(): command - dap create stm32f1x.dap -chain-position stm32f1x.cpu
Debug: 41 98 command.c:155 script_debug(): command - transport select
Debug: 42 100 command.c:155 script_debug(): command - expr  [ string first "jtag" $_TRANSPORT ] != -1
Debug: 43 103 command.c:155 script_debug(): command - target create stm32f1x.cpu cortex_m -endian little -dap stm32f1x.dap
Debug: 44 107 command.c:289 register_command(): command 'tpiu' is already registered
Debug: 45 109 command.c:289 register_command(): command 'rtt' is already registered
Debug: 46 111 command.c:155 script_debug(): command - stm32f1x.cpu configure -work-area-phys 0x20000000 -work-area-size 0x1000 -work-area-backup 0
Debug: 47 115 target.c:2199 target_free_all_working_areas_restore(): freeing all working areas
Debug: 48 118 target.c:2199 target_free_all_working_areas_restore(): freeing all working areas
Debug: 49 120 target.c:2199 target_free_all_working_areas_restore(): freeing all working areas
Debug: 50 123 command.c:155 script_debug(): command - flash bank stm32f1x.flash stm32f1x 0x08000000 0 0 0 stm32f1x.cpu
Debug: 51 126 tcl.c:1305 handle_flash_bank_command(): 'stm32f1x' driver usage field missing
Debug: 52 129 command.c:155 script_debug(): command - adapter speed 1000
Debug: 53 132 adapter.c:251 adapter_config_khz(): handle adapter khz
Debug: 54 134 adapter.c:215 adapter_khz_to_speed(): convert khz to adapter specific speed value
Debug: 55 136 adapter.c:215 adapter_khz_to_speed(): convert khz to adapter specific speed value
Debug: 56 139 command.c:155 script_debug(): command - adapter srst delay 100
Debug: 57 142 command.c:155 script_debug(): command - transport select
Debug: 58 144 command.c:155 script_debug(): command - expr  [ string first "jtag" $_TRANSPORT ] != -1
Debug: 59 147 command.c:155 script_debug(): command - reset_config srst_nogate
Debug: 60 149 command.c:155 script_debug(): command - transport select
Debug: 61 150 command.c:155 script_debug(): command - expr  [ string first "hla" $_TRANSPORT ] != -1
Debug: 62 153 command.c:155 script_debug(): command - cortex_m reset_config sysresetreq
Debug: 63 155 command.c:155 script_debug(): command - stm32f1x.cpu configure -event examine-end# DBGMCU_CR |= DBG_WWDG_STOP | DBG_IWDG_STOP |#              DBG_STANDBY | DBG_STOP | DBG_SLEEPmmw 0xE0042004 0x00000307 0Debug: 64 161 command.c:155 script_debug(): command - tpiu create stm32f1x.tpiu -dap stm32f1x.dap -ap-num 0 -baseaddr 0xE0040000
Debug: 65 165 command.c:155 script_debug(): command - stm32f1x.tpiu configure -event pre-enable _proc_pre_enable_stm32f1x.tpiu stm32f1x.cpu
Debug: 66 169 command.c:155 script_debug(): command - adapter speed 10000
Debug: 67 171 adapter.c:251 adapter_config_khz(): handle adapter khz
Debug: 68 173 adapter.c:215 adapter_khz_to_speed(): convert khz to adapter specific speed value
Debug: 69 176 adapter.c:215 adapter_khz_to_speed(): convert khz to adapter specific speed value
User : 70 179 options.c:52 configuration_output_handler(): adapter speed: 10000 kHz
User : 71 181 options.c:52 configuration_output_handler():
Info : 72 184 server.c:297 add_service(): Listening on port 6666 for tcl connections
Info : 73 187 server.c:297 add_service(): Listening on port 4444 for telnet connections
Debug: 74 189 command.c:155 script_debug(): command - init
Debug: 75 191 command.c:155 script_debug(): command - target init
Debug: 76 193 command.c:155 script_debug(): command - target names
Debug: 77 195 command.c:155 script_debug(): command - stm32f1x.cpu cget -event gdb-flash-erase-start
Debug: 78 198 command.c:155 script_debug(): command - stm32f1x.cpu configure -event gdb-flash-erase-start reset init
Debug: 79 201 command.c:155 script_debug(): command - stm32f1x.cpu cget -event gdb-flash-write-end
Debug: 80 204 command.c:155 script_debug(): command - stm32f1x.cpu configure -event gdb-flash-write-end reset halt
Debug: 81 208 command.c:155 script_debug(): command - stm32f1x.cpu cget -event gdb-attach
Debug: 82 210 command.c:155 script_debug(): command - stm32f1x.cpu configure -event gdb-attach halt 1000
Debug: 83 213 target.c:1657 handle_target_init_command(): Initializing targets...
Debug: 84 215 semihosting_common.c:109 semihosting_common_init():
Debug: 85 217 jlink.c:635 jlink_init(): Using libjaylink 0.4.0 (compiled with 0.4.0)
Debug: 86 235 jlink.c:514 jaylink_log_handler(): Found device (VID:PID = 1366:0101, bus:address = 001:018)
Warn : 87 238 jlink.c:514 jaylink_log_handler(): Failed to open device: LIBUSB_ERROR_NOT_SUPPORTED
Debug: 88 241 jlink.c:514 jaylink_log_handler(): Found 0 USB device(s)
Error: 89 242 jlink.c:688 jlink_init(): No J-Link device found
Debug: 90 244 command.c:544 run_command(): Command 'init' failed with error code -100
User : 91 247 command.c:608 command_run_line():
Debug: 92 249 target.c:2199 target_free_all_working_areas_restore(): freeing all working areas

根据调试日志分析,根本原因是 ​Windows 系统下 libusb 与 SEGGER 官方驱动冲突,导致 OpenOCD 无法正确访问 J-Link 设备。以下是逐行解析和终极解决方案:

​错误日志关键点分析
Found device (VID:PID = 1366:0101)
J-Link 设备已被系统识别,VID/PID 正确。
Failed to open device: LIBUSB_ERROR_NOT_SUPPORTED
OpenOCD 的 libjaylink 库尝试通过 libusb 访问 J-Link,但被系统拒绝。
No J-Link device found
最终因驱动冲突导致设备访问失败。
​根本原因
​Windows 系统同时存在 libusb 和 SEGGER 驱动,OpenOCD 默认优先使用 libusb,但 SEGGER 官方驱动已独占设备访问权。
​OpenOCD 配置未完全禁用 libusb,导致底层库(libjaylink)仍尝试通过 libusb 通信。

但是尝试了很多办法 不知道如何使clion使用segger的驱动,也尝试了禁用libusb在cfg文件内加入以下代码 好像无效,

# 禁用 libusb,强制使用 SEGGER 驱动
jlink config use_libusb false
jlink usb 0

根据wiki 文档 那segger+jlink就不是一个好的调试选项,因为切换后,因为他更换了jlink的驱动程序,使用keil iar 等程序时,就不太好用了,
那不如换调试器了,DAP或者st link

总结

至此,总算是能完成的搭建好 构建 debug的环境配置了,尽管jlink+openocd不是一个联合调试的好选项。

参考

1.参考1 解决openocd无法识别jlink的问题LIBUSB_ERROR_NOT_SUPPORTED
2.解决libusb问题参考2
3.segger wiki原参考文档

相关文章:

clion+arm-cm3+MSYS-mingw +jlink配置用于嵌入式开发

0.前言 正文可以跳过这段 初识clion,应该是2015年首次发布的时候, 那会还是大三,被一则推介广告吸引到,当时还在用vs studio,但是就喜欢鼓捣新工具,然后下载安装试用了clion,但是当时对cmake规…...

物联网-IoTivity:开源的物联网框架

IoTivity 是一个开源的物联网(IoT)框架,旨在为物联网设备提供互操作性、安全性和可扩展性。它由 Open Connectivity Foundation (OCF) 主导开发,遵循 OCF 的标准,致力于实现设备之间的无缝连接和通信。IoTivity 提供了一个统一的框架,支持设备发现、数据交换、设备管理和…...

Acrobat DC v25.001 最新专业版已破,像word一样编辑PDF!

在数字化时代,PDF文件以其稳定性和通用性成为了文档交流和存储的热门选择。无论是阅读、编辑、转换还是转曲,大家对PDF文件的操作需求日益增加。因此,一款出色的PDF处理软件不仅要满足多样化的需求,还要通过简洁的界面和强大的功能…...

【c++】模板进阶

在前面我们学习了模板的基础用法【c】 模板初阶-CSDN博客初步认识了函数模板和类模板,接下来让我们看看模板还有哪些进阶的应用。 非类型模板参数 之前我们用到的模板全都使用了类型参数 类型参数:表示某种数据类型(如 int、double、自定义…...

IntelliJ IDEA 2021版创建springboot项目的五种方式

第一种方式,通过https://start.spring.io作为spring Initializr的url来创建项目。 第二种方式,通过https://start.spring.io官网来直接创建springboot项目压缩包,然后导入至我们的idea中。 点击generate后,即可生成压缩包&#xf…...

数字信号处理之信号功率谱计算welch方法(分段加窗平均周期图)、Bartlett方法(周期图)(Python)

welch方法原理说明 welch方法[1]通过将数据划分为重叠的段,计算每个段的进行修改(加窗)后的周期图,然后对所有段的周期图求和进行平均,得到最终的功率谱密度。 Python和Matlab中均存在welch函数。welch函数通过配置noverlap为0,可…...

【面试】Java 基础

基础 1、Java 中几种基本数据类型什么,各自占用多少字节2、基本数据同包装类的区别3、Java 基本类型的参数传递和引用类型的参数传递有啥区别4、隐式类型转换和显式类型转换5、switch 语句表达式结果的类型6、数组的扩容方式7、面向对象三大特征8、静态变量和成员变…...

【工具使用】IDEA 社区版如何创建 Spring Boot 项目(详细教程)

IDEA 社区版如何创建 Spring Boot 项目(详细教程) Spring Boot 以其简洁、高效的特性,成为 Java 开发的主流框架之一。虽然 IntelliJ IDEA 专业版提供了Spring Boot 项目向导,但 社区版(Community Edition&#xff09…...

CTFHub-FastCGI协议/Redis协议

将木马进行base64编码 <?php eval($_GET[cmd]);?> 打开kali虚拟机&#xff0c;使用虚拟机中Gopherus-master工具 Gopherus-master工具安装 git clone https://github.com/tarunkant/Gopherus.git 进入工具目录 cd Gopherus 使用工具 python2 "位置" --expl…...

【Python字符串】\n是什么?它与raw字符串、多行字符串的运用有什么关系?

李升伟 整理 在Python中&#xff0c;\n 是换行符&#xff0c;用于在字符串中表示新的一行。当你在字符串中使用 \n 时&#xff0c;Python 会在该位置插入一个换行符&#xff0c;使得输出在 \n 处换行。 1. 普通字符串中的 \n 在普通字符串中&#xff0c;\n 会被解释为换行符…...

Linux 配置静态 IP

一、简介 在 Linux CentOS 系统中默认动态分配 IP 地址&#xff0c;每次启动虚拟机服务都是不一样的 IP&#xff0c;因此要配置静态 IP 地址避免每次都发生变化&#xff0c;下面将介绍配置静态 IP 的详细步骤。 首先先理解一下动态 IP 和静态 IP 的概念&#xff1a; 动态 IP…...

git lfs使用方法指南【在github保存100M以上大文件】

为了在 GitHub 仓库中存储超过 100MB 的大文件并避免推送失败&#xff0c;使用 Git LFS&#xff08;Large File Storage&#xff09; 是最佳解决方案。以下是详细步骤&#xff1a; 一、安装 Git LFS 下载并安装 Git LFS&#xff1a; 访问 Git LFS 官网 下载对应系统的安装包。或…...

【Linux】初识线程

目录 一、什么是线程&#xff1a; 重定义线程和进程&#xff1a; 执行流&#xff1a; Linux中线程的实现方案&#xff1a; 二、再谈进程地址空间 三、小结&#xff1a; 1、概念&#xff1a; 2、进程与线程的关系&#xff1a; 3、线程优点&#xff1a; 4、线程…...

【Linux学习笔记】Linux基本指令分析和权限的概念

【Linux学习笔记】Linux基本指令分析和权限的概念 &#x1f525;个人主页&#xff1a;大白的编程日记 &#x1f525;专栏&#xff1a;Linux学习笔记 文章目录 【Linux学习笔记】Linux基本指令分析和权限的概念前言一. 指令的分析1.1 alias 指令1.2 grep 指令1.3 zip/unzip 指…...

uniapp登录用户名在其他页面都能响应

使用全局变量 1、在APP.vue中定义一个全局变量&#xff0c;然后在需要的地方引用它&#xff1b; <script>export default {onLaunch: function() {console.log(App Launch)this.globalData { userInfo: {} };},onShow: function() {console.log(App Show)},onHide: fu…...

ESP8266 入门(第 2 部分):使用 AT 命令

使用 AT 命令对 WiFi 收发器ESP8266编程 本教程是上一个教程 ESP8266 入门(第 1 部分)的延续。因此,简单回顾一下,在之前的教程中,我们介绍了 ESP 模块,并学习了一些基础知识。我们还使用 FTDI 串行适配器模块制作了一个开发板,该模块可以很容易地用于使用 AT 命令和 A…...

介绍一下Qt 中的QSizePolicy 布局策略

在 Qt 中&#xff0c;QSizePolicy 类用于描述一个控件在布局中如何分配空间&#xff0c;它定义了控件在水平和垂直方向上对空间的需求和响应策略。以下是对 QSizePolicy 策略的详细介绍&#xff1a; 基本概念 QSizePolicy 包含两个主要的属性&#xff1a;Policy&#xff08;策…...

从ETL到数仓分层:大数据处理的“金字塔”构建之道

在当今数据驱动的时代&#xff0c;大数据处理已成为企业决策和业务优化的核心。而ETL&#xff08;Extract, Transform, Load&#xff09;作为数据处理的基石&#xff0c;其背后的数仓分层理念更是决定了数据处理的效率与质量。本文将深入探讨ETL工作中的数仓分层理念&#xff0…...

springBoot集成声明式和编程式事务的方式

一、声明式事务 前提集成了mybatisplus插件 1、pom依赖 <dependencies><!-- MyBatis-Plus 启动器 --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3.4&l…...

前端实现版本更新自动检测✅

&#x1f916; 作者简介&#xff1a;水煮白菜王&#xff0c;一位资深前端劝退师 &#x1f47b; &#x1f440; 文章专栏&#xff1a; 前端专栏 &#xff0c;记录一下平时在博客写作中&#xff0c;总结出的一些开发技巧和知识归纳总结✍。 感谢支持&#x1f495;&#x1f495;&a…...

Python零基础学习第三天:函数与数据结构

一、函数基础 函数是什么&#xff1f; 想象你每天都要重复做同一件事&#xff0c;比如泡咖啡。函数就像你写好的泡咖啡步骤说明书&#xff0c;每次需要时直接按步骤执行&#xff0c;不用重新想流程。 # 定义泡咖啡的函数 def make_coffee(sugar1): # 默认加1勺糖 print("…...

深入了解Linux —— 调试程序

前言 我们已经学习了linux下许多的工具&#xff0c;vim、gcc、make/makefile等&#xff1b; 已经能够在linux写代码&#xff0c;并且进行编译运行&#xff0c;让程序在linux下跑起来。 但是&#xff0c;如果我们在写代码的时候遇见了错误&#xff1b;但是我们并不知道错误在哪&…...

解决VScode 连接不上问题

问题 &#xff1a;VScode 连接不上 解决方案&#xff1a; 1、手动杀死VS Code服务器进程&#xff0c;然后重新尝试登录 打开xshell &#xff0c;远程连接服务器 &#xff0c;查看vscode的进程 &#xff0c;然后全部杀掉 [cxqiZwz9fjj2ssnshikw14avaZ ~]$ ps ajx | grep vsc…...

行式数据库与列式数据库区别

列式数据库&#xff08;Columnar Database&#xff09;和行式数据库&#xff08;Row-based Database&#xff09;是两种不同的数据存储和检索方式&#xff0c;它们在数据组织、存储结构和适用场景上有显著区别。以下是对两者的详细对比&#xff1a; 1. 数据存储方式 行式数据库…...

如何将本地已有的仓库上传到gitee (使用UGit)

1、登录Gitee。 2、点击个人头像旁边的加号&#xff0c;选择新建仓库&#xff1a; 3、填写仓库相关信息 4、复制Gitee仓库的地址 5、绑定我们的本地仓库与远程仓库 6、将本地仓库发布&#xff08;推送&#xff09;到远程仓库&#xff1a; 注意到此处报错&#xff…...

FIWARE:开源的物联网平台,支持设备虚拟化和数据管理

FIWARE 是一个开源的物联网(IoT)平台,旨在为物联网应用提供强大的数据管理和设备虚拟化功能。FIWARE 提供了一系列通用的 API 和组件,支持设备管理、数据采集、数据处理、数据共享和安全通信等功能,使得开发者能够快速构建和扩展物联网解决方案。以下是 FIWARE 的核心功能…...

RISC-V汇编学习(三)—— RV指令集

有了前两节对于RISC-V汇编、寄存器、汇编语法等的认识&#xff0c;本节开始介绍RISC-V指令集和伪指令。 前面说了RISC-V的模块化特点&#xff0c;是以RV32I为作为ISA的核心模块&#xff0c;其他都是要基于此为基础&#xff0c;可以这样认为&#xff1a;RISC-V ISA 基本整数指…...

【Linux】冯诺依曼体系与操作系统理解

&#x1f31f;&#x1f31f;作者主页&#xff1a;ephemerals__ &#x1f31f;&#x1f31f;所属专栏&#xff1a;Linux 目录 前言 一、冯诺依曼体系结构 二、操作系统 1. 操作系统的概念 2. 操作系统存在的意义 3. 操作系统的管理方式 4. 补充&#xff1a;理解系统调用…...

Android15使用FFmpeg解码并播放MP4视频完整示例

效果: 1.编译FFmpeg库: 下载FFmpeg-kit的源码并编译生成安装平台库 2.复制生成的FFmpeg库so文件与包含目录到自己的Android下 如果没有prebuiltLibs目录,创建一个,然后复制 包含目录只复制arm64-v8a下...

音视频入门基础:RTP专题(16)——RTP封装音频时,音频的有效载荷结构

一、引言 《RFC 3640》和《RFC 6416》分别定义了两种对MPEG-4流的RTP封包方式&#xff0c;这两个文档都可以从RFC官网下载&#xff1a; RFC Editor 本文主要对《RFC 3640》中的音频打包方式进行简介。《RFC 3640》总共有43页&#xff0c;本文下面所说的“页数”是指在pdf阅读…...

3.3.2 Proteus第一个仿真图

文章目录 文章介绍0 效果图1 新建“点灯”项目2 添加元器件3 元器件布局接线4 补充 文章介绍 本文介绍&#xff1a;使用Proteus仿真软件画第一个仿真图 0 效果图 1 新建“点灯”项目 修改项目名称和路径&#xff0c;之后一直点“下一步”直到完成 2 添加元器件 点击元…...

MySQL创建数据库和表,插入四大名著中的人物

一、登录数据库并创建数据库db_ck 二、创建表t_hero 表属性包括&#xff08;id&#xff0c;name&#xff0c;nickname&#xff0c;age&#xff0c;gender&#xff0c;address&#xff0c;weapon&#xff0c;types&#xff09; mysql> create table t_hero(-> id int,-…...

matlab和FPGA联合仿真时读写.txt文件数据的方法

在FPGA开发过程中&#xff0c;往往需要将MATLAB生成的数据作为原始激励灌入FPGA进行仿真。为了验证FPGA计算是否正确&#xff0c;又需要将FPGA计算结果导入MATLAB绘图与MATLAB计算结果对比。 下面是MATLAB“写.txt”、“读.txt”&#xff0c;Verilog“读.txt”、“写.txt”的代…...

C++修炼之路:初识C++

Hello大家好&#xff01;很高兴我们又见面啦&#xff01;给生活添点passion&#xff0c;开始今天的编程之路&#xff01; 我的博客&#xff1a;<但凡. 我的专栏&#xff1a;《编程之路》、《数据结构与算法之美》、《题海拾贝》 欢迎点赞&#xff0c;关注&#xff01; 引言 …...

ACE协议学习1

在多核系统或复杂SoC&#xff08;System on Chip&#xff09;中&#xff0c;不同处理器核心或IP&#xff08;Intellectual Property&#xff09;模块之间需要保持数据的一致性。常用的是ACE协议or CHI。 先对ACE协议进行学习 ACE协议&#xff08;Advanced Microcontroller Bu…...

通俗易懂的介绍LLM大模型技术常用专业名词(通用版)

1. 神经网络 (Neural Network) 解释: 一种模拟人脑神经元结构的计算模型&#xff0c;用于处理复杂的数据模式。 示例: 图像识别中的卷积神经网络&#xff08;CNN&#xff09;。 2. 深度学习 (Deep Learning) 解释: 基于多层神经网络的机器学习方法&#xff0c;能够自动提取数…...

深度学习环境安装

Anaconda 3.0 下载地址 Download Success | Anaconda CUDA 下载地址 cuda_12.4.0 https://developer.nvidia.com/cuda-12-4-0-download-archive?target_osWindows&target_archx86_64&target_version11&target_typeexe_local pytorch 下载地址 &#xff08;2…...

【哇! C++】类和对象(五) - 赋值运算符重载

目录 ​编辑 一、运算符重载 1.1 运算符重载概念 1.2 全局运算符重载 1.3 运算符重载为成员函数 二、赋值运算符重载的特性 2.1 赋值运算符重载需要注意的点 2.2 赋值运算符重载格式 2.2.1 传值返回 2.2.2 传引用返回 2.2.3 检查自己给自己赋值 三、赋值运算符重载的…...

【时序图】1.StarUML绿化

1)下载地址 官网: StarUML 如下: 2)绿化 step1:用管理员打开cmd&#xff0c;执行如下 npm install -g asar cd C:\Program Files\StarUML\resources //进入到StarUML的默认安装目录下面 asar extract app.asar app //反编译软件step2:把resources下的app文件夹拷贝出来到…...

mysql练习

创建数据库db_ck&#xff0c;再创建表t_hero&#xff0c;将四大名著中的主要人物都插入这个表中&#xff0c;将实现过程中sql提交上上来 1、创建数据库db_ck mysql> create database db_ck; 2、创建表t_hero mysql> use db_ck Database changed mysql> create table …...

数据结构(队列)

数据结构&#xff08;队列&#xff09; 什么是队列&#xff1f; 队列和栈类似&#xff0c;也是一类特殊的线性表。特殊之处也是在于操作上。队列&#xff1a;只允许在一端进行插入数据操作&#xff08;入队&#xff09;&#xff0c;在另一端进行删除数据操作&#xff08;出队&…...

fps项目二次总结

文章目录 角色角色蓝图动画蓝图角色蓝图与动画蓝图间的通信动画蓝图绑定在网格体上 其他蓝图角色蓝图与其他蓝图的通信通信详解单向通信&#xff1a;A向B与B向A互不相通A向B发送消息A&#xff1a;发起方&#xff1a;即调用方B&#xff1a;接收方&#xff1a;即提供方&#xff1…...

VTK笔记- 3D Widget类 vtkSplineWidget 样条部件

vtk3DWidget vtk3DWidget是用于3D交互观察器的基类&#xff0c;也就是各种3D小部件类的基类&#xff0c;主要是在三维渲染场景中生成一个可以用于控制数据的可视化实体&#xff0c;比如点&#xff0c;线段&#xff08;曲线&#xff09;、平面、球体、包围盒&#xff08;线框&am…...

文心一言:中国大模型时代的破局者与探路者

2023年&#xff0c;生成式人工智能&#xff08;AIGC&#xff09;的浪潮席卷全球&#xff0c;而百度推出的“文心一言”&#xff08;ERNIE Bot&#xff09;作为中国AI领域的代表性产品&#xff0c;迅速成为行业焦点。这款基于百度自主研发的“文心大模型”打造的对话式AI工具&am…...

【芯片验证】verificationguide上的36道UVM面试题

跟上一篇一样,verificationguide上的36到UVM面试题,通义回答ds判卷。 1. What is uvm_transaction, uvm_seq_item, uvm_object, uvm_component? uvm_transaction、uvm_seq_item、uvm_object、uvm_component是什么? uvm_transaction是UVM中所有事务的基础类,用于表示仿真…...

操作系统控制台-健康守护我们的系统

引言基本准备体验功能健康守护系统诊断 收获提升结语 引言 阿里云操作系统控制平台作为新一代云端服务器中枢平台&#xff0c;通过创新交互模式重构主机管理体验。操作系统控制台提供了一系列管理功能&#xff0c;包括运维监控、智能助手、扩展插件管理以及订阅服务等。用户可以…...

基于策略模式的智能提示语生成器设计与实现——以Tkinter GUI开发为例

基于策略模式的智能提示语生成器设计与实现——以Tkinter GUI开发为例 一、引言&#xff1a;智能化时代的提示工程工具 在人工智能技术广泛应用的时代背景下&#xff0c;如何与AI模型进行有效交互已成为关键技能。本文介绍的"AI任务需求与提示语策略生成器"正是基于…...

【打卡d1】算法模拟类

题目1 题目描述: 某百货公司为了促销&#xff0c;采用购物打折的优惠方法&#xff0c;每位顾客一次购物:在1000元以上者&#xff0c;按 9.5 折优惠;在2000以上者&#xff0c;按9折优惠;在3000以上者&#xff0c;按8.5 折优惠;在5000 以上者&#xff0c;按8折优惠;编写程序&…...

7.2 奇异值分解的基与矩阵

一、奇异值分解 奇异值分解&#xff08;SVD&#xff09;是线性代数的高光时刻。 A A A 是一个 m n m\times n mn 的矩阵&#xff0c;可以是方阵或者长方形矩阵&#xff0c;秩为 r r r。我们要对角化 A A A&#xff0c;但并不是把它化成 X − 1 A X X^{-1}A X X−1AX 的形…...

3.3.2 用仿真图实现点灯效果

文章目录 文章介绍Keil生成.hex代码Proteus仿真图中导入.hex代码文件开始仿真 文章介绍 点灯之前需要准备好仿真图keil代码 仿真图参考前文&#xff1a;3.3.2 Proteus第一个仿真图 keil安装参考前文&#xff1a;3.1.2 Keil4安装教程 keil新建第一个项目参考前文&#xff1a;3.1…...