一种应用非常广泛的开源RTOS(实时操作系统):nuttx
什么是NuttX?
NuttX(读音接近“纳特-艾克斯”)是一种应用非常广泛的开源RTOS(实时操作系统),由Gregory Nutt博士主要推动开发。RTOS,即 Real-Time Operating System,直译为“实时操作系统”,是专门为对响应速度和任务调度有严格要求的嵌入式设备准备的微型系统内核。
NuttX 的定位非常有趣:它致力于可移植性极好、标准高度兼容、功能丰富但占用极低,同时还有一份“向POSIX靠拢,像类Unix” 的哲学。结果是:你既可以像在 Linux 里那样写C代码,又能运行在小到几百K、芯片只有几十兆主频的小设备上。这让NuttX非常适合工业产品、无人机、遥感终端、科学仪器等。
官网:Home
GitHub:https://github.com/apache/nuttx
NuttX 有什么特别?
1. 类Unix风格,极度兼容标准C接口
和很多MCU上的RTOS只能跑定制API不同,NuttX深度支持POSIX API(比如 open/close、ioctl、pthread 线程等),甚至兼容子集的标准文件系统、TCP/IP协议栈、shell(叫Nsh),能让用惯Linux的人在更小芯片上写出结构类似的嵌入式应用。
2. 高度可裁剪、移植性极强
NuttX可以运行在数十种主流与冷门的芯片架构上,包括 ARM Cortex-M、RISC-V、MIPS、x86 等,多种开发板开箱即用。你可以根据硬件资源和需求,把它精简成几十KB的小而美内核,或者集成大量外设驱动(USB、SD卡、LCD、摄像头等)。
3. 丰富的功能和协议栈
- 支持多进程/多线程(支持调度算法)
- 包含多种文件系统(如FAT、NFS、TMPFS等)
- 提供标准网络协议栈(IPv4/IPv6、TCP/UDP、FTP、HTTP等)
- 内置Shell,支持多命令
- 能跑图形界面(NxGraphics)、触摸输入、USB Host/Device等
4. 开源&社区活跃
NuttX 完全开源(Apache 2.0协议),GitHub上有数千颗星,讨论区也很活跃,贡献者里既有业余爱好者也有无人机和航天公司工程师。它还是Dronecode(开源无人机)等工业标准项目的底层组件。
NuttX 被谁用了?
- 无人机:大名鼎鼎的 PX4 飞控系统,就是基于 NuttX,飞友、航模圈都离不开它
- 工业与IoT设备:物联网采集器、遥控终端、传感模块
- 科研、教育、航天:因为类Unix体验,很多高校、研究团队用来教学和实验
- DIY极客:各种小型开发板,如 STM32/NXP/RISC-V/ESP32 等均可轻松移植运行
为什么选择NuttX而不是FreeRTOS/RT-Thread等?
- 如果你的应用很“小而精”,需要极致低占用、简单任务切换,像FreeRTOS、RT-Thread都很棒;
- 如果你希望“玩点大的”,比如用嵌入式芯片做一个小型‘Linux’设备、有标准shell、套接字、可移植大量Linux C代码,那NuttX是目前RTOS圈内最像“真操作系统”的方案之一;
- 它也是POSIX风格开发、课程教学和企业自研底层架构的很好选择。
如何入门 NuttX?
- 官网:Home
- GitHub:https://github.com/apache/nuttx
- 开发板支持:STM32F4、ESP32、NXP、野火等多种板卡可选
- 新手可先找一块普及开发板(如STM32F4Discovery、ESP32 DevKit),试着跑个点亮LED或Hello, NuttX!
- 官方文档和社区教程丰富,许多B站、知乎极客已经做了详细入门样例
小结
NuttX是一款兼容性极强、功能丰富、像极了“小号Linux”的RTOS,混合了“最标准的嵌入式实时性”和“灵活的Unix体验”。你想做无人机、做科学仪器、做高级IoT,不妨上手试试看。
NuttX 里面可以跑lisp或者python吗?
简短结论
NuttX 里可以玩 Lisp,也可以玩 Python,但这两者的玩法和在 PC/Linux 上是有很大不同的。
主要受限于硬件资源和移植程度,但已经有前人做过相关工作。
1. Lisp on NuttX
NuttX 社区和开源圈里,移植过多种“小型Lisp解释器”,例如:
- ELisp
- uLisp
- TinyScheme
- minilisp
这些项目通常只需要几百KB、甚至几十KB内存,非常适合在 NuttX 这种资源有限的平台上运行。
比如 uLisp、minilisp 可以很容易嵌进 NuttX,新手只需:
- 在 NuttX 的应用(apps/)目录里集成一份 C 语言的 Lisp 解释器源码;
- 用 make menuconfig 选上;
- 编译后可以在 Shell 里跑 Scheme/Lisp 脚本,比如算表达式、做字符串处理、甚至玩点小AI算法。
应用场景:教学、嵌入式脚本扩展、极客玩具等。
2. Python on NuttX
直接让全功能 Python 3 跑在 NuttX 上,对绝大部分 MCU 来说是不可行的,因为资源太吃紧。但!
a) MicroPython/ CircuitPython
- MicroPython 是专为微控制器优化的 Python 解释器,其目标平台之一就是 STM32、ESP32 这些嵌入式芯片。
- NuttX 支持移植 MicroPython,部分开发者已经【在 NuttX 上移植 MicroPython 运行时间】。
- 实操流程一般是:
- port MicroPython 工程到 NuttX 平台;
- 编译进镜像后,就能在 NuttShell(nsh)下启动“python脚本”;
b) “真” Python 3 or 2
- 只有在 ARM Cortex-A、x86 这类有较大内存、Linux 级性能的 SoC(树莓派、某些高性能开发板)上,把 NuttX 当小型Unix玩,才有可能通过交叉编译让原生 Python 解释器用起来。
- 实际上极少 DIY 场景真这样操作,因为 NuttX 的目标和资源分配本就不适合“重型应用”。
3. 玩 NuttX 脚本语言,现实推荐是什么?
- 想在 NuttX 环境练习脚本扩展,Lisp/TinyScheme/uLisp是首选,轻量、速成、类Unix风非常纯正。
- 想体验 Python,强烈建议试试MicroPython移植,官方和社区都有这块文档和讨论。
- 更高级玩法,可以在“nsh Shell”下定制自己的 C/C++ 内置命令、Lua 解释器(NuttX 也支持部分 Lua 集成),实现功能相当丰富的微型shell系统。
4. 延伸资料
- NuttX Apps 目录:不少脚本语言/解析器都能作为 app 直接 make 集成。
- 微博、B站、知乎有不少硬核极客写过“STM32/NuttX 移植 MicroPython/Lisp”等实录/教程。
总结一句
NuttX 是极其灵活的RTOS,你可以在上面愉快地跑Mini Lisp等很多脚本语言;
Python可以用MicroPython方案实现(部分板卡已有现成移植),如果真要跑全功能Python,推荐资源更多些的高端平台或直接上Linux。
nuttx有哪些命令?
在 NuttX 里,用户通过自带的命令行(叫 NuttShell,简称 nsh)进行交互。这个 Shell 类似于 Linux 的最简化版 bash,带有大量小而精的内置命令。这些命令既有最基础的文件/目录操作,也有网络诊断、系统测试、设备控制等。
由于 NuttX 可以高度裁剪和自定义,具体命令受你编译选项和 apps 包含内容影响,但常用的一批命令是大多数硬件/开发板都会有的。
下面科普一批NuttX 经典和常用的 nsh 命令:
1. 系统基础命令
命令 | 作用 |
---|---|
help | 查看所有可用命令 |
ls | 列出目录内容 |
cd | 切换目录 |
pwd | 显示当前路径 |
cat | 查看文件内容 |
echo | 打印字符串 |
rm | 删除文件 |
cp | 复制文件 |
mv | 移动/重命名文件 |
mkdir | 新建目录 |
rmdir | 删除目录 |
df | 显示磁盘空间使用 |
mount | 查看或挂载文件系统 |
umount | 卸载文件系统 |
date | 查看/设置日期时间 |
sleep | 暂停指定秒数 |
2. 系统及进程管理
命令 | 作用 |
---|---|
ps | 查看进程状态 |
kill | 杀死指定进程 |
free | 显示可用内存 |
reboot | 软重启系统 |
shutdown | 关闭系统(大部分板卡上无意义) |
uname | 显示NuttX系统信息 |
uptime | 系统运行时间 |
3. 网络相关命令
命令 | 作用 |
---|---|
ifconfig | 网络接口管理/配置IP |
ping | 测试网络连通性 |
route | 显示/设置路由表 |
netstat | 网络状态(打开端口等) |
telnetd | 启动telnet服务器 |
wget | 网络下载文件 |
nslookup | DNS查询 |
注:具体网络命令需编译/启动时打开网络支持
4. 设备、IO与硬件测试
命令 | 作用 |
---|---|
i2c | I2C接口测试 |
spi | SPI接口测试 |
adc | ADC模数转换测试 |
pwm | PWM波形输出测试 |
gpio | GPIO引脚操作(有的叫 gpio , 有的叫 gpiotool ) |
flash | Flash 读写 |
mount /umount | 挂载/卸载存储设备 |
lsblk | 列出块设备 |
5. 调试与系统扩展
命令 | 作用 |
---|---|
dmesg | 查看系统日志(有限,有的平台支持) |
hexdump | 查看文件/内存数据的十六进制内容 |
stackshot | 显示任务堆栈快照 |
mmap | 内存映射操作 |
6. 其它常用命令
命令 | 作用 |
---|---|
basename | 获取路径文件名部分 |
dirname | 获取路径目录部分 |
true /false | 返回成功/失败(判断脚本) |
test | 条件判断 |
alias | 设置命令别名 |
source | 执行脚本文件 |
7. 用户/外部App命令
你还可以自己编译/定制各种 app 模块,例如
hello
(Hello, Nuttx!)nshscript
(shell脚本解析器)- 设备驱动命令、测试命令、定制应用逻辑
如何查看本系统所有命令?
在 nsh 提示符下直接输入:
help
或者直接回车,会列出所有当前系统可用的命令,以及它们的简要说明。
补充 Tips
- 默认内置命令主要在 nuttx/apps/shell 及 nuttx/apps/builtin 目录实现
- 支持 tab 补全和管道,大部分简单 shell 语法能用(受限于嵌入式资源)
- 许多命令可带参
-h
查看帮助,如:ls -h
NuttX 的 shell 虽然精简,但功能实用,非常适合嵌入式开发、调试与野外部署。
实践
在线demo学习
地址:Demo
输入help,可以看到所有的命令,熟悉下前面讲的nuttx的那些命令
. cp exit mkdir rmdir umount[ cmp false mkrd set unset? dirname fdinfo mount sleep uptimealias dd free mv source usleepunalias df memdump pidof test xdbasename dmesg help printf timebreak echo hexdump ps truecat env kill pwd truncatecd exec ls rm uname
可以创建目录,cat查看文件等。但是怎么touch文件,或者编辑文件,没有找到....
实践esp32c3
期待中...
总结
NuttX是一款兼容性极强、功能丰富、像极了“小号Linux”的RTOS,混合了“最标准的嵌入式实时性”和“灵活的Unix体验”。你想做无人机、做科学仪器、做高级IoT,不妨上手试试看。官网:家
相关文章:
一种应用非常广泛的开源RTOS(实时操作系统):nuttx
什么是NuttX? NuttX(读音接近“纳特-艾克斯”)是一种应用非常广泛的开源RTOS(实时操作系统),由Gregory Nutt博士主要推动开发。RTOS,即 Real-Time Operating System,直译为“实时操…...
WebSocket 客户端 DLL 模块设计说明(基于 WebSocket++ + Boost.Asio)
WebSocket 客户端 DLL 模块设计说明(基于 WebSocket Boost.Asio) 📌 目录 一、模块总览二、导出接口说明(EXPORTS)三、状态变量功能解读四、连接启动流程详解五、事件回调说明六、消息发送流程七、心跳与断连 JSON …...
微信小程序:封装request请求、解决请求路径问题
一、创建文件 1、创建请求文件 创建工具类文件request.js,目的是用于发送请求 二、js接口封装 1、写入接口路径 创建一个变量BASE_URL专门存储api请求地址 2、获取全局的token变量 从缓存中取出token的数据 3、执行请求 (1)方法中接收传递的参数 function request(url,…...
Ubuntu24.04 安装 5080显卡驱动以及cuda
前言 之前使用Ubuntu22.04版本一直报错,然后换了24.04版本才能正常安装 一. 配置基础环境 Linux系统进行环境开发环境配置-CSDN博客 二. 安装显卡驱动 1.安装驱动 按以下步骤来: sudo apt update && sudo apt upgrade -y#下载最新内核并安装 sudo add…...
Jenkins的流水线执行shell脚本执行jar命令后项目未启动未输出日志问题处理
现象 在流水线里配置了启动脚本例如,nohup java -jar xxx.jar >nohup.out 2>&1 & 但是在服务器发现服务并未启动,且nohup日志里没输出日志,这样的原因是jenkins在执行完脚本后,就退出了这个进程。 解决 在启动脚本执行jar命令的上一步…...
Core Web Vitals 全链路优化:从浏览器引擎到网络协议深度调优
Core Web Vitals 全链路优化:从浏览器引擎到网络协议深度调优 一、浏览器渲染引擎级优化 1.1 合成器线程优化策略 • 分层加速:通过will-change属性创建独立的合成层 .accelerated {will-change: transform;backface-visibility: hidden; }• 光栅化策略调整:使用image-r…...
【网络编程】十、详解 UDP 协议
文章目录 Ⅰ. 传输层概述1、进程之间的通信2、再谈端口号端口号的引出五元组标识一个通信端口号范围划分常见的知名端口号查看知名端口号协议号 VS 端口号 3、两个问题一个端口号是否可以被多个进程绑定?一个进程是否可以绑定多个端口号? 4、部分常见指令…...
求职困境:开发、AI、运维、自动化
文章目录 问:我的技术栈是web全栈(js,css,html,react,typscript),C开发,python开发,音视频图像开发,神经网络深度学习开发,运维&#…...
如何将数据从一部手机传输到另一部手机 | 5 种便捷传输方式
更换新手机可能是一种令人兴奋的体验,但您仍然需要解决问题 - 如何将数据从一部手机传输到另一部手机。幸运的是,有多种方法可以简化此过程,从一键式解决方案到基于云的传输。本文探讨了五种流行的技术来帮助您无缝迁移数据。 第 1 部分&…...
GEE计算 RSEI(遥感生态指数)
🛰️ 什么是 RSEI?为什么要用它评估生态环境? RSEI(遥感生态指数,Remote Sensing Ecological Index) 是一种通过遥感数据计算得到的、综合反映区域生态环境质量的指标体系。 它的设计初衷是用最少的变量&…...
k8s监控方案实践补充(二):使用kube-state-metrics获取资源状态指标
k8s监控方案实践补充(二):使用kube-state-metrics获取资源状态指标 文章目录 k8s监控方案实践补充(二):使用kube-state-metrics获取资源状态指标一、Metrics Server简介二、kube-state-metrics实战部署1. 创…...
JavaScript:PC端特效--元素可视区client系列
一、client系列 client翻译过来就是客户端,我们使用client系列的相关属性来获取元素可视区的相关信息。通过client系列的相关属性可以动态的得到该元素的边框大小、元素大小等。 client系列属性作用element.clientTop返回元素上边框的大小element.clientLeft返回元…...
Centos7 中 Docker运行配置Apache
1、拉去httpd镜像(不加版本号,默认拉最新版本) docker pull httpd 2、运行httpd docker run -di --name httpd-test -p 8080:80 httpd 3、创建文件夹后边做映射 mkdir -p /Docker/apache/www /Docker/apache/logs /Docker/apache/conf 4、…...
PostgreSQL中的全页写
一、概述 在PGSQL数据库中,默认的页面大小为8KB,但是磁盘buffer的大小为4KB,扇区大小为512B。这就导致在操作系统的角度看数据库的写操作,其实并不是一种原子操作。如果操作系统发生了系统级别的故障,此时正好操作系统…...
对称二叉树的判定:双端队列的精妙应用
一、题目解析 题目描述 给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的: 1/ \2 2/ \ / \ 3 4 4 3而 [1,2,2,null,3,null,3] 则不是镜像对称的: 1/ \2 2\ \3 3问题本质 判断一棵二叉…...
Redis + ABP vNext 构建分布式高可用缓存架构
🚀 Redis ABP vNext 构建分布式高可用缓存架构 🔧 环境准备 开发环境 .NET 8.0 SDKVisual Studio 2022 / VS CodeDocker & Docker Compose NuGet 包 Volo.Abp.Caching.StackExchangeRedis v8.1.5Volo.Abp.DistributedLocking.StackExchangeRedis v…...
jvm第一篇《内存与垃圾回收》学习笔记第一章jvm初始
jvm是虚拟机的通称。 java实际默认的应用是hotspot(基于栈的指令集架构) 注:注意区分寄存器的指令集和栈指令集的架构。(大概理解java移植性好就是因为是栈指令集) jvm虚拟机,具有跨语言功能࿰…...
MySQL——3、数据类型
数据类型 1、数据类型分类2、数值类型2.1、tinyint类型2.2、bit类型2.3、小数类型2.3.1、float2.3.2、decimal 3、字符串类型3.1、char3.2、varchar3.3、char和varchar比较3.4、日期和时间类型3.5、enum和set 1、数据类型分类 2、数值类型 2.1、tinyint类型 首先创建t1表&…...
Flutter - 集成三方库:日志(logger)
日志 使用print方法时,会提示 添加依赖 $ flutter pub add logger下载依赖 $ flutter pub get使用 打印 import package:logger/logger.dart;var logger Logger(); logger.d("debug"); logger.e("error"); logger.i("info"); logger.f(&qu…...
第五部分:第五节 - Express 路由与中间件进阶:厨房的分工与异常处理
随着你的 Express 应用变得越来越大,所有的路由和中间件都写在一个文件里会变得难以管理。这时候就需要将代码进行拆分和组织。此外,一个健壮的后端应用必须能够优雅地处理错误和一些常见的 Web 开发问题,比如跨域。 路由模块化 (express.Ro…...
国标GB/T 12536-90滑行试验全解析:纯电动轻卡行驶阻力模型参数精准标定
摘要 本文以国标GB/T 12536-90为核心框架,深度解析纯电动轻卡滑行试验的完整流程与数据建模方法,提供: 法规级试验规范:从环境要求到数据采集全流程详解行驶阻力模型精准标定:最小二乘法求解 ( FAv^2BvC ) 的MATLAB实…...
组件导航 (Navigation)+flutter项目搭建-混合开发+分栏
组件导航 (Navigation)flutter项目搭建 接上一章flutter项目的环境变量配置并运行flutter 上一章面熟了搭建flutter并用编辑器运行了ohos项目,这章主要是对项目的工程化改造 先创建flutter项目,再配置Navigation 1.在开发视图的resources/base/profi…...
物联网中的WiFi模式解析:AP、STA与混合模式
物联网现在还是比较火的,各种设备都要联网,那么WiFi已成为设备联网的“标配”。但你是否想过,为什么有的设备能自己创建WiFi热点,有的只能连接路由器?为什么有些网关既能收数据又能传数据? 主要还是因为Wi…...
spring cloud gateway 源码解析
参考:Spring Cloud Gateway SpringCloud gateway源码走读(顺带聊聊响应式) - 掘金 1,原理图 还是从starter 开始看 要实现网关的核心概念, 肯定是需要接受请求的server ,从上面的截图看 starter-gateway 只负责了包的依赖,并没有定义自动配置 , 他依赖了starter-webf…...
游戏引擎学习第286天:开始解耦实体行为
回顾并为今天的内容定下基调 我们目前正在进入实体系统的一个新阶段,之前我们已经让实体的移动系统变得更加灵活,现在我们想把这个思路继续延伸到实体系统的更深层次。今天的重点,是重新审视我们处理实体类型(entity type&#x…...
【论文阅读】KIMI K1.5: SCALING REINFORCEMENT LEARNING WITH LLMS
KIMI K1.5: SCALING REINFORCEMENT LEARNING WITH LLMS Scaling的解释: 通过系统性的方法扩展强化学习算法的能力,使其能够处理更复杂的问题、更大的状态/动作空间、更长的训练周期或更高效的资源利用 原文摘要: 研究背景与问题定位 传统预训…...
大语言模型与多模态模型比较
一、核心差异:输入数据类型与模态融合 输入数据类型 LLM:仅处理文本数据,例如文本分类、机器翻译、问答等任务,通过大规模语料库学习语言规律。 LMM:支持文本、图像、音频、视频等多种模态输入,例如根据图…...
vscode debug node + 前端
方法 2:调试全栈(Node 前端) 如果需同时调试后端和前端: 分别启动两个调试会话 一个配置调试 Node.js 后端(server.js)。 另一个配置调试浏览器前端(如上)。 {// Use IntelliS…...
RK3568-鸿蒙5.1与原生固件-扇区对比分析
编译生成的固件目录地址 ../openharmony/out/rk3568/packages/phone/images鸿蒙OS RK3568固件分析 通过查看提供的信息,分析RK3568开发板固件的各个组件及其用途: 主要固件组件 根据终端输出的文件列表,RK3568固件包含以下关键组件&#x…...
Java线程池(Thread Pool)性能优化解析
在高性能、高并发的Java应用开发中,线程池(Thread Pool)是不可或缺的组件。它通过复用线程,避免了线程频繁创建和销毁带来的资源开销,提高了系统的响应速度和稳定性。然而,不合理的线程池配置和使用方式也可能成为系统性能瓶颈的根源。 本文旨在深入解析Java线程池的性能…...
AI重塑未来学者:研究生教育的“进化论”与“数字化生存指南
目录: 一、引言:AI浪潮下的“象牙塔”新挑战与新机遇 二、AI的“双刃剑”:深度剖析对研究生教育的颠覆性影响 1. 研究范式的革新:从“人工”到“智能” 2. 知识获取与传授方式的重塑 3. 创新能力与批判性思维的再定义 4. 伦理困境与学术诚信的新考验 三、他山之石:发达国家…...
IHttpHandler和Tcp Listener的web服务器接收上传文件有什么区别
IHttpHandler和Tcp Listener的web服务器接收上传文件有什么区别 IHttpHandler 与 TCP Listener 处理文件上传的核心区别 IHttpHandler 和 TcpListener 是ASP.NET中处理 HTTP 请求的两种不同抽象层级,它们在文件上传处理上存在以下关键区别: 1. 抽象层…...
C++ --- new与delete
new与delete 一、回顾1.malloc2.calloc3.realloc4.free 二、new与delete的特殊之处(1)(2) 三、new与delete的底层原理四、总结 一、回顾 在C语言阶段我们学习了动态内存管理:malloc,calloc,realloc,free。 1.malloc …...
Guided Filtering相关记录
一、背景介绍 以前折腾保边滤波时候,刷了一些Guided Filtering相关资料。这里主要是对它们做个算法效果复现和资料简单整理。 二、Guided Filtering 1、基本原理 原版Guided Filtering的提出,主要是为了改善双边滤波做保边平滑滤波器时候的梯度翻转伪影…...
Rust 学习笔记:关于 String 的练习题
Rust 学习笔记:关于 String 的练习题 Rust 学习笔记:关于 String 的练习题选出描述正确的那一个。该程序最多可能发生多少次堆的内存分配?哪种说法最能解释为什么 Rust 不允许字符串索引?哪种说法最能描述字符串切片 &str 和字…...
AG-UI 协议:重构多模态交互,开启智能应用新纪元
一、协议诞生的时代背景:填补 AI 生态最后一块拼图 在人工智能技术飞速发展的今天,AI 代理(Agent)作为能够主动执行复杂任务的智能实体,正从实验室走向生产环境,重塑各个行业的工作流程。然而,…...
网络世界的“百变身份“:动态IP让连接更自由
深夜的程序调试 凌晨两点,我盯着电脑屏幕上的报错信息:"Connection timed out"。这是本周第三次测试服务器响应时被拒绝访问了——只因为之前同一个IP地址尝试登录太过频繁。正在改代码的朋友小王凑过来看了眼:"老兄&…...
【学习笔记】因果推理导论第1课
因果推理导论第1课 为何要做因果推理 一、辛普森悖论一个例子 二、相关不代表因果性三、什么揭示因果四、观测研究五、结论 本节课通过 一、辛普森悖论 一个例子 书中举了一个疫情两种治疗方法A,B,分析哪一个治疗方法更好的例子. 首先已知B治疗方法更稀缺,因此观测数据样本上…...
Android 中 权限分类及申请方式
在 Android 中,权限被分为几个不同的类别,每个类别有不同的申请和管理方式。 一、 普通权限(Normal Permissions) 普通权限通常不会对用户隐私或设备安全造成太大风险。这些权限在应用安装时自动授予,无需用户在运行时手动授权。 android.permission.INTERNETandroid.pe…...
深度学习算法介绍
深度学习算法是一种基于人工神经网络结构的机器学习方法,其核心理念是通过多层次的神经元组成的神经网络来模拟人类大脑的工作原理。以下是几种常见的深度学习算法及其简要介绍: 多层感知器(Multilayer Perceptron, MLP)ÿ…...
Java【13_1】final、初始化块、继承(测试题)
测试题 1、简述final修饰符的功能 ① 修饰类 该类不能被继承 ② 修饰变量 该变量就是常量(一旦被初始化,就不可以修改) ③ 修饰方法 该方法不能被重写 2、写出程序结果 (仔细认真) public class MyClass { static int x,y; static{ …...
小结:JavaScript 模块化工具链
JavaScript 模块化工具链 是现代前端开发中用于组织、管理和优化模块化代码的核心工具集合。以下是关于 JS 模块化工具链的概述,包括关键工具、作用和常见工作流程:** **1. **模块化的背景 JavaScript 模块化是为了解决代码组织、依赖管理和作用域隔离…...
RabbitMQ ④-持久化 || 死信队列 || 延迟队列 || 事务
消息确认机制 简单介绍 RabbitMQ Broker 发送消息给消费者后,消费者处理该消息时可能会发生异常,导致消费失败。 如果 Broker 在发送消息后就直接删了,就会导致消息的丢失。 为了保证消息可靠到达消费者并且成功处理了该消息,…...
十一、Hive JOIN 连接查询
作者:IvanCodes 日期:2025年5月16日 专栏:Hive教程 在数据分析的江湖中,数据往往分散在不同的“门派”(表)之中。要洞察数据间的深层联系,就需要JOIN这把利器,将相关联的数据串联起来…...
启用rvzi可视化自己的机器人发现joint state publisher gui没有滑块
启用rvzi可视化自己的机器人发现joint state publisher gui没有滑块? 解决方法: 一:查看urdf中joint type定义是不是revolute。 二:查看urdf关节限制是不是正确,如果是0到0则不正确。 <joint name"joint_…...
Gitee DevOps:中国企业数字化转型的“本土化加速器“
在数字化浪潮席卷全球的当下,DevOps已经从技术热词转变为企业的核心生产力工具。根据IDC最新报告,到2025年中国DevOps市场规模将达到15亿美元,年复合增长率高达25%。在这一快速增长的市场中,一个显著趋势正在显现:越来…...
RKNN开发环境搭建(ubuntu22.04)
以下情况在RV1106G3的平台上验证正常。 1、conda安装 1)conda --version//确认是否安装 2)创建一个安装目录,进行下一步 3)wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-4.6.14-Linux-x…...
2025年上软考 考试时间+准考证打印全攻略
各位同学好呀!我是你们的老朋友大老李~之前咱们聊过软考报名和机考模拟系统的使用技巧。今天要和大家分享一下,最近好多同学私信的问题:"老李!准考证到底哪天能打印?""考试时间会不会有变动?…...
vllm量化05—FP8 W8A8
本系列基于Qwen2.5-7B,学习如何使用vllm量化,并使用benchmark_serving.py、lm_eval 测试模型性能和评估模型准确度。 测试环境为: OS: centos 7 GPU: nvidia l40 driver: 550.54.15 CUDA: 12.3本文是该系列第5篇——FP8 W8A8 一、量化 fro…...
OpenCV 图像透视变换详解
在计算机视觉领域,图像的视角问题常常会影响后续的分析与处理。例如,从倾斜角度拍摄的文档、带有畸变的场景图像等,都需要通过特定的方法进行矫正。OpenCV 作为计算机视觉领域的重要库,提供了强大的图像透视变换功能,能…...