加载中...
avatar
文章
453
标签
53
分类
58
首页
页面
  • 归档
  • 标签
  • 分类
  • 图库
  • 说说
  • 示例
清单
  • 音乐
  • 电影
  • 书籍
  • 游戏
  • 歌曲
留言板
关于
Logowdfk-prog的个人博客数据结构 返回首页
搜索
首页
页面
  • 归档
  • 标签
  • 分类
  • 图库
  • 说说
  • 示例
清单
  • 音乐
  • 电影
  • 书籍
  • 游戏
  • 歌曲
留言板
关于

数据结构

发表于2025-10-03|更新于2025-11-17|rt-thread
|总字数:33|阅读时长:1分钟|浏览量:|评论数:

数据结构

  • 二叉搜索树、B树、B+树、AVL树、红黑树
  • 树堆(Treap)和红黑树(RB-Tree)各有哪些优劣?
文章作者: Liya Huang
文章链接: https://wdfk-prog.space/posts/79666db/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 wdfk-prog的个人博客!
rt-thread
赞助
  • 微信
    微信
  • 支付寶
    支付寶
cover of previous post
上一篇
汇编
汇编.s文件https://zhuanlan.zhihu.com/p/98888285 汇编指令BX BX指令:在ARM汇编语言中,BX指令用于跳转到指令中所指定的目标地址。这个目标地址可以是ARM指令,也可以是Thumb指令。BX指令的格式为:BX {条件} 目标地址。这个指令的特点是它可以改变处理器的状态,从ARM状态切换到Thumb状态,或者从Thumb状态切换到ARM状态。这种状态切换的功能使得BX指令在实现子程序调用和处理器工作状态切换时非常有用。 LR链接寄存器 LR链接寄存器:在ARM架构中,链接寄存器(Link Register,简称LR)通常用于存储子程序返回地址。当执行BL(带返回的跳转指令)或BLX(带返回和状态切换的跳转指令)时,处理器会将下一条指令的地址保存到LR中。然后,当子程序执行完毕后,可以通过将LR的内容加载到程序计数器(PC)中,从而返回到调用者。这种机制使得子程序的调用和返回变得非常方便和高效。 在用户模式下,LR(或R14)用作链接寄存器,用于存储子程序调用时的返回地址。如果返回地址存储在堆栈上,它也可以用作通用寄存器。 在异常处理模式...
cover of next post
下一篇
工作队列
工作队列工作队列内部有一个工作链表(worklist),链表上有多个工作项(work item)节点,我们可以将工作项简单理解为函数,因此工作链表上就存储着一系列待执行的函数。而且工作队列内有个线程一直在轮询工作链表,每次都从工作链表中取出一个工作项,并执行其相关联的函数。当工作队列为空时,线程会被挂起。 1234567891011121314151617181920212223242526272829303132333435363738394041424344/* workqueue implementation */struct rt_workqueue{ rt_list_t work_list; rt_list_t delayed_list; struct rt_work *work_current; /* current work */ struct rt_semaphore sem; rt_thread_t work_thread; struct rt_spinlock spinlock;}...
相关推荐
cover
2025-10-03
fatfs
fatfs 因此应用程序应尽可能以大块的形式写入数据。理想的写入块大小和对齐方式是扇区大小,簇大小最好。当然,应用程序和存储设备之间的所有层都必须考虑多扇区写入,但大多数开源存储卡驱动程序都缺乏这一点。不要将多扇区写入请求拆分为单扇区写入事务,否则写入吞吐量会变差。 努力实现扇区对齐的读/写访问可以消除缓冲数据传输,从而提高读/写性能。除此之外,在 tiny 配置下,缓存的 FAT 数据不会被文件数据传输刷新,因此它可以以较小的内存占用实现与非 tiny 配置相同的性能。 如果由于意外故障(例如突然断电、错误移除介质和不可恢复的磁盘错误)而中断对 FAT 卷的写入操作,则卷上的 FAT 结构可能会被破坏。为了最大限度地降低数据丢失的风险,可以通过最小化以写入模式打开文件的时间或使用f_sync函数来最小化临界区 FatFs 模块不支持对文件的重复打开的读写冲突控制。仅当对文件的每种打开方式都是读取模式时才允许重复打开。始终禁止对文件进行一次或多次写入模式的重复打开,并且打开的文件不得重命名或删除。违反这些规则可能会导致数据冲突。 文件系统操作mkfs 格式化...
cover
2025-10-03
CAN驱动
CAN驱动CAN驱动框架CAN初始化-rt_hw_can_register注册CAN设备,并初始化互斥量 -rt_timer_init初始化CAN定时器,注册定时器回调函数 cantimeout 初始化&&配置 RT_CAN_CMD_SET_PRIV 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960if (can->config.privmode) { for (i = 0; i < can->config.sndboxnumber; i++) { level = rt_hw_interrupt_disable(); if(rt_list_isempty(&tx_fifo->buff...
cover
2025-10-03
DFS
DFS 虚拟文件系统https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/filesystem/filesystem 123456789101112131415161718FatFS 是专为小型嵌入式设备开发的一个兼容微软 FAT 格式的文件系统,采用 ANSI C 编写,具有良好的硬件无关性以及可移植性,是 RT-Thread 中最常用的文件系统类型。传统型的 RomFS 文件系统是一种简单的、紧凑的、只读的文件系统,不支持动态擦写保存,按顺序存放数据,因而支持应用程序以 XIP(execute In Place,片内运行) 方式运行,在系统运行时, 节省 RAM 空间。Jffs2 文件系统是一种日志闪存文件系统。主要用于 NOR 型闪存,基于 MTD 驱动层,特点是:可读写的、支持数据压缩的、基于哈希表的日志型文件系统,并提供了崩溃 / 掉电安全保护,提供写平衡支持等。DevFS 即设备文件系统,在 RT-Thread 操作系统中开启该...
cover
2025-10-03
FINSH模块
FINSH模块MSH初始化 根据链接脚本指明FINSH使用内存空间 _syscall_table_begin _syscall_table_end的地址 FSymtab段1234. = ALIGN(4);__fsymtab_start = .;KEEP(*(FSymTab))__fsymtab_end = .; __fsymtab_start和 __fsymtab_end用于指明finsh使用内存 FSymTab用于存放所有注册命令的结构体 struct finsh_syscall,包括命令名称,命令选项,命令描述,命令函数执行地址信息 宏12345678910111213141516171819202122232425262728293031/** * @ingroup msh * * This macro exports a command to module shell. * * @param command is the name of the command. * @param desc is the description of the command, wh...
cover
2025-10-03
I2C驱动
I2C驱动 https://www.i2c-bus.org/i2c-primer/termination-versus-capacitance/ 硬件电路 I2C 总线使用 SDA 和 SCL 传输数据和时钟。首先要意识到:SDA 和 SCL 是开漏(在 TTL 世界中也称为开集),也就是说 I2C 主设备和从设备只能将这些线路驱动为低电平或保持开路。如果没有 I2C 设备将其拉低,终端电阻Rp 会将线路拉高至 Vcc。这允许同时操作多个 I2C 主设备(如果它们具有**多主设备功能)或拉伸(从设备可以通过按住 SCL 来减慢通信速度)等功能。 终端电阻 Rp 与线路电容 Cp 一起影响 SDA 和 SCL 上信号的时间行为。虽然 I2C 设备使用开漏驱动器或 FET 拉低线路(通常可以驱动至少约 10mA 或更多),但上拉电阻 Rp 负责将信号恢复到高电平。Rp 通常在 1 kΩ 至 10 kΩ 之间,导致典型的上拉电流约为 1 mA 或更小。这就是 I2C 信号具有锯齿状外观的原因。事实上,每个“齿”在上升沿显示线路的充电特性,在下降沿显示放电特性。 SDA(上)和 SC...
cover
2025-10-03
IDLE线程
IDLE线程 cleanup 会在线程退出时,被空闲线程回调一次以执行用户设置的清理现场等工作。 defunct流程 rt_thread_defunct_enqueue 将退出线程和分离线程插入到defunct链表中 IDLE线程会在空闲时,执行defunct链表中的线程,将线程节点从链表中移除 从对象容器中移除线程对象 执行线程清除函数,释放线程控制块

评论
avatar
Liya Huang
WORK-LIFE BALANCE
文章
453
标签
53
分类
58
Follow Me
公告
欢迎光临!有任何问题或想法,欢迎在文章下留言交流,或者通过 关于页面 联系我。
目录
  1. 1. 数据结构
最新文章
构建
构建2025-11-17
u-boot_make
u-boot_make2025-11-17
u-boot流程分析
u-boot流程分析2025-11-17
scripts
scripts2025-11-17
setlocalversion
setlocalversion2025-11-17
文档
🚀 linux📑 rt-thread📌 uboot⚔️ LoraWan❓ hpatch⚡️ git
其他
图库留言板说说示例友链
框架
HexoButterfly
贊助
wdfk_prog
© 2025 By Liya Huang|框架 Hexo 8.0.0|主题 Butterfly 5.5.1
你好,欢迎来到我的 数字花园!
搜索
数据加载中