<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[aa252525_的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/aa252525_</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; aa252525_]]></copyright><item><title><![CDATA[STM32 GPIO]]></title><link>https://blog.youkuaiyun.com/aa252525_/article/details/149119486</link><guid>https://blog.youkuaiyun.com/aa252525_/article/details/149119486</guid><author>aa252525_</author><pubDate>Fri, 04 Jul 2025 15:55:00 +0800</pubDate><description><![CDATA[GPIO即通用输入输出端口，是微控制器与外部世界进行通信的接口。在STM32中，GPIO用于接收传感器数据、控制LED灯、驱动电机等多种应用。它使得STM32能够根据程序的指令读取或发送电信号，实现对各种外设的控制。上拉电阻将引脚默认连接到电源电压，使得未激活状态下引脚处于高电平；下拉电阻则是将其连接到地，使得未激活状态下引脚处于低电平。它们的作用是确保引脚有一个稳定的状态，避免不确定的行为。]]></description><category></category></item><item><title><![CDATA[FREE RTOS]]></title><link>https://blog.youkuaiyun.com/aa252525_/article/details/149119436</link><guid>https://blog.youkuaiyun.com/aa252525_/article/details/149119436</guid><author>aa252525_</author><pubDate>Fri, 04 Jul 2025 15:53:20 +0800</pubDate><description><![CDATA[在FreeRTOS中，如果多个任务具有相同的优先级，它们会在可用的CPU时间上轮转执行。这个函数的主要参数包括任务的入口函数（即该任务运行时执行的代码）、任务的名字、堆栈大小、传递给任务的参数、任务的优先级和一个用于保存任务句柄的指针。FreeRTOS中的任务可以处于运行、就绪、阻塞、挂起等状态。任务之间的转换基于任务的优先级、是否等待某些事件以及系统当前的资源分配情况。保证系统的稳定性和效率涉及合理设置任务优先级、有效利用同步机制减少资源竞争、以及对任务的周期性行为进行良好规划，避免长时间占用CPU。]]></description><category></category></item><item><title><![CDATA[c++ vector的用法]]></title><link>https://blog.youkuaiyun.com/aa252525_/article/details/148699481</link><guid>https://blog.youkuaiyun.com/aa252525_/article/details/148699481</guid><author>aa252525_</author><pubDate>Mon, 16 Jun 2025 20:03:43 +0800</pubDate><description><![CDATA[在 C++ 里，vector是标准库提供的动态数组容器，它能够存放任意类型的对象，并且会在元素数量发生改变时自动调整存储空间大小。]]></description><category></category></item><item><title><![CDATA[c++中struct和class的区别]]></title><link>https://blog.youkuaiyun.com/aa252525_/article/details/148699331</link><guid>https://blog.youkuaiyun.com/aa252525_/article/details/148699331</guid><author>aa252525_</author><pubDate>Mon, 16 Jun 2025 19:55:59 +0800</pubDate><description><![CDATA[想快速打包数据、追求简单直接，用。]]></description><category></category></item><item><title><![CDATA[Linux根文件系统结构]]></title><link>https://blog.youkuaiyun.com/aa252525_/article/details/148697541</link><guid>https://blog.youkuaiyun.com/aa252525_/article/details/148697541</guid><author>aa252525_</author><pubDate>Mon, 16 Jun 2025 18:18:35 +0800</pubDate><description><![CDATA[usr目录的内容可以存在另一个分区中，在系统启动后再挂接到根文件系统中的/usr目录下。里面存放的是共享、只读的程序和数据，这表明/usr目录下的内容可以在多个主机间共享，这些主要也符合FHS标准的。用于存放临时文件，通常是空目录，一些需要生成临时文件的程序用到的/tmp目录下，所以/tmp目录必须存在并可以访问。，它是可选的，对于每个普通用户，在/home目录下都有一个以用户名命名的子目录，里面存放用户相关的配置文件。，其他主机相关的，可变的文件应该保存在其他目录下，比如/var。]]></description><category></category></item><item><title><![CDATA[GPIO设备驱动原理]]></title><link>https://blog.youkuaiyun.com/aa252525_/article/details/148697491</link><guid>https://blog.youkuaiyun.com/aa252525_/article/details/148697491</guid><author>aa252525_</author><pubDate>Mon, 16 Jun 2025 18:16:26 +0800</pubDate><description><![CDATA[例如，USB驱动程序向Linux核心提供了一个设备文件I／O接口，GPIO设备驱动程序向GPIO子系统提供了GPIO设备接口，接着向核心提供了文件I／O和缓冲区的接口。作缓冲区，当用户进程对设备请求能满足用户的要求，就返回请求的数据；如果不能，就调用请求函数来进行实际的I／O操作。：在对字符设备发出读／写请求时，实际的硬件I／O操作就紧接着发生了。，其驱动程序的使用可以按照两种方式编译，一种是静态编译进内核，另一种是编译成模块以供动态加载。在Linux系统下，字符设备和块设备的主要区别是。]]></description><category></category></item><item><title><![CDATA[U-Boot工作过程]]></title><link>https://blog.youkuaiyun.com/aa252525_/article/details/148697432</link><guid>https://blog.youkuaiyun.com/aa252525_/article/details/148697432</guid><author>aa252525_</author><pubDate>Mon, 16 Jun 2025 18:13:04 +0800</pubDate><description><![CDATA[run_command函数调用common/command.c中实现的find_cmd函数在__u_boot_cmd_start与__u_boot_cmd_end间查找命令，并返回menu命令的cmd_tbl_t结构。这样只要将U-Boot所有命令对应的cmd_tbl_t变量加上“.u_boot_cmd”声明，编译器就会自动将其放在“u_boot_cmd”段，查找cmd_tbl_t变量时只要在__u_boot_cmd_start与__u_boot_cmd_end之间查找就可以了。]]></description><category></category></item><item><title><![CDATA[TCP和UDP的区别]]></title><link>https://blog.youkuaiyun.com/aa252525_/article/details/148697240</link><guid>https://blog.youkuaiyun.com/aa252525_/article/details/148697240</guid><author>aa252525_</author><pubDate>Mon, 16 Jun 2025 18:05:57 +0800</pubDate><description><![CDATA[技术上讲，实现起来区别不大，tcp需要首先建立连接，而udp只要绑定端口发送就行，tcp如果建立连接以后，能够保证传送的数据包次序，而udp则不能保证数据包到达的先后次序，甚至会丢包，就这点而言，udp的客户端所要做的接收工作要更复杂（如接收文件等）   通常我们在说到网络编程时默认是指TCP编程，即用前面提到的socket函数创建一个socket用于TCP通讯，函数参数我们通常填为 SOCK_STREAM。6、收发数据，用函数send()和recv()，或者read()和write();]]></description><category></category></item><item><title><![CDATA[c、c++ 结构体（Struct） 联合（Union）枚举（Enum）]]></title><link>https://blog.youkuaiyun.com/aa252525_/article/details/148697185</link><guid>https://blog.youkuaiyun.com/aa252525_/article/details/148697185</guid><author>aa252525_</author><pubDate>Mon, 16 Jun 2025 18:03:56 +0800</pubDate><description><![CDATA[联合也是一种用户自定义的数据类型，它允许你使用相同的内存位置来存储不同的数据类型。与结构体不同，联合的所有成员共享同一块内存空间，因此在同一时间只能有一个成员有效。它允许你创建一个包含多个成员变量的复合数据类型，这些成员变量可以是不同的数据类型，如整数、浮点数、字符等。枚举中的每个枚举常量都有一个对应的整数值，默认情况下，第一个枚举常量的值为 0，后续的枚举常量的值依次递增。// 访问结构体成员并输出。// 访问结构体成员并输出。// 初始化结构体成员。// 初始化结构体成员。// 声明结构体变量。]]></description><category></category></item><item><title><![CDATA[C++ string 的使用]]></title><link>https://blog.youkuaiyun.com/aa252525_/article/details/148697128</link><guid>https://blog.youkuaiyun.com/aa252525_/article/details/148697128</guid><author>aa252525_</author><pubDate>Mon, 16 Jun 2025 18:02:05 +0800</pubDate><description><![CDATA[属于标准库中的一个类，它能用来处理和操作字符串。"使用 append 拼接后的 str1: ""找到 'World'，位置是: ""字符串的第 3 个字符: ""你输入的整行字符串是: ""请输入一个字符串: ";"请输入一行字符串: ";"未找到 'World'""你输入的字符串是: "// 忽略缓冲区的换行符。"拼接后的字符串: ""修改后的字符串: ""字符串的长度: "]]></description><category></category></item><item><title><![CDATA[C++拷贝构造函数]]></title><link>https://blog.youkuaiyun.com/aa252525_/article/details/148697005</link><guid>https://blog.youkuaiyun.com/aa252525_/article/details/148697005</guid><author>aa252525_</author><pubDate>Mon, 16 Jun 2025 18:00:17 +0800</pubDate><description><![CDATA[当类中有指针、动态数组、文件句柄等需独立管理的资源时，必须自定义深拷贝的拷贝构造函数和拷贝赋值运算符。通过上述方式，即可在拷贝构造和拷贝赋值时实现深拷贝，保障对象资源的独立性和程序稳定性。重新分配内存，再将源对象的数据复制到新内存，确保新对象与原对象资源独立。：确保每个对象拥有独立资源，避免浅拷贝导致的重复释放、数据篡改等问题。类名& operator=(const 类名& other)类名(const 类名& other)// 重新分配内存并复制内容。// 深拷贝构造函数。// 其他成员...]]></description><category></category></item></channel></rss>