- 博客(51)
- 资源 (5)
- 收藏
- 关注
原创 Yocto 项目PROVIDES、PREFERRED_PROVIDES 和 PREFERRED_VERSION关键变量解读
PROVIDES、PREFERRED_PROVIDES 和 PREFERRED_VERSION关键变量解读
2025-06-11 07:50:31
393
原创 “硅仙人”吉姆·凯勒(Jim Keller)
初入DEC,凯勒竟与“小型机之父”戈登·贝尔(Gordon Bell)激辩技术,初生牛犊的锋芒惊动四座。随PA Semi被苹果收购后,他力排众议,摒弃“多核内卷”,提出**“大核架构为王”**的理念:“堆砌小核如群蜂乱舞,一核有难,七核围观!转战AMD,他主导K7/K8架构,首创x86-64指令集(64位计算的基石),并设计HyperTransport总线。众人哗然,讥其“狂言”。他深谙摩尔定律的物理桎梏,却以架构创新破局——从Alpha到Zen,从移动芯片到AI引擎,每一步皆直指应用本质。
2025-06-07 08:28:56
276
原创 usbutils工具的使用帮助
usbutils是Linux系统中用于管理USB设备的实用工具集,包含lsusb、usb-devices等命令,可列出设备信息、分析拓扑结构和调试HID设备。通过安装包(如apt install usbutils)即可使用,支持设备过滤(lsusb -d vid:pid)、树状显示(lsusb -t)和功耗检查等操作。常见应用包括设备识别、驱动绑定验证,配合dmesg和udev规则可解决权限问题或持久化命名。高级功能涉及USB协议分析和内核模块检查,是嵌入式开发和硬件调试的高效工具。
2025-06-06 22:00:00
381
原创 用yocto构建树莓派4镜像时出现许可证错误问题
【摘要】Yocto构建失败分析显示,因linux-firmware-rpidistro-bcm43456软件包的"synaptics-killswitch"许可证未被接受导致依赖链断裂。核心错误表明该受限许可证未包含在LICENSE_FLAGS_ACCEPTED中。解决方法为修改conf/local.conf文件,添加"LICENSE_FLAGS_ACCEPTED += "synaptics-killswitch""配置项以授权该许可。若存在其他受
2025-06-06 17:17:11
178
原创 RK3568嵌入式Linux多屏显示开发指南
摘要:本篇RK3568嵌入式Linux多屏显示开发指南详细介绍了基于Qt应用层的实现方案。文章首先概述了技术架构,说明从Qt应用到硬件显示的完整流程。然后提供了两种实现方案:推荐使用Qt内置多屏支持方案,包含完整的C++代码示例和配置文件说明;对于需要精细控制的场景,给出了基于libdrm API的底层实现方案。最后重点讨论了屏幕旋转处理和多屏协同工作模式的关键技术要点,包括扩展桌面、镜像模式等实现方法。
2025-06-06 08:09:57
905
原创 瑞芯微平台的DRM显示框架及modetest工具的深度解析
瑞芯微平台DRM显示框架与modetest工具解析摘要: 本文深入分析了Linux DRM框架在瑞芯微芯片(如RK3566/RK3588)上的实现与应用。DRM作为现代图形显示框架,通过KMS管理显示模式、多图层合成,GEM管理显存资源。瑞芯微平台通过VOP模块、多图层支持(RK3588达4个Overlay)和专用驱动优化性能。与传统FBDEV相比,DRM具备硬件加速、动态分辨率切换等优势。文章详细介绍了modetest工具的使用方法,包括设备扫描、显示设置、多图层合成等操作,并提供了常见问题解决方案和性能
2025-06-06 08:08:16
1260
原创 float转换为整型过程中关于小数部分的处理
大多数编程语言在将float转换为整型时默认会截断小数部分而非四舍五入,如C/C++、Python和JavaScript等。要实现四舍五入,需显式调用round()等函数。不同语言对负数的截断规则可能不同,建议查阅具体文档。关键点:默认截断,需主动调用函数才能四舍五入。
2025-06-06 08:05:28
398
原创 动态库版本不配问题排查步骤
库版本不匹配的排查指南: 定位问题:通过报错信息锁定库名和版本号,使用file检查文件属性,objdump查看依赖关系。 版本检查:用find搜索所有库文件,对比版本号,删除冲突版本或更新符号链接。 路径修正:确保系统能找到库文件,设置LD_LIBRARY_PATH或更新/etc/ld.so.conf并运行ldconfig刷新缓存。 预防措施:使用Docker或conda隔离环境,统一编译选项,维护版本兼容清单。
2025-05-26 21:31:25
950
原创 pkg-config的功能与作用说明
pkg-config是构建系统的核心工具,通过读取.pc文件统一管理第三方库的编译/链接参数(头文件路径、库文件路径、版本等),解决跨平台开发中的路径和版本问题。它支持自动调用和手动检查,尤其在嵌入式开发中通过设置PKG_CONFIG_PATH和PKG_CONFIG_SYSROOT_DIR确保交叉编译正确性。关键功能包括版本约束检查(如openssl>=1.1.0)和错误输出,帮助开发者快速验证依赖环境。合理配置.pc文件路径是保证构建成功的关键。
2025-05-26 21:12:51
400
原创 QVariant 的核心用途
是 Qt 中处理异构数据的瑞士军刀,在灵活性要求高的场景下表现卓越,但需注意类型安全和性能取舍。的通用容器类,能够在不同模块间传递未知或动态类型的数据。:同一模型索引(Index)通过不同角色返回字符串、颜色等不同类型数据。:通过元类型系统支持用户自定义类型的存储和转换。统一管理对象的动态属性,支持多种数据类型。统一参数类型,接收方根据实际类型解析数据。存储配置项,支持多种数据类型。
2025-05-08 16:28:32
409
原创 C++中的CAS(Compare-And-Swap)解读
用于在多线程编程中实现无锁(lock-free)的线程安全操作。它的核心功能是:检查某个内存位置的值是否与预期值一致,若一致则更新为新值,否则不更新。线程1读取内存值为A,线程2将其改为B后又改回A。线程1的CAS操作误认为值未变,导致逻辑错误。可能在某些情况下虚假失败(如硬件架构限制),但性能更高,通常用在循环中重试。CAS(Compare-And-Swap)是一种。严格保证成功或失败,无虚假失败,但可能更耗资源。整个过程是原子性的,不会被其他线程中断。,每次修改递增版本号,确保值的唯一性。
2025-05-06 17:03:33
646
原创 原子操作的is_lock_free() 接口说明
表示该原子类型的操作直接通过硬件指令(如CAS指令)实现,无需内部使用互斥锁(mutex),因此效率更高且无阻塞风险。,则表示该类型可能需要内部加锁(如对复杂类型或某些平台不支持的无锁操作),此时原子操作可能涉及锁竞争和上下文切换。的结果选择不同的算法或数据结构(例如优先使用无锁实现的高性能路径)。这是并发编程中的一个关键信息,直接影响程序的性能和线程安全策略。在调试时输出原子类型的无锁状态,辅助分析并发性能。不同平台对原子类型的无锁支持可能不同(例如对。的支持),通过此接口可编写平台自适应的代码。
2025-05-06 16:26:04
509
原创 使用yml与Dockerfile文件配合构建docker容器-群晖nas
为了方便在nas上构建容器,现在整理将docker-compose.yml文件与Dockerfile文件放置在同一个目录。就可以自动生成docker镜像了。采用上面的方式就可以方便构建自己容器开发环境了。
2025-04-25 08:03:34
269
原创 U-Boot Sandbox特性应用案例
U-Boot Sandbox通过虚拟化硬件环境,覆盖了驱动开发、安全验证、文件系统测试、网络调试、内存分析等核心场景。:开发者在修改U-Boot的I2C或SPI驱动后,需验证驱动与设备模型的兼容性。:模拟安全启动环境,避免因签名错误导致真实设备启动失败的风险。:无需物理存储设备,快速验证文件系统驱动的稳定性49。:模拟真实网络环境,验证协议栈实现,避免硬件依赖问题。:调试U-Boot的TFTP协议或HTTP下载功能。:检测U-Boot代码中的内存泄漏或性能瓶颈。:验证FIT镜像的签名校验流程是否符合预期。
2025-04-04 20:27:09
838
原创 U-Boot Sandbox特性
通过上述步骤,开发者可高效利用Sandbox加速U-Boot功能开发与验证,减少对物理硬件的依赖。(退出时写入)保存驱动状态(如SPI Flash模拟内容)12。需配置Linux RAW网络桥接权限(以root运行或添加。根据需求选择32位或64位版本(默认。支持U-Boot标准命令(如。参数指定状态文件,结合。查看完整列表110。
2025-04-04 20:23:21
697
原创 Buildroot与Yocto介绍比对
Buildroot 和 Yocto 是嵌入式 Linux 领域最常用的两大系统构建工具,它们在功能定位、使用方法和适用场景上有显著差异。
2025-04-04 18:57:06
795
原创 STL容器中不进行前置条件检查有可能导致不安全的操作
始终检查容器是否为空在调用front()back()pop_back()前使用empty()检查。避免未经验证的索引或迭代器使用at()替代operator[]进行越界检查。对关联容器使用find()检查键是否存在。注意迭代器失效规则修改容器后,重新获取迭代器。在循环中谨慎处理erase。优先使用 C++11 后的安全操作如emplace、基于范围的 for 循环。
2025-04-04 17:35:56
1367
原创 C++容器数据类型定义、测试用例
C++11 标准库提供了多种容器类型,每种容器定义了多个成员类型(如 、 等),用于与容器交互。以下详细说明各容器的数据类型定义、测试用例及注意事项。类型定义:测试用例:2. 类型定义:同 ,但迭代器为双向迭代器。测试用例:二、关联容器1. 类型定义:测试用例:三、无序容器1. 类型定义:测试用例:四、使用注意事项迭代器失效:类型差异:分配器类型:性能考量:C++11 新特性:使用 直接构造元素,避免拷贝。基于范围的 for 循环简化遍历:通过理解容器的数据类型定
2025-04-04 17:04:26
445
原创 刚毕业的大学生从事嵌入式技能列表
建议从MCU开发入手,逐步深入RTOS和Linux驱动,同时关注行业趋势(如Rust、AIoT),通过持续实践提升竞争力。嵌入式开发是软硬件结合的领域,毕业生需在。
2025-04-04 16:22:26
1024
原创 Git Flow 分支管理详解
Git Flow 是由 Vincent Driessen 提出的一种高效的分支管理模型,适用于中大型项目或有明确发布周期的团队。其核心思想是通过和,规范化开发、测试、发布和维护流程。
2025-03-31 20:27:07
489
原创 std::reference_wrapper 和 std::function的详细介绍
两者结合使用可以构建灵活高效的抽象机制,例如在事件系统中用。性能关键场景慎用(相比虚函数有额外开销)不能替代智能指针(不管理生命周期)不能包装临时对象(悬挂引用风险)
2025-03-29 21:04:13
334
原创 软件研发管理者管理团队建议
通过上述方法,管理者不仅能确保项目按时交付,更能打造一支既能深入寄存器操作,又能驾驭系统架构的嵌入式精英团队。最终目标是通过体系化建设,让团队在资源受限的嵌入式环境中持续输出高质量创新成果。作为嵌入式软件的研发管理者,想要高效管理团队并确保项目成功,需要结合技术深度、流程规范和团队协作的综合能力。
2025-03-24 21:09:36
860
原创 《尘埃落定》读后感
尘埃落定》以诗意的笔触揭示:人生如尘埃般渺小,但个体的清醒与超脱能赋予存在以尊严。它教会我们在无常中保持清醒,在欲望中守住本心,在历史的必然中活出自由的姿态。正如书中那句:“凡是有东西腐烂的地方,就会有新的东西生长。
2025-03-24 20:36:26
510
原创 《高效能人士的七个习惯》总结与启发
以原则为中心,通过塑造习惯实现个人效能与人际效能的双重提升,最终从“依赖”走向“独立”,再迈向“互赖”的成熟境界。这本书的本质并非传授技巧,而是引导读者重构思维与行为系统。
2025-03-23 11:14:13
491
原创 《人与绩效:德鲁克论管理精华》
是管理学大师彼得·德鲁克(Peter Drucker)思想的精华合集,汇集了他60年管理学研究中的核心洞见。书中以清晰、简明的语言阐述了德鲁克关于管理、组织、领导力和人性的深刻观点,强调管理的本质是“通过人创造绩效”。德鲁克的管理哲学始终围绕“人”与“绩效”的平衡展开,强调管理的本质是实践而非理论。他提醒管理者:卓越的绩效源于对人性深刻的理解、对使命的清晰认知,以及将资源集中于创造价值的关键领域。这本书不仅是管理者的行动指南,更是思考组织与人性关系的哲学读本。
2025-03-21 21:38:47
442
原创 《沉思录》
沉思录》是古罗马皇帝马可·奥勒留(Marcus Aurelius)在戎马倥偬中写下的哲学笔记,也是斯多葛学派的重要代表作。全书以自我对话的形式,探讨了生命、死亡、责任、自然法则以及心灵的安宁。通过践行斯多葛原则,人可以在动荡世界中找到内在的秩序与自由。
2025-03-21 21:35:29
243
原创 C++11 引入了的新特性与实例说明
以上示例展示了 C++11 中一些重要的新特性,包括自动类型推导、范围for循环、Lambda 表达式、移动语义、智能指针、nullptr、多线程支持、和std::bindconstexpr以及std::array和std::tuple。这些特性极大地提高了 C++ 的现代化编程能力。
2025-03-21 21:31:35
549
原创 QSettings修改配置后强制重启应用导致配置文件大小为0问题
QSettings 默认可能直接覆盖原文件,若写入过程中程序崩溃会导致文件损坏。通过强制同步、原子写入、备份恢复三重机制,可有效避免因强制重启导致的配置文件损坏问题。在每次修改配置后,手动调用。
2025-03-21 21:27:13
413
原创 git管理时keil项目忽略文件列表
在使用 Git 管理 Keil MDK(μVision 5)工程时,需要忽略编译生成的临时文件、调试文件、用户配置等非必要内容。以下是忽略文件的详细列表及说明,可直接保存为。可保持仓库精简且跨环境兼容。
2025-03-21 21:15:39
625
TM1637中文手册以及程序
2014-07-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人