扫码加入

  • Ai MCP网关,从HTTP到MCP,轻松协议转换!
    小傅哥分享如何利用Spring AI框架开发智能体,强调自研的重要性,包括技术资产、人才储备和专利申请。他介绍了Higress AI网关的使用,展示了如何通过Swagger API和MCP协议实现接口转换,以及如何部署和配置该网关。文章详细讲解了网关的部署步骤、接口开发、配置过程和实际调用测试,最后鼓励读者深入学习并参与AI MCP网关项目的实战。
    267
    02/21 10:25
    Ai MCP网关,从HTTP到MCP,轻松协议转换!
  • 我在树莓派上运行了30年前的操作系统,结果出乎意料...
    RISC OS 是一款基于 ARM 架构的复古操作系统,适合对计算机历史感兴趣的用户。它具有独特的图形界面、轻量级特性以及稳定的性能。尽管 RISC OS 不支持 Wi-Fi 设置,但它提供了丰富的内置应用,如 PackMan、StrongED 和 NetSurf 等。对于那些寻求非 Linux 发行版体验或对复古计算有兴趣的人来说,RISC OS 是一个值得尝试的选择。
    我在树莓派上运行了30年前的操作系统,结果出乎意料...
  • Linux驱动-inode,file,file_operations关系
    文章主要介绍了Linux操作系统中文件描述符、设备节点、inode、file和file_operations之间的关系,以及如何通过次设备号区分同一类设备的不同实例。文中详细解释了如何创建字符设备文件、如何通过inode和file结构体获取次设备号,以及如何利用file_operations接口函数实现同一驱动操作不同设备的功能。此外,还提供了通过容器宏(container_of)获取设备结构体变量地址的方法,并给出了一个完整的驱动程序示例,展示了如何通过次设备号读取不同设备的数据。
    269
    02/19 11:25
    Linux驱动-inode,file,file_operations关系
  • 如何确保发布的嵌入式bin文件,是最终测试通过的版本?
    为了确保嵌入式设备的固件升级(OTA)成功,必须建立标准化的版本管控流程,并通过技术手段验证bin文件的正确性。首先,制定清晰的版本命名规则,使用SVN或Git等工具管理不同阶段的文件,并设置严格的发布审批流程。其次,利用哈希值、版本标识和CRC校验码等技术手段确保文件一致性。最后,注意避免常见风险,如混淆测试和生产环境文件、加密传输和定期清理冗余文件。通过这些措施,可以有效保障bin文件的质量,提高设备稳定性。
    如何确保发布的嵌入式bin文件,是最终测试通过的版本?
  • 简易嵌入式错误码模块设计!
    嵌入式项目中的错误码设计至关重要,它直接影响项目的开发效率和后期维护难度。本文介绍了三种常见的错误码设计方案及其适用场景:极简整型错误码**:适用于小型项目或模块较少的场景,简洁明了,易于理解和使用。枚举型错误码:适合中大型项目,尤其是多个模块协同工作的场景,能够有效避免重复定义相同的错误码。
    390
    02/19 08:55
    简易嵌入式错误码模块设计!
  • 超级下载算法在MCUXpresso IDE下的使用
    痞子衡发布的RT-UFL v1.0超级下载算法适用于全平台i.MXRT,并已在多个项目中得到初步应用。本文介绍了如何在MCUXpresso IDE环境下使用该算法,详细步骤包括更新J-Link驱动、导入SDK工程、配置J-Link路径、确保板卡启动模式正确以及选择合适的下载算法进行调试。
    902
    02/18 14:12
  • 启动Flash时DQS与Dummy Cycle设置是怎样的关系?
    我们知道对于普通 QuadSPI 型 Flash,在 FlexSPI 模块 LUT 里配置读时序时,其中 Dummy Cycle 子序列中填的值必须要与 Flash 端的 Dummy Cycle 严格一致,否则会发生时序错乱(如下图 Extended 时序所示,图中是单线模式,四线模式类似)。
    193
    02/16 07:12
  • 利用GPIO模块来测量Cortex-M7系统中断延迟
    恩智浦 i.MXRT1xxx 系列目前有很多型号,都是基于 Cortex-M7 内核,主频从 500MHz 到 1GHz 不等。拿该系列第一款型号 i.MXRT1050 来说,在其官方主页可以看到其标称中断延迟时间低至 20ns。
    539
    02/15 07:12
  • 在VS Code下也可以丝滑开发恩智浦MCU
    MCUXpresso for VS Code 是恩智浦推出的免费集成开发环境插件,支持多种嵌入式开发任务。该插件集成了MCUXpresso IDE的核心功能,并增强对Zephyr的支持。本文介绍了如何搭建MCUXpresso for VS Code开发环境,包括安装VS Code插件和MCUXpresso Installer工具,以及如何导入恩智浦SDK工程进行开发调试。
    477
    02/14 14:02
    在VS Code下也可以丝滑开发恩智浦MCU
  • IAR启动函数流程里RW段初始化实现也支持压缩?
    我们还是结合一个具体应用程序工程来讲解,痞子衡选择的是 \SDK_2.11.0_MIMXRT1170-EVK\boards\evkmimxrt1170\demo_apps\hello_world\cm7\iar 例程(切到 flexspi_nor_debug build),这个工程的链接文件是 MIMXRT1176xxxxx_cm7_flexspi_nor.icf,在链接文件里我们使用了如下 initialize by copy 语句来指定 IAR 链接器去做 RW/ZI 段初始化工作:
    246
    02/14 08:12
    IAR
  • 嵌入式设备间通信,高效可靠的字节流通信协议
    本文介绍了适用于MCU设备间通信的一种轻量级且可靠的通信协议。该协议通过帧头、帧尾、原始长度和校验码解决粘包、丢包和特殊字节冲突等问题,并提供了详细的协议设计原则、数据帧结构、核心机制和示例代码。此协议具有轻量高效、兼容性强、可靠性高的特点,适合在MCU应用场景中使用。
    嵌入式设备间通信,高效可靠的字节流通信协议
  • FreeRTOS:看这一篇就够了
    STM32H743XI开发板基于STM32CubeIDE和Cursor进行FreeRTOS配置与开发,详细介绍了FreeRTOS的基本使用方法,包括配置系统时间源、CMSIS_V2、高速时钟、工具链选择等。文章还探讨了STM32CubeMX的功能和配置,以及如何使用STM32CubeIDE进行代码开发和调试。此外,还涉及了STM32H743芯片的硬件抽象层配置、FreeRTOS任务管理、LED控制、以及如何使用STM32CubeMX配置FreeRTOS点亮LED灯等实例。
    1446
    02/13 14:03
  • 如果你在找OTA参考设计,可以持续关注Tiny OTA
    Tiny OTA 是一个针对i.MX RT系列的OTA参考设计,包含MCU端固件(tota_sbl和tota_app)和PC端GUI工具(MCU-TinyOtaUtility)。tota_sbl负责引导启动和校验固件完整性,tota_app则是示例应用。MCU-TinyOtaUtility支持固件加OTA头、烧写和一般Flash操作。适用于i.MXRT117x和i.MXRT118x,支持NOR Flash一般读写擦操作和blhost协议通信。
    451
    02/13 11:02
    如果你在找OTA参考设计,可以持续关注Tiny OTA
  • 嵌入式C语言宏的高级编程技巧与实战!
    本文介绍了libevhtp高性能HTTP服务器库中使用的几个宏高级技巧,包括分支预测优化、Token拼接、可变参数宏和字符串化等。这些技巧有助于编写高效且易于维护的嵌入式代码。
    247
    02/12 08:53
    嵌入式C语言宏的高级编程技巧与实战!
  • git命令行:看这一篇就够了
    Git 是一个开源的分布式版本控制系统,适用于高效管理和协作开发。本文介绍了 Git 的基本命令及其应用场景,涵盖了从初始化仓库到远程协作、分支管理、版本回退等多个方面。通过实例演示了如何使用 Git 进行日常开发操作,帮助读者掌握 Git 的核心功能和最佳实践。
    1211
    02/11 10:05
  • 使用VirtualBox安装国产麒麟桌面系统
    文章介绍了如何在VirtualBox上安装麒麟桌面系统(Intel版本)和尝试在Ubuntu上安装麒麟系统(arm64版本)的过程。首先,在VirtualBox中安装Intel版本的麒麟系统,并解决调试界面的问题;接着,尝试在Ubuntu上安装arm64版本的麒麟系统,但由于架构不匹配和模拟方式的不同,最终未能成功安装。
  • 嵌入式工程师必看:蓝牙基础知识
    蓝牙协议分为经典蓝牙和低功耗蓝牙(BLE),其中BLE广泛应用于物联网、穿戴设备等领域。BLE协议栈主要由GAP、GATT、HCI和应用层组成,分别负责设备识别、数据交换规则、通信接口和业务逻辑。关键概念包括广播、UUID和特征值属性,其中UUID用于标识数据接口,特征值属性决定数据的操作方式。应用层代码的核心工作流程包括广播配置、GATT配置和异常处理。掌握基本配置和调试工具,有助于提高BLE项目的开发效率和稳定性。
  • RT1180 NOR Flash启动连接方式大全
    恩智浦i.MXRT1180的FlexSPI NOR启动连接方式详解,涵盖单Flash连接方式(12种),并对比RT1170的IVT结构,重点介绍启动头Container结构及其对信任区TrustZone的支持。
  • 2017年我刚去实习的时候画的一块CAN 总线收发板
    Allen康哥分享了自己在2017年实习期间绘制的一块CAN总线收发板的经验教训,强调了实际工程中的重要性,包括布线原则、固定孔的设计、GND的合理安排、过孔盖油的重要性、接线端子的质量控制等方面。他认为,虽然这块板的技术含量不高,但却让他提前体验到了嵌入式工程师可能会遇到的各种问题,培养了他的工程思维和实践能力。
    515
    02/10 09:08
  • 不用质疑了,C是最精炼的高级语言,不服来辩!
    C语言作为一种简洁、直接且充满力量的语言,在当今技术繁荣的时代显得尤为独特。尽管其他语言不断添加复杂的功能,C语言却坚守其原始的简洁性,拒绝变得臃肿。它的“节制”体现在没有元数据、类型标签和垃圾回收机制,使得开发者能够完全掌握内存操作。此外,C语言给予程序员极高的信任度,允许他们直接操控硬件,享受纯粹的掌控感。尽管如此,C语言并未退出历史舞台,它是许多现代软件的基础,从AI到操作系统,无不依赖其稳定性和性能。对于追求编程本质的人来说,重读C语言代码能让人重新找到编程最原本的魅力。
    426
    02/09 17:09

正在努力加载...

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录
热门专题 更多