[嵌入式系统-27]:RT-Thread -14- 操作系统配置:rtconfig.h文件与menuconfig命令
目录
一、rtconfig.h
1.1 概述
1.2 软硬件资源配置
1.3 功能模块选择
1.4 内核配置详解
1.5 调度器配置
1.6 硬件设备驱动配置
1.7 网络配置
1.8 调试配置
2.1 概述
2.2 主要功能
三、RT Thread配置 VS Linux配置
一、rtconfig.h
1.1 概述
rtconfig.h
是 RT-Thread 实时操作系统中的核心配置文件。它定义了系统的各种参数和功能选项,通过对这些选项的配置,可以定制化地构建适合特定应用需求的 RT-Thread 系统。
在 rtconfig.h
文件中,可以设置各种宏定义和选项来配置 RT-Thread 系统的行为和特性。这些选项涉及内存管理、调度器、设备驱动、文件系统、网络、调试等方面的配置。用户可以根据具体需求来决定启用或禁用某些功能,调整系统的优先级和参数设置。
通过修改 rtconfig.h
文件,可以实现以下功能:
-
软硬件资源配置:设置内存大小、线程数量、设备驱动数量等,根据应用需求分配系统资源。
-
功能模块选择:根据项目需要启用或禁用特定模块和功能,如文件系统、网络协议栈、图形库等。
-
调度器配置:调整调度器算法和参数,如时间片长度、线程优先级管理方式等。
-
硬件设备驱动配置:选择和配置系统中使用的设备驱动,如串口、网卡、传感器等外设。
-
网络配置:配置网络协议栈和相关参数,启用或禁用网络功能,包括以太网、Wi-Fi 等。
-
调试配置:设置系统的调试模式、控制台输出和调试功能的开关。
修改 rtconfig.h
文件需要谨慎操作,确保配置的正确性和一致性,以避免出现不可预期的问题。在修改配置之前,建议仔细阅读 RT-Thread 官方文档和 rtconfig.h
文件中的注释和说明,了解每个配置选项的作用和限制。
总之,rtconfig.h
是 RT-Thread 系统中非常重要的配置文件,通过对其进行合理的设置,可以定制出高度适应特定需求的实时操作系统。
1.2 软硬件资源配置
在 RT-Thread 实时操作系统的 rtconfig.h
文件中,可以进行软硬件资源的配置。下面是一些常见的软硬件资源配置选项的说明:
-
堆内存管理配置:
RT_USING_HEAP
:该宏定义是否启用堆内存管理器,用于动态分配内存。如果启用,可以使用malloc
和free
函数进行内存的动态分配和释放。RT_HEAP_SIZE
:定义堆内存的总大小。通过修改该选项,可以调整堆内存的分配空间。
-
线程栈内存配置:
RT_THREAD_STACK_SIZE
:定义线程的默认栈大小。可以根据实际应用需求和线程的运行情况调整栈的大小,避免栈溢出的问题。
-
定时器配置:
RT_USING_TIMER_SOFT
:该宏定义是否启用软件定时器,即基于时钟节拍的定时器功能。启用时,可以使用rt_timer_xxx
函数创建和管理定时器。
-
设备驱动配置:
RT_USING_DEVICE
:该宏定义是否启用设备框架,用于管理系统设备驱动。如果启用,则可以使用rt_device_xxx
函数操作设备。RT_CONSOLE_DEVICE_NAME
:定义控制台设备的名称,可以作为标准输入和输出设备进行使用。
-
文件系统配置:
RT_USING_DFS
:该宏定义是否启用文件系统功能。如果启用,则可以在 RT-Thread 上使用文件系统进行文件的读写操作。RT_USING_DFS_FAT
:该宏定义是否启用 FAT 文件系统。RT_USING_DFS_ELMFAT
:该宏定义是否启用 ElmFat 文件系统。RT_USING_DFS_YAFFS2
:该宏定义是否启用 YAFFS2 文件系统。
-
网络协议栈配置:
RT_USING_LWIP
:该宏定义是否使用 LWIP TCP/IP 协议栈。如果启用,可以使用网络相关的 API 进行 TCP/IP 通信。RT_USING_WIFI
:该宏定义是否支持 WiFi 功能。RT_USING_ETHERNET
:该宏定义是否启用以太网功能。
请注意,在配置这些软硬件资源时,应根据实际需求和硬件平台的特性进行调整。确保分配的资源足够满足应用的需求,避免资源浪费和系统性能下降。
1.3 功能模块选择
在 RT-Thread 实时操作系统中,通过在 rtconfig.h
文件中选择功能模块,可以控制系统中需要包含的功能模块。以下是一些常见的功能模块选择选项及其说明:
-
RT_USING_COMPONENTS_END:
RT_USING_COMPONENTS_END
定义了系统所使用的组件的起始索引号。该值标记了功能模块的选择区域的起点,可以在此之前进行一些系统的基本配置,如内存管理、线程管理等。
-
RT_USING_FINSH:
RT_USING_FINSH
定义是否启用 finsh 终端命令行组件。finsh 终端是一个用于进行系统调试和控制的命令行接口,可以方便地进行系统命令的输入和输出。
-
RT_USING_COMPONENTS_DEVICE:
RT_USING_COMPONENTS_DEVICE
定义是否启用设备框架组件。设备框架组件用于管理系统中的各种设备驱动,包括串口、SPI、I2C 等设备的操作。
-
RT_USING_COMPONENTS_IPC:
RT_USING_COMPONENTS_IPC
定义是否启用进程间通信(IPC)组件。IPC 组件允许不同线程或进程之间进行通信和数据共享,在多任务系统中非常有用。
-
RT_USING_SMP:
RT_USING_SMP
定义是否启用对称多处理器支持。启用此选项可以实现多核处理器上的多核调度和通信机制,提高系统的并行处理能力。
-
RT_USING_MODULE:
RT_USING_MODULE
定义是否启用动态模块加载功能。通过动态模块加载,可以在系统运行时动态加载和卸载模块,实现系统功能的灵活扩展和管理。
通过在 rtconfig.h
文件中选择合适的功能模块,可以根据具体应用需求和系统资源限制进行灵活的功能配置,定制适合特定应用场景的 RT-Thread 操作系统。
1.4 内核配置详解
在 rtconfig.h
中,有一些内核配置选项,用于配置 RT-Thread 实时操作系统的内核行为和特性。下面详细解释几个常见的内核配置选项:
-
RT_NAME_MAX:
RT_NAME_MAX
定义了对象名称的最大长度,例如线程、定时器、信号量等。通过修改该选项,可以调整对象名称的最大长度。请注意,该值应合理设置,避免资源浪费和系统效率降低。 -
RT_THREAD_PRIORITY_MAX:
RT_THREAD_PRIORITY_MAX
定义了系统支持的最大线程优先级数。通过修改此选项,可以增加或减少系统中可用的线程优先级数目。这是一个重要的配置选项,影响调度器的调度策略和线程优先级的管理方式。 -
RT_TICK_PER_SECOND:
RT_TICK_PER_SECOND
定义了系统时钟的节拍频率,以 Hz 为单位。节拍是 RT-Thread 系统的基本时间单位,影响时间片的长度和定时器的计时准确性。通过调整该值,可以适应不同的应用场景和硬件平台。 -
RT_ALIGN_SIZE:
RT_ALIGN_SIZE
定义了内存对齐的字节大小。内存对齐是为了提高内存访问的效率,在某些平台上要求访问的变量和数据地址为特定的对齐方式。通过修改此选项,可以适应不同的硬件平台和编译器对内存对齐的要求。
这些内核配置选项可以通过修改 rtconfig.h
文件中的对应宏定义来进行调整,以满足特定的应用需求和硬件平台的限制。但在修改这些选项之前,建议仔细阅读官方文档和 rtconfig.h
文件中的注释,了解每个配置选项的作用和限制,并确保修改的配置在整个系统中的一致性。
除了上述选项,rtconfig.h
文件中还包含其他一些内核配置选项,如线程栈大小、中断优先级设置等。这些选项可以根据具体的应用需求进行调整和配置,以构建一个适合特定应用场景的 RT-Thread 系统。
1.5 调度器配置
在 RT-Thread 实时操作系统中,可以通过 rtconfig.h
文件进行调度器配置,以调整调度器的行为和特性。以下是一些与调度器相关的配置选项及其说明:
-
调度器类型:
-
RT_THREAD_PRIORITY_MAX
:定义系统支持的最大线程优先级,通常范围从 0 到该值。较大的值表示支持更多的线程优先级,可以更精细地控制任务的调度。 -
RT_THREAD_PRIORITY_MIN
:定义系统支持的最小线程优先级,通常为 1。较小的值表示更高的优先级,可确保特定任务获得更高的执行权。 -
RT_TICK_PER_SECOND
:定义系统的时钟节拍频率,即每秒中发生的时钟中断次数。通过调整这个值,可以改变系统的时钟精度,从而影响任务的调度。
-
-
调度器配置:
-
RT_THREAD_PRIORITY_MAX
:定义系统支持的最大线程优先级。根据应用需求和系统资源,可以设置适当的最大优先级。 -
RT_THREAD_MAX_PRIORITY
:定义系统默认情况下创建线程的最大优先级。确保此值不超过RT_THREAD_PRIORITY_MAX
。 -
RT_FLAG_PRIO_MASK
:定义优先级掩码,用于屏蔽线程优先级。确保线程优先级在有效范围内。 -
RT_SCHEDULER_LOCK_LEVEL
:定义调度器的锁定级别。在临界区内部,锁定级别高于或等于此值的调度器调度会被暂时禁止,以避免优先级反转问题。
-
-
调度器调度算法:
RT_THREAD_SCHEDULER
:定义系统使用的调度算法。可以选择支持的调度算法,如抢占式调度、时间片轮转调度等。
通过在 rtconfig.h
文件中配置与调度器相关的宏定义,可以对 RT-Thread 系统的任务调度器行为进行自定义和调整,以满足不同应用场景的需求。
1.6 硬件设备驱动配置
在 RT-Thread 实时操作系统中,硬件设备的驱动配置主要集中在 rtconfig.h
文件中。通过配置相应的宏定义,可以启用或禁用不同的硬件设备驱动,并进行相关的配置。
以下是一些常见的硬件设备驱动配置选项及其说明:
-
串口驱动配置:
-
RT_USING_SERIAL
:定义是否启用串口驱动。启用后,可以通过串口进行数据的收发和通信。 -
RT_SERIAL_RB_BUFSZ
:定义串口驱动的接收缓冲区大小,即可以存储待接收数据的长度。
-
-
SPI 设备驱动配置:
-
RT_USING_SPI
:定义是否启用 SPI 设备驱动。启用后,可以通过 SPI 总线进行数据的高速传输。 -
RT_SPI_FLASH_DEVICE_NAME
:定义 SPI Flash 设备的名称。可以根据具体使用的 SPI Flash 设备进行配置和匹配。
-
-
I2C 设备驱动配置:
-
RT_USING_I2C
:定义是否启用 I2C 设备驱动。启用后,可以通过 I2C 总线进行数据的传输和通信。 -
RT_I2C_BUS_NAME
:定义 I2C 总线的名称。可以根据实际连接的 I2C 总线进行配置。
-
-
RTC(实时时钟)驱动配置:
-
RT_USING_RTC
:定义是否启用 RTC 驱动。启用后,可以使用实时时钟设备。 -
RT_RTC_DEVICE_NAME
:定义 RTC 设备的名称。可以根据实际使用的 RTC 设备进行配置。
-
-
相应设备的引脚和参数配置:
- 根据具体的硬件设备,可能还需要配置相应的引脚和参数,如UART 的引脚配置、SPI 的片选引脚配置、I2C 的引脚配置等。
通过在 rtconfig.h
文件中配置相应的宏定义,可以启用或禁用硬件设备驱动,并进行相关的硬件参数配置,以满足具体硬件设备的需求。
这里提供的是一些常见的硬件设备驱动配置选项,具体的配置选项可能因不同的硬件平台和驱动库而有所不同。请查阅相应的文档和驱动库来获取详细的配置信息和示例。
1.7 网络配置
在 RT-Thread 实时操作系统中,网络配置是连接外部网络的关键部分。通过配置网络相关的宏定义,可以启用不同类型的网络协议栈和网络设备驱动,使设备能够进行网络通信。以下是一些常见的网络配置选项及其说明:
-
网络协议栈配置:
-
RT_USING_LWIP
:定义是否启用 Lightweight IP (LwIP) 协议栈。LwIP 是一个轻量级的 TCP/IP 协议栈,用于设备的网络通信。 -
RT_USING_DNS
:定义是否启用 DNS(Domain Name System)功能,用于解析域名到 IP 地址。
-
-
网络设备驱动配置:
-
RT_USING_NETDEV
:定义是否启用网络设备驱动。启用后,可以支持网络设备的初始化和操作。 -
RT_NET_MAX_DHCP_RETRY
:定义 DHCP 自动获取 IP 地址的最大尝试次数。 -
RT_NET_MAX_ARP_TRY
:定义 ARP 地址解析协议的最大尝试次数。
-
-
网络接口配置:
-
RT_USING_PING
:定义是否启用 Ping 功能,用于网络连通性测试。 -
RT_NETIF_HWADDR
:定义网络设备的硬件 MAC 地址。 -
RT_NETIF_IPADDR
:定义网络设备的 IP 地址。 -
RT_NETIF_GW
:定义网络设备的网关地址。 -
RT_NETIF_MSK
:定义网络设备的子网掩码。
-
-
Socket 配置:
-
RT_USING_SOCKETS
:定义是否启用 Socket 网络套接字接口。通过 Socket 接口可以进行网络通信,包括 TCP 和 UDP。 -
RT_USING_UDP
:定义是否启用 UDP 协议,用于无连接的数据传输。 -
RT_USING_TCP
:定义是否启用 TCP 协议,用于可靠的连接传输。
-
这些网络配置选项可以在 rtconfig.h
文件中进行设置,以便根据实际需求启用或禁用不同的网络功能,配置网络设备和接口参数,以实现设备与外部网络的通信。
请注意,具体的网络配置选项和参数可能会因不同的网络协议栈和驱动库而有所不同。建议查阅相应的文档和示例代码以获取详细的配置信息。
1.8 调试配置
在 RT-Thread 实时操作系统中,调试配置对于开发和调试应用程序非常重要。通过配置调试相关的选项,可以获取详细的系统状态和信息,帮助排查和解决问题。
以下是一些常见的调试配置选项及其说明:
-
内核调试配置:
-
RT_DEBUG
:定义是否启用内核调试功能。启用后,会输出一些额外的调试信息,如中断、线程、堆栈等信息。 -
RT_USING_OVERFLOW_CHECK
:定义是否启用堆栈溢出检查功能。启用后,可以检测出线程堆栈是否溢出。 -
RT_USING_MEMTRACE
:定义是否启用内存跟踪功能。启用后,可以跟踪内存的申请和释放情况。
-
-
打印输出配置:
-
RT_USING_FINSH
:定义是否启用 FinSH 命令行终端。启用后,可以通过串口或网络终端进行命令行交互和调试。 -
RT_USING_LOGTRACE
:定义是否启用系统日志跟踪功能。启用后,系统会输出一些运行时的日志信息。 -
RT_USING_ASSERT
:定义是否启用断言功能。启用后,可以在运行时进行条件判断,如果条件不满足,则触发断言失败。
-
-
调试输出配置:
-
RT_DEBUG_INIT
:定义是否在启动时打印初始化信息。启用后,会输出系统的初始化过程。 -
RT_DEBUG_THREAD
:定义是否打印线程创建、切换和删除的调试信息。 -
RT_DEBUG_TIMER
:定义是否打印定时器的调试信息。 -
RT_DEBUG_IRQ
:定义是否打印中断的调试信息。 -
RT_DEBUG_MEMHEAP
:定义是否打印内存堆的调试信息。
-
这些调试配置选项可以在 rtconfig.h
文件中进行设置,以便根据实际需求启用或禁用不同的调试功能,输出相应的调试信息,并帮助开发者进行调试和排查问题。
请注意,启用过多的调试功能可能会增加系统资源的占用和输出信息的量,请根据具体需求进行配置。
二、menuconfig
2.1 概述
RT-Thread 提供了 menuconfig
命令来进行配置管理,它是一种基于命令行的配置界面,可以通过交互式方式配置 RT-Thread 操作系统的各个组件和功能选项。
使用 menuconfig
命令进行配置,需要完成以下步骤:
-
进入 RT-Thread 的源码目录。
-
执行
scons --menuconfig
命令,打开配置界面。 -
在菜单界面中,可以使用方向键和回车键进行导航和选择。
- 使用上下方向键移动光标选中菜单项。
- 使用左右方向键移动到子菜单或返回上一级菜单。
- 使用回车键进入子菜单或选择选项。
-
在菜单界面中,可以进行各种配置选项的选择和设置。
- 选择
[*]
表示启用该选项,选择[ ]
表示禁用该选项。 - 使用数字键选择标志位选项,如
1
表示选择该标志位,0
表示不选择该标志位。 - 使用字符串输入框进行文本输入。
- 选择
-
配置完成后,通过回车键确认并保存配置,退出配置界面。
-
在退出配置界面后,根据需要重新编译和部署 RT-Thread。
请注意,使用 menuconfig
配置界面可以更方便地进行配置操作,而不需要手动编辑配置文件。配置选项的具体内容和功能会因 RT-Thread 的版本、组件和功能模块而有所不同。
2.2 主要功能
RT-Thread 的 menuconfig
是一个集成式的配置工具,用于管理和配置 RT-Thread 操作系统的各种功能和组件。通过 menuconfig
,用户可以方便地进行各种配置选项的设置,以定制适合自己项目需求的 RT-Thread 操作系统。
以下是 menuconfig
的功能概述:
-
交互式配置:
menuconfig
提供了一个交互式的配置界面,用户可以通过键盘操作来选择和设置各种配置选项,而无需手动编辑配置文件。 -
配置结构化:配置选项以树状结构的方式组织,清晰地展示了 RT-Thread 操作系统的各个功能模块和组件,方便用户进行导航和选择。
-
配置选项:用户可以在
menuconfig
中设置各种选项,如内核功能使能、驱动支持、组件集成等,以满足项目需求。 -
功能模块管理:
menuconfig
允许用户选择性地启用或禁用特定功能模块,以精简系统体积和提高系统性能。 -
设备驱动配置:可以在
menuconfig
中配置和管理各种设备驱动,包括串口、网络、文件系统等,以便于项目的移植和扩展。 -
自定义配置:用户可以按需修改配置选项的值和设置,以满足特定项目的需求和约束。
-
实时预览:在配置选项的设置过程中,
menuconfig
可以实时反映配置的变化和影响,帮助用户更好地理解配置选项的含义和作用。 -
保存和导出配置:用户可以在
menuconfig
中保存当前的配置设置,并生成相应的配置文件,以便后续使用和版本管理。
总的来说,RT-Thread 的 menuconfig
是一个功能强大且易用的配置工具,能够帮助用户灵活地配置和定制 RT-Thread 操作系统,以适应不同项目的需求和要求。
希望这个概述能帮助您更好地理解 menuconfig
的功能和用途。
三、RT Thread配置 VS Linux配置
RT-Thread 和 Linux 是两种不同的操作系统内核,它们在配置方式上有一些区别。
以下是 RT-Thread 配置和 Linux 配置之间的一些主要比较:
-
配置工具:
- RT-Thread:RT-Thread 使用
menuconfig
这样的命令行配置工具,提供了一个交互式的配置界面,用户可以通过键盘操作来选择和设置配置选项。 - Linux:Linux 使用
menuconfig
、nconfig
、xconfig
、qconfig
等多种配置工具,其中menuconfig
和nconfig
是基于命令行的配置工具,而xconfig
和qconfig
是基于图形界面的配置工具。
- RT-Thread:RT-Thread 使用
-
配置结构:
- RT-Thread:RT-Thread 的配置选项以树状结构组织,清晰地展示了各个功能模块和组件,方便用户进行导航和选择。
- Linux:Linux 的配置选项也以树状结构组织,但在一些配置工具中,展示方式可能会略有不同,比如
xconfig
提供了更直观的可视化界面。
-
功能模块管理:
- RT-Thread:RT-Thread 允许用户选择性地启用或禁用特定功能模块,以精简系统体积和提高系统性能。
- Linux:Linux 同样支持用户选择性地配置和编译功能模块,以满足特定需求,但通常拥有更多的功能和扩展性。
-
设备驱动配置:
- RT-Thread:RT-Thread 提供了方便的设备驱动配置功能,用户可以在
menuconfig
中配置和管理各种设备驱动。 - Linux:Linux 作为功能强大的操作系统,设备驱动配置也是其核心功能之一,用户可以通过配置工具选择性地加载和编译各种设备驱动。
- RT-Thread:RT-Thread 提供了方便的设备驱动配置功能,用户可以在
-
自定义配置:
- RT-Thread:用户可以在
menuconfig
中按需修改配置选项的值和设置,以满足特定项目的需求和约束。 - Linux:用户同样可以通过各种配置工具自定义配置选项,并根据需要调整配置值,以适应不同的应用场景。
- RT-Thread:用户可以在
总的来说,虽然 RT-Thread 和 Linux 在配置方面有些许差异,但它们都提供了强大的配置工具和灵活的配置选项,让用户可以根据需要定制适合自己项目的操作系统。
相关文章:

[嵌入式系统-27]:RT-Thread -14- 操作系统配置:rtconfig.h文件与menuconfig命令
目录 一、rtconfig.h 1.1 概述 1.2 软硬件资源配置 1.3 功能模块选择 1.4 内核配置详解 1.5 调度器配置 1.6 硬件设备驱动配置 1.7 网络配置 1.8 调试配置 二、menuconfig 2.1 概述 2.2 主要功能 三、RT Thread配置 VS Linux配置 一、rtconfig.h 1.1 概述 rtco…...

C++面向对象程序设计-北京大学-郭炜【课程笔记(一)】
C面向对象程序设计-北京大学-郭炜【课程笔记(一)】 1、引用的概念1.1、引用应用的简单示例1.2、常引用 2、"const"关键字的用法(常量指针/指针常量)3、动态内存分配4、内联函数5、函数重载5.1、什么是函数重载5.2、函数…...

C语言:国家名称按字母表排序
题目描述 输入一个整数n(n<20),表示待输入国家的数量。随后输入n个国家或地区的名称 (名称长度为1~30),要求按字母顺序升序输出。 注意:名称中可能包含空格符。 提示 字符串比较请使用函数: int strcmp(const char* str1&a…...

2/18作业
1. #!/bin/bash function fun() { uidgrep ^ubuntu /etc/passwd | cut -d : -f 3 gidgrep ^ubuntu /etc/passwd | cut -d : -f 4 echo "uid为$uid,gid为$gid" } resultfun echo $result...

书生浦语笔记与作业汇总
第一节笔记 第二节笔记与作业 第三节笔记 第三节作业 第四节笔记 第四节作业 第五节笔记 第五节作业 第六节笔记 第六节作业...

嵌入式培训机构四个月实训课程笔记(完整版)-Linux ARM驱动编程第五天-ARM Linux编程之自动创建节点 (物联技术666)
链接:https://pan.baidu.com/s/1V0E9IHSoLbpiWJsncmFgdA?pwd1688 提取码:1688 驱动程序编写好后,还需要创建设备节点,有两种方式,一是通过mknod命令去手动创建,例如:mknod /dev/hello c 250 0&…...

基于51/STM32单片机的智能药盒 物联网定时吃药 药品分类
功能介绍 以51/STM32单片机作为主控系统; LCD1602液晶显示当前时间、温湿度、药品重量 3次吃药时间、药品类目和药品数量 HX711压力采集当前药品重量 红外感应当前药盒是否打开 DS1302时钟芯片显示当前年月日、时分秒、星期 DHT11采集当前环境温度和湿度 …...

【学网攻】 第(27)节 -- HSRP(热备份路由器协议)
系列文章目录 目录 系列文章目录 文章目录 前言 一、HSRP(热备份路由器协议)是什么? 二、实验 1.引入 实验目标 实验背景 技术原理 实验步骤 实验设备 实验拓扑图 实验配置 实验验证 文章目录 【学网攻】 第(1)节 -- 认识网络【学网攻】 第(2)节 -- 交…...

【实战】二、Jest难点进阶(三) —— 前端要学的测试课 从Jest入门到TDD BDD双实战(七)
文章目录 一、Jest 前端自动化测试框架基础入门二、Jest难点进阶3.mock timers 学习内容来源:Jest入门到TDD/BDD双实战_前端要学的测试课 相对原教程,我在学习开始时(2023.08)采用的是当前最新版本: 项版本babel/core…...

Python编程中的异常处理
什么是异常? 程序错误(errors)有时也被称为程序异常(exceptions),这是每个编程人员都会经常遇到的问题。在过去,当遇到这类情况时,程序会终止执行并显示错误信息,通常是…...

mysql3.7之触发器
1.触发器的定义 触发器是由事件来触发某个操作,这些事件包括INSERT、UPDATE、DELETE事件。所谓事件就是指用户的动作或者触发某项行为。如果定义了触发程序,当数据库执行这些语句时候,就相当于事件发生了,就会自动激发触发器执行…...

12.QT文件对话框 文件的弹窗选择-QFileDialog
目录 前言: 技能: 内容: 1. 界面 2.信号槽 3.其他函数 参考: 前言: 通过按钮实现文件弹窗选择以及关联的操作 效果图就和平时用电脑弹出的选文件对话框一样 技能: QString filename QFileDialog::ge…...

ArcGIS学习(八)基于GIS平台的控规编制办法
ArcGIS学习(八)基于GIS平台的控规编制办法 上一任务我们学习了”如何进行图片数据的矢量化?" 这一关我们来学习一个比较简单的案例一一”如何在ArcGIS中录入控规指标,绘制控规图纸?" 首先,先来看看这个案例的分析思路以及导入CAD格式的控规图纸。 接着,来看…...

软件测试-自动化测试-面试题研究,知识要点,高频、重点知识点,自动化测试知识要点、知识梳理-PYTHON+自动化,评估试题
自动化项目实战能力评估 介绍一下你的自动化测试框架? 我的框架主要根据分层思想设计了几个独立模块: 模块一:主要存放通用业务代码,比如接口访问,数据库操作,excel 操作,等等 模块二…...

一.重新回炉Spring Framework: 理解Spring IoC
1. 写在前面的话 说实话,从事java开发工作时间也不短了,对于Spring Framework,也是天天用,这期间也碰到了很多问题,也解决了很多问题。可是,总感觉对Spring Framework还是一知半解,不能有个更加…...

目标检测算法之YOLOv5的应用实例(零售业库存管理、无人机航拍分析、工业自动化领域应用的详解)
1.YOLOv5在"零售业库存管理"领域的应用 在零售业库存管理中,YOLOv5可以帮助自动化商品识别和库存盘点过程。通过使用深度学习模型来实时识别货架上的商品,零售商可以更高效地管理库存,减少人工盘点的时间和成本。以下是一个使用YOLOv5进行商品识别的Python脚本示…...

[蓝桥 2017]九宫幻方
九宫幻方 题目描述 小明最近在教邻居家的小朋友小学奥数,而最近正好讲述到了三阶幻方这个部分,三阶幻方指的是将 1~9 不重复的填入一个 3*3 的矩阵当中,使得每一行、每一列和每一条对角线的和都是相同的。 三阶幻方又被称作九宫格…...

Qt - 编译报错:“invalid use of incomplete type ‘class Ui::xxx‘ui(new Ui::xxx)”的解决方法
问题起因 今天在创建Qt设计器界面类时,类名的英文拼写错误,然后就重命名了文件,而Qt Creator也帮我自动修改了一部分内容,之后我手动将cpp文件中的#include " *** "里的内容给修改了,构造函数和析构函数处也…...

基于Doris构建亿级数据实时数据分析系统
背景 随着公司业务快速发展,对业务数据进行增长分析的需求越来越迫切,与此同时我们的业务数据量也在快速激增、每天的数据新增量大概在30w 左右,一年就会产生1 个亿的数据,显然基于传统MySQL数据库已经无法支撑满足以上需求 基于上…...

javascript中的prototype;javascript中的原型链
文章目录 深入理解JavaScript原型链1. 什么是原型链?2. 原型链的结构3. 如何访问原型链?4. 示例演示原型链5. 原型链与继承6. 实际应用场景 深入理解JavaScript原型链 1. 什么是原型链? 在JavaScript中,每个对象都有一个原型&am…...

CI/CD部署
什么是CI,什么是CD CI和CD是软件开发中持续集成和持续交付的缩写。 CI代表持续集成(Continuous Integration),是一种实践,旨在通过自动化构建、测试和代码静态分析等过程,频繁地将代码变更合并到共享存储…...

定点数,定点数二维向量,定点数三维向量,定点数数学类
定点数,定点数二维向量,定点数三维向量,定点数数学类 介绍浮点数定点数封装的定点数FixedNumber定点数二维向量定点数三维向量定点数数学类总结 介绍 众所周知定点数是用于做帧同步时保持不同cpu不同设备保持一致稳定的代替浮点数的变量&…...

安装ts-node有感
起因:想要在vsCode上运行ts脚本 解决方案: 1.安装vsCode插件 code runner 2.全局安装ts-node 这一步遇到三个问题: ①.node版本问题:需安装版本18以上node,可使用nvm去控制不同的node版本 ②.certificate has exp…...

飞天使-k8s知识点18-kubernetes实操3-pod的生命周期
文章目录 探针的生命周期流程图prestop 探针的生命周期 docker 创建:在创建阶段,你需要选择一个镜像来运行你的应用。这个镜像可以是公开的,如 Docker Hub 上的镜像,也可以是你自己创建的自定义镜像。创建自己的镜像通常需要编写一…...

顺子日期 蓝桥杯
调用API 思路: 设置Calendar的属性,获取Calendar的毫秒数,转换成指定格式的字符串(yyyyMMdd),判断字符串中是否包含符合条件的,若有就1, 迭代: 每次循环给Calendar加上一天即可 import java.text.SimpleDateFormat; im…...

基于 Python 的景区票务人脸识别系统,附源码
博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…...

OpenAI全新发布的Sora,到底意味着什么?
16日凌晨,OpenAI发布了文本视频的工具(text-do-video)Sora,整个世界再次被震撼。 Sora的出现,到底意味着什么? 目录 Sora的背景与概述Sora是什么?能为我们做些什么?存在的一些问题 文…...

预防.locked.locked1勒索病毒攻击:保护数据安全
导言: 随着科技的发展,网络安全问题日益严重,其中勒索病毒是一种令人头痛的威胁。.locked和.locked1是两种常见的勒索病毒,它们会将用户的数据文件加密,并要求支付赎金以获取解密密钥。本文将介绍这两种勒索病毒的特点…...

【力扣hot100】刷题笔记Day5
前言 回学校了,荒废了半天之后打算奋发图强猛猛刷题,找实习!赚钱!! 560. 和为 K 的子数组 - 力扣(LeetCode) 前缀法 哈希表 这个题解解释比官方清晰,截个图方便看,另一…...

解锁Spring Boot中的设计模式—04.桥接模式:探索【桥接模式】的奥秘与应用实践!
桥接模式 桥接模式也称为桥梁模式、接口模式或者柄体(Handle and Body)模式,是将抽象部分与他的具体实现部分分离,使它们都可以独立地变化,通过组合的方式建立两个类之间的联系,而不是继承。 桥接模式是一种…...