FreeRTOS学习13——任务相关API函数

任务相关API函数

  • 任务相关API函数
    • 任务相关API函数介绍
    • 任务相关 API 函数详解
      • 函数 uxTaskPriorityGet()
      • 函数 vTaskPrioritySet()
      • 函数 uxTaskGetSystemState()
      • 函数 vTaskGetInfo()
      • 函数 xTaskGetApplicationTaskTag()
      • 函数 xTaskGetCurrentHandle()
      • 函数 xTaskGetHandle()
      • 函数 xTaskGetIdleTaskHandle()
      • 函数 uxTaskGetStackHighWaterMark()
      • 函数 eTaskGetState()
      • 函数 pcTaskGetName()
      • 函数 xTaskGetTickCount()
      • 函数 xTaskGetTickCountFromISR()
      • 函数 xTaskGetSchedulerState()
      • 函数 uxTaskGetNumberOfTasks()
      • 函数 vTaskList()
      • 函数 vTaskGetRunTimeStats()
      • 函数 vTaskSetApplicationTaskTag()
      • 函数 SetThreadLocalStoragePointer()
      • 函数 GetThreadLocalStoragePointer()

任务相关API函数

任务相关API函数介绍

在 FreeRTOS 官方在线文档的网页页面中,通过查看 API 参考,可以看到官方列出的FreeRTOS 任务相关的 API 函数,如下图所示:
在这里插入图片描述

以上部分 FreeRTOS 任务相关的 API 函数描述,如下表所示:

函数描述
uxTaskPriorityGet()获取任务优先级
vTaskPrioritySet()设置任务优先级
uxTaskGetSystemState()获取所有任务的状态信息
vTaskGetInfo()获取单个任务的状态信息
xTaskGetApplicationTaskTag()获取任务 Tag
xTaskGetCurrentTaskHandle()获取当前任务的任务句柄
xTaskGetHandle()获取指定任务的任务句柄
xTaskGetIdleTaskHandle()获取空闲任务的任务句柄
uxTaskGetStackHighWaterMark()获取任务的任务栈历史剩余最小值
eTaskGetState()获取任务状态
pcTaskGetName()获取任务名
xTaskGetTickCount()获取系统时钟节拍计数器的值
xTaskGetTickCountFromISR()中断中获取系统使用节拍计数器的值
xTaskGetSchedulerState()获取任务调度器状态
uxTaskGetNumberOfTasks()获取系统中任务的数量
vTaskList()以“表格”形式获取所有任务的信息
vTaskGetRunTimeStats()获取任务的运行时间等信息
vTaskSetApplicationTaskTag()设置任务 Tag
SetThreadLocalStoragePointer()设置任务的独有数据记录数组指针
GetThreadLocalStoragePointer()获取任务的独有数据记录数组指针

任务相关 API 函数详解

函数 uxTaskPriorityGet()

此函数用于获取指定任务的任务优先级,若使用此函数,需在 FreeRTOSConfig.h 文件中设
置配置项 INCLUDE_uxTaskPriorityGet 为 1,此函数的函数原型如下所示:
UBaseType_t uxTaskPriorityGet(const TaskHandle_t xTask);
函数 uxTaskPriorityGet()的形参描述,如下表所示:

形参描述
xTask待获取优先级的任务

函数 uxTaskPriorityGet()的返回值,如下表所示:

返回值描述
整数指定任务的优先级

函数 vTaskPrioritySet()

此函数用于设置指定任务的优先级,若使用此函数,需在 FreeRTOSConfig.h 文件中设置配置项 INCLUDE_vTaskPrioritySet 为 1,此函数的函数原型如下所示:
void vTaskPrioritySet( TaskHandle_t xTask, UBaseType_t uxNewPriority);
函数 vTaskPrioritySet()的形参描述,如下表所示:

形参描述
xTask待设置优先级的任务
uxNewPriority任务优先级

函数 vTaskPrioritySet()无返回值

函数 uxTaskGetSystemState()

此函数用于获取所有任务的状态信息,若使用此函数,需在 FreeRTOSConfig.h 文件中设置配置项 configUSE_TRACE_FACILITY 为 1,此函数的函数原型如下所示:
UBaseType_t uxTaskGetSystemState( TaskStatus_t * const pxTaskStatusArray, const UBaseType_t uxArraySize, configRUN_TIME_COUNTER_TYPE * const pulTotalRunTime);
函数 uxTaskGetSystemState()的形参描述,如下表所示:

形参描述
pxTaskStstusArray接收信息变量数组的首地址
uxArraySize接收信息变量数组的大小
pilTotalRunTime系统总运行时间

函数 uxTaskGetSystemState()的返回值,如下表所示:

返回值描述
整型获取信息的任务数量

注意:使用该函数会导致调度器长时间处于挂起状态, 因此该函数仅用于调试。

函数 uxTaskGetSystemState()的形参 pxTaskStatusArray 指向变量类型为 TaskStatus_t 的变量的首地址,可以是一个数组,用来存放多个TaskStatus_t类型的变量,函数 uxTaskGetSystemState()使用将任务的状态信息,写入到该数组中,形参 uxArraySize 指示该数组的大小,其中变量类型
TaskStatus_t 的定义如下所示:

typedef struct xTASK_STATUS
{TaskHandle_t xHandle; 							/* 任务句柄 */const char * pcTaskName; 						/* 任务名 */UBaseType_t xTaskNumber; 						/* 任务编号 */eTaskState eCurrentState; 						/* 任务状态 */UBaseType_t uxCurrentPriority; 				/* 任务优先级 */UBaseType_t uxBasePriority; 					/* 任务原始优先级 */configRUN_TIME_COUNTER_TYPE ulRunTimeCounter; 	/* 任务被分配的运行时间 */StackType_t * pxStackBase; 					/* 任务栈的基地址 */configSTACK_DEPTH_TYPE usStackHighWaterMark; 	/* 任务栈历史剩余最小值 */
} TaskStatus_t;

该结构体变量就包含了任务的一些状态信息,获取到的每个任务都有与之对应的TaskStatus_t 结构体来保存该任务的状态信息

函数 vTaskGetInfo()

此函数用于获取指定任务的任务信息,若使用此函数,需在 FreeRTOSConfig.h 文件中设置配置项 configUSE_TRACE_FACILITY 为 1,此函数的函数原型如下所示:
void vTaskGetInfo( TaskHandle_t xTask, TaskStatus_t * pxTaskStatus, BaseType_t xGetFreeStackSpace, eTaskState eState);
函数 vTaskGetInfo()的形参描述,如下表所示:

形参描述
xTask指定获取信息的任务
pxTaskStatus接收任务信息的变量
xGetFreeStackSpace任务栈历史剩余最小值
eState任务状态

函数 vTaskGetInfo()无返回值。

注意:使用该函数会导致调度器长时间处于挂起状态, 因此该函数仅用于调试

函数 vTaskGetInfo()的形参 eState 用来表示任务的状态,其变量类型为 eTaskState,变量类型 eTaskState 的定义如下所示:

typedef enum
{eRunning = 0, 			/* 运行态 */eReady, 				/* 就绪态 */eBlocked, 				/* 阻塞态 */eSuspended, 			/* 挂起态 */eDeleted, 				/* 任务被删除 */eInvalid 				/* 非法值 */
} eTaskState;

形参 eState 用于决定形参 pxTaskStatus 结构体中成员变量 eCurrentState(任务状态) 的值,表示任务的状态,如果传入的 eState 为 eInvalid,那么 eCurrentState 为任务当前的状态,否eCurrentState为 eState。

简单来说就是如果传入的eState 是eInvalid(非法值),eCurrentState 不改变
传入的不是eInvalid 的话就更新eCurrentState 的值为eState。

函数 xTaskGetApplicationTaskTag()

此函数用于获取指定任务的 Tag,若使用此函数,需在 FreeRTOSConfig.h 文件中设置配置项 configUSE_APPLICATION_TASK_TAG 为 1,此函数的函数原型如下所示:
TaskHookFunction_t xTaskGetApplicationTaskTag(TaskHandle_t xTask);
函数 xTaskGetApplicationTaskTag()的形参描述,如下表所示:

形参描述
xTask待获取 Tag 的任务

函数 xTaskGetApplicationTaskTag()的返回值,如下表所示:

返回值描述
函数指针Tag(标签)

返回与任务关联的“标签”值。标签值的含义和用途 由应用程序编写者定义。RTOS 内核本身通常不会 访问标签值
此功能仅适用于高级用户,一般较少用到

函数 xTaskGetCurrentHandle()

此函数用于获取当前系统正在运行的 任务的任务句柄, 若使用此函数,需 在FreeRTOSConfig.h 文件中设置配置项 INCLUDE_xTaskGetCurrentTaskHandle 为 1,此函数的函数原型如下所示:
TaskHandle_t xTaskGetCurrentTaskHandle(void);
函数 xTaskGetCurrentTaskHandle()无形参
函数 xTaskGetCurrentTaskHandle()的返回值,如下表所示

返回值描述
TaskHandle_t任务句柄

函数 xTaskGetHandle()

此函数用于通过任务名获取任务句柄,若使用此函数,需在 FreeRTOSConfig.h 文件中设置配置项 INCLUDE_xTaskGetHandle 为 1,此函数的函数原型如下所示:
TaskHandle_t xTaskGetHandle(const char * pcNameToQuery);
函数 xTaskGetHandle()的形参描述,如下表所示:

形参描述
pcNameToQuery任务名

函数 xTaskGetHandle()的返回值,如下表所示:

返回值描述
TaskHandle_t任务句柄

函数 xTaskGetIdleTaskHandle()

此函数用于获取空闲任务的任务句柄,若使用此函数,需在 FreeRTOSConfig.h 文件中设置配置项 INCLUDE_xTaskGetIdleTaskHandle 为 1,此函数的函数原型如下所示:
TaskHandle_t xTaskGetIdleTaskHandle(void);
函数 xTaskGetIdleTaskHandle()无形参。
函数 xTaskGetIdleTaskHandle()的返回值,如下表所示:

返回值描述
TaskHandle_t空闲任务的任务句柄

返回值:与空闲任务关联的任务句柄。RTOS 调度器启动时,自动创建空闲任务

函数 uxTaskGetStackHighWaterMark()

此函数用于获取指定任务的任务栈的历史剩余最小值, 若 使用此函数 ,需在FreeRTOSConfig.h 文件中设置配置项 INCLUDE_uxTaskGetStackHighWaterMark 为 1,此函数的函数原型如下所示:
UBaseType_t uxTaskGetStackHighWaterMark(TaskHandle_t xTask);
函数 uxTaskGetStackHighWaterMark()的形参描述,如下表所示:

形参描述
xTask待获取任务栈历史剩余最小值的任务

函数 uxTaskGetStackHighWaterMark()的返回值,如下表所示:

返回值描述
整数任务栈的历史剩余最小值

随着任务的执行和中断的处理,任务使用的堆栈会增加和缩小。 uxTaskGetStackHighWaterMark() 返回任务开始执行后任务可用的最小剩余堆栈空间量—— 即任务堆栈达到最大(最深)值时未使用的堆栈量。这就是 所谓的堆栈“高水位线

高水位线:它返回的是任务开始执行后,任务可用的最小剩余堆栈空间量。换句话说,这个函数诉你的是:在任务执行过程中,堆栈使用量达到最大(即堆栈“最深”)时,还有多少堆栈空间是未使用的。这个未使用的堆栈空间量,就被称为堆栈的“高水位线”

如果“高水位线”的值很低,说明任务在执行过程中可能使用了大量的堆栈空间,有堆栈溢出的风险。这时,开发者就需要对任务进行优化,比如减少局部变量的使用、避免深度递归调用等。

函数 eTaskGetState()

此函数用于获取指定任务的状态,若使用此函数,需在 FreeRTOSConfig.h 文件中设置配置
项 INCLUDE_eTaskGetState 为 1,此函数的函数原型如下所示:
eTaskState eTaskGetState(TaskHandle_t xTask);
函数 eTaskGetState()的形参描述,如下表所示:

形参描述
xTask待获取状态的任务

函数 eTaskGetState()的返回值,如下表所示:

返回值描述
eTaskState任务状态

下表列出了 eTaskGetState()针对 xTask 参数引用的任务可能所处的每种状态返回的值。

状态返回值
准备就绪eReady
运行eRunning(调用任务正在查询自己的优先级)
已阻塞eBlocked
已挂起eSuspended
已删除eDeleted(任务 TCB 正在等待清理)

函数 pcTaskGetName()

此函数用于获取指定任务的任务名,此函数的函数原型如下所示:
char * pcTaskGetName(TaskHandle_t xTaskToQuery);
函数 pcTaskGetName()的形参描述,如下表所示:

形参描述
xTaskToQuery任务句柄

所查询任务的句柄。xTaskToQuery 可以设置为 NULL,以查询调用任务的名称

函数 pcTaskGetName()的返回值,如下表所示:

返回值描述
字符串任务名

指向主题任务名称的指针,它是一个标准的以 NULL 结尾的 C 字符串。

函数 xTaskGetTickCount()

此函数用于获取系统时钟节拍计数器的值,此函数的函数原型如下所示:
volatile TickType_t xTaskGetTickCount(void);
函数 xTaskGetTickCount()无形参

函数 xTaskGetTickCount()的返回值,如下表所示

返回值描述
整型系统时钟节拍计数器的值

注意 返回值自调用 vTaskStartScheduler 以来的滴答数

函数 xTaskGetTickCountFromISR()

此函数用于在中断中获取系统时钟节拍计数器的值,此函数的函数原型如下所示:
volatile TickType_t xTaskGetTickCountFromISR(void);
函数 xTaskGetTickCountFromISR()无形参。
函数 xTaskGetTickCountFromISR()的返回值,如下表所示:

返回值描述
整型系统时钟节拍计数器的值

注意 返回值自调用 vTaskStartScheduler 以来的滴答数

函数 xTaskGetSchedulerState()

此函数用于获取任务调度器的运行状态,INCLUDE_xTaskGetSchedulerState 或configUSE_TIMERS
必须在 FreeRTOSConfig.h 中设置为 1,才可使用此函数。此函数的函数原型如下所示:
BaseType_t xTaskGetSchedulerState(void);
函数 xTaskGetSchedulerState()无形参。
函数 xTaskGetSchedulerState()的返回值,如下表所示:

返回值描述
整型任务调度器的运行状态

以下任一常量(在 task.h 中定义):askSCHEDULER_NOT_STARTED、taskSCHEDULER_RUNNING、taskSCHEDULER_SUSPENDED

函数 uxTaskGetNumberOfTasks()

此函数用于获取系统中任务的数量,此函数的函数原型如下所示:
UBaseType_t uxTaskGetNumberOfTasks(void);
函数 uxTaskGetNumberOfTasks()无形参。
函数 uxTaskGetNumberOfTasks()的返回值,如下表所示

返回值描述
整型任务调度器的运行状态

RTOS 内核当前正在管理的任务数。这包括所有准备就绪、阻塞和 挂起的任务。已删除但尚未被空闲任务释放的任务也将包含 在计数中。

函数 vTaskList()

此函数用于以“表格”的形式获取系统中任务的信息,若使用此函数,需在 FreeRTOSConfig.h文 件 中 同 时 设 置 配 置 项 configUSE_TRACE_FACILITY 和配置项
configUSE_STATS_FORMATTING_FUNCTIONS 为 1,此函数的函数原型如下所示:
void vTaskList(char * pcWriteBuffer);
函数 vTaskList()的形参描述,如下表所示:

形参描述
pcWriteBuffer接收任务信息的缓存指针

函数 vTaskList()无返回值。

注意:此函数在执行期间会禁用中断。它不是作为 一种正常的应用程序运行时的工具,而是作为调试辅助工具。

函数 vTaskList()获取到的任务信息示例,如下图所示:
在这里插入图片描述
在 ASCII 表中,以下字母用于表示任务的状态:

  • ‘B’ - 已阻塞
  • ‘R’ - 准备就绪
  • ‘D’ - 已删除(等待清理)
  • ‘S’ - 已挂起或已阻塞,没有超时

vTaskList() 是一个仅为方便起见而提供的实用程序函数,并不属于内核。

函数 vTaskGetRunTimeStats()

此函数用于获取指定任务的运行时间、运行状态等信息,若使用此函数,需在
FreeRTOSConfig.h 文 件 中 同 时 设 置 配 置 项 configGENERATE_RUN_TIME_STATS 、
configUSE_STATS_FORMATTING_FUNCTIONS、configSUPPORT_DYNAMIC_ALLOCATION
为 1,此函数的函数原型如下所示:
void vTaskGetRunTimeStats(char * pcWriteBuffer);
函数 vTaskGetRunTimeState()的形参描述,如下表所示:

形参描述
pcWriteBuffer接收任务运行时间和状态等信息的缓存指针

函数 vTaskGetRunTimeState()无返回值。

vTaskGetRunTimeStats()调用 uxTaskGetSystemState(), 然后将 uxTaskGetSystemState()生成的原始数据转换为 易于阅读的 (ASCII) 表格形式,表格中会显示 每个任务在运行状态下所花费的时间(即每个任务消耗的 CPU 时间量)。数据以 绝对值和百分比值的形式提供。绝对值的分辨率 取决于应用程序提供的运行时间统计时钟的频率

函数 vTaskSetApplicationTaskTag()

此函数用于设置指定任务的 Tag,若使用此函数,需在 FreeRTOSConfig.h 文件中设置配置项 configUSE_APPLICATION_TASK_TAG 为 1,此函数的函数原型如下所示:
void vTaskSetApplicationTaskTag( TaskHandle_t xTask, TaskHookFunction_t pxTagValue);
函数 vTaskSetApplicationTaskTag()的形参描述,如下表所示:

形参描述
xTask待插入 Tag 的任务
pxTagValueTag 指针

任务可以使用 NULL 作为参数值来查询自己的标签值。

函数 vTaskSetApplicationTaskTag()无返回值。

函数 SetThreadLocalStoragePointer()

此函数用于设置指定任务的独有数据数组指针,此函数的函数原型如下所示:
void vTaskSetThreadLocalStoragePointer( TaskHandle_t xTaskToSet, BaseType_t xIndex, void * pvValue)
函数 SetThreadLocalStoragePointer()的形参描述,如下表所示:

形参描述
xTaskToSet待设置的任务
xIndex设置的指针
pvValue

函数 SetThreadLocalStoragePointer()无返回值。

函数 GetThreadLocalStoragePointer()

此函数用于获取指定任务的独有数据数组指针,此函数的函数原型如下所示
void *pvTaskGetThreadLocalStoragePointer( TaskHandle_t xTaskToQuery, BaseType_t xIndex);

函数 GetThreadLocalStoragePointer()的形参描述,如下表所示:

形参描述
xTaskToQuery待获取的任务
xIndex接收的指针

函数 GetThreadLocalStoragePointer()的返回值,如下表所示:

返回值描述
void*指针指向的值

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用kalibr_calibration标定相机(realsense)和imu(h7min)

vslam-evaluation/VINS/Installation documentation/4.IMU和相机联合标定kalibr_calibration.md at master DroidAITech/vslam-evaluation GitHub 目录 1.kalibr安装 1.1安装依赖项 1.2创建工作空间 1.3下载kalibr并编译 1.4设置环境变量 2.准备标定板 3.配置驱动和打…

[Docker#8] 容器配置 | Mysql | Redis | C++ | 资源控制 | 命令对比

目录 一:Mysql 容器化安装 二:Redis 容器化安装 Redis 简介 Redis 容器创建 三:C容器制作 四:容器资源更新 常见问题 一:Mysql 容器化安装 进入 mysql 的镜像网站,查找 mysql 的镜像 mysql docker…

1小时构建Vue3知识体系之vue的生命周期函数

本文转载自:https://fangcaicoding.cn/course/12/63 大家好!我是方才,目前是8人后端研发团队的负责人,拥有6年后端经验&3年团队管理经验。 系统学习践行者!近期在系统化输出前端入门相关技术文章,期望能…

数据结构-集合

一.集合的表示 一个重要的操作是查某个元素属于哪个集合,另一个操作是合并操作 从这个树的节点去找树根也就是从下往上找,要把树并起来只需把两个根并在一起就可以了 不存在已知一个节点去找孩子节点,根重要的是已知一个节点找它的父亲节点,与之前的二…

unity基础,点乘叉乘。

简单记录下点乘叉乘&#xff0c;要不每次用完就忘&#xff0c;忘了又查。 using System.Collections; using System.Collections.Generic; using UnityEngine;public class TestCrossDot : MonoBehaviour {/// <summary>/// 原点/// </summary>public Transform t…

springboot 之 整合springdoc2.6 (swagger 3)

版本 springboot 3.3.5 jdk 17 springdoc 2.6.0 依赖pom <dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webmvc-ui</artifactId><version>2.6.0</version> </dependency>注解对比…

数据结构与算法-前缀和数组

前缀和问题 什么是前缀和? 对于一个一般数组 nums,如果我们需要知道 S1 nums[0] nums[1]的结果&#xff0c; S2 nums[0] nums[1] nums[2] … 计算公式相当于: S2 S1 nums[2] … Sn Sn-1 nums[n]; 所谓前缀和&#xff1a;用来记录数组前项和的一个新数组&#xff0c;提…

R语言机器学习与临床预测模型77--机器学习预测常用R语言包

R小盐准备介绍R语言机器学习与预测模型的学习笔记 你想要的R语言学习资料都在这里&#xff0c; 快来收藏关注【科研私家菜】 01 预测模型常用R包 常见回归分析包: rpart 包含有分类回归树的方法; earth 包可以实现多元自适应样条回归; mgev包含广义加性模型回归; Rweka 包中的M…

Elasticsearch可视化工具Elasticvue插件用法

目录 1.打开浏览器扩展程序(示例Edge浏览器) ​2.搜索elasticvue并安装 3.打开elasticvue ​4.连接Es 5.有些浏览器无法下载安装扩展&#xff0c;例如谷歌。可以打包扩展给别的浏览器使用。 5.1打开浏览器扩展&#xff0c;打开开发人员模式&#xff0c;记住扩展程序id 5…

大数据技术之HBase中的HRegion

如果你正在学习大数据&#xff0c;你应该知道HBase是一个列式存储的NoSQL分布式数据库&#xff0c;可以配合Hadoop来使用。今天自己简单做了几页PPT&#xff0c;解释了一下HBase当中HRegion的基本概念&#xff0c;很多初学者在学习的时候对HRegion这个概念一直懵懵懂懂&#xf…

Spring Cloud Contract快速入门Demo

1.什么是Spring Cloud Contract &#xff1f; Spring Cloud Contract 是 Spring 提供的一套工具&#xff0c;用于帮助开发者通过契约&#xff08;Contract&#xff09;驱动的方式进行微服务的测试和集成。它主要解决微服务之间通信时&#xff0c;如何确保服务提供者和消费者之…

GISBox VS ArcGIS:分别适用于大型和小型项目的两款GIS软件

在现代地理信息系统&#xff08;GIS&#xff09;领域&#xff0c;有许多大家耳熟能详的GIS软件。它们各自具有独特的优势&#xff0c;适用于不同的行业需求和使用场景。在众多企业和开发者面前&#xff0c;如何选择合适的 GIS 软件成为了一个值得深入思考的问题。今天&#xff…

Linux 进程线程间通信总结

线程 线程共享存储空间主要带来的问题是数据同步和互斥。由于线程在同一进程中运行&#xff0c;它们共享相同的内存空间&#xff0c;任何线程都可以访问共享数据。这样&#xff0c;多个线程并发执行时&#xff0c;可能会导致以下两种主要问题&#xff1a; 互斥问题&#xff0…

【再谈设计模式】抽象工厂模式~对象创建的统筹者

一、引言 在软件开发的世界里&#xff0c;高效、灵活且易于维护的代码结构是每个开发者追求的目标。设计模式就像是建筑蓝图中的经典方案&#xff0c;为我们提供了应对各种常见问题的有效策略。其中&#xff0c;抽象工厂模式在对象创建方面扮演着重要的角色&#xff0c;它如同一…

Web安全之SQL注入---基础

文章目录 SQL注入简介SQL注入基础SQL注入分类SQL注入流程 SQL注入简介 什么是SQL注入&#xff1f; SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严&#xff0c;攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句&#xff0c;在管理…

机器学习——贝叶斯

&#x1f33a;历史文章列表&#x1f33a; 机器学习——损失函数、代价函数、KL散度机器学习——特征工程、正则化、强化学习机器学习——常见算法汇总机器学习——感知机、MLP、SVM机器学习——KNN机器学习——贝叶斯机器学习——决策树机器学习——随机森林、Bagging、Boostin…

gdb编译教程(支持linux下X86和ARM架构)

1、下载源码 http://ftp.gnu.org/gnu/gdb/ 我下载的8.2版本。 2、下载完后拷贝到linux的x86系统。 3、解压&#xff0c;然后进入到目录下&#xff0c;打开当前目录的命令行窗口。 4、创建一个生成目录。 5、我们先开始x86版本&#xff0c;这个比较简单&#xff0c;不需要配置…

10款翻译工具实践体验感受与解析!!!!!

在现今的数字化时代&#xff0c;翻译工具如同语言的桥梁&#xff0c;为我们打开了通向世界的大门。今天咱们不聊别的&#xff0c;就聊聊那些让我又爱不释手的翻译工具们。因为我的职业因素&#xff0c;作为一个经常需要跟各种语言打交道的“文字搬运工”&#xff0c;这些工具可…

【日志】392.判断子序列

2024.11.8 【力扣刷题】 392. 判断子序列 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/is-subsequence/?envTypestudy-plan-v2&envIdtop-interview-150 整个题从一开始就是打算从双指针的思想往下走的。但是&#xff0c;我设置了四个变量sLeft…

C++20 中最优雅的那个小特性 - Ranges

C20 中最优雅的那个小特性 - Ranges 大家好&#xff0c;今天我们来聊聊 C20 的一项非常重要的新特性——Ranges&#xff0c;可以让你的代码更优雅、更高效、更炫酷&#xff0c;如果你是一个对代码有所追求的小伙伴&#xff0c;那么这个特性你绝对值得拥有&#xff01; 啥是 …