|
|
Eclipse ThreadX 版本 6.5.1.202602 已上线。此次服务发布代表了我们 RISC-V 支持的又一重大进步。它还引入了全新的 Windows 64 位 ThreadX 移植版,可用于运行完整的回归测试套件以验证新代码贡献。此外,它还包含了许多涵盖整个 ThreadX 套件的漏洞修复和改进。
GUIX Studio 用户会很高兴地发现,这款历史悠久的应用程序现在可以在高分辨率屏幕上(支持高 DPI )上正常扩展。安装程序可在 v6.5.1 版本发布说明中提供。
【ThreadX更新内容】
https://github.com/eclipse-threa ... g/v6.5.1.202602_rel
Eclipse ThreadX 6.5.1.202602a 版本发布说明
此热修复版本解决了 v6.5.1.202602 版本中引入的一个严重的编译回退问题,该问题导致针对 Cortex-M3、Cortex-M4 或 Cortex-M7 处理器的项目无法构建。同时,此版本还为 v6.5.1.202602 中涉及的所有 GNU 工具链移植提供了 Linux 构建脚本支持。
1. 已解决的安全漏洞
本版本未修复任何新的安全漏洞。您可访问以下链接,获取之前已解决漏洞的相关公告:https://github.com/eclipse-threadx/threadx/security/advisories。
2. 错误修复
严重问题:tx_port.h 中出现 #endif 没有 #if 的编译错误(#545, #546)
在 v6.5.1.202602 版本中,#ifdef TX_PORT_USE_BASEPRI / __set_basepri_value 代码块中的一条 #else 指令被错误地替换成了 #endif,导致在编译受影响的目标平台时出现以下错误:
tx_port.h: error: #endif without #if
以下移植版本受到影响,并已得到修正:
cortex_m3/ac6, cortex_m3/gnu, cortex_m3/iar
cortex_m4/ac6, cortex_m4/gnu, cortex_m4/iar
cortex_m7/ac6, cortex_m7/gnu, cortex_m7/iar
感谢 @s-w-k-r 报告此问题。
修复了 cortex_m4/gnu 示例构建中缺少链接脚本符号的问题
cortexm4_crt0.S 启动文件引用了多个符号(如 __text_load_start__, __rodata_start__, __fast_load_start__ 等),但这些符号在 sample_threadx.ld 链接脚本中缺失,导致构建示例应用程序时出现链接错误。链接脚本已更新,定义了所有必需的符号。
3. 功能增强
为 GNU 工具链移植提供了 Linux 构建脚本
为自 v6.5.0 版本以来所有发生变更的 GNU 工具链移植,添加了 build_threadx.sh(以及适用情况下的 build_threadx_sample.sh),作为现有 Windows .bat 构建脚本的 Linux 等效版本。涉及的移植包括:
arm9, arm11, cortex_a5, cortex_a7, cortex_a8, cortex_a9, cortex_a12, cortex_a15, cortex_a17, cortex_m0, cortex_m23, cortex_m33, cortex_m55, cortex_m85, cortex_r4, cortex_r5
此外,还修正了 cortex_m23/gnu 构建脚本中一个原有的路径错误(该错误导致 tx_thread_stack_error_handler.c 和 tx_thread_stack_error_notify.c 从移植目录而非 common/src/ 目录被引用)。
【GUIX和GUIX Studio】
https://github.com/eclipse-threa ... g/v6.5.1.202602_rel
本版本聚焦于 GUIX Studio 的现代化升级,包括迁移至 Visual Studio 2022 及添加高 DPI 支持,同时为自定义 RTOS 绑定引入了错误处理钩子,并在 GUIX 运行时和 GUIX Studio 中修复了若干错误。
1. 已解决的安全漏洞
本版本未修复任何新的安全漏洞。您可访问以下链接,获取之前已解决漏洞的相关公告。
2. 主要亮点
2.1 GUIX Studio 现代化
GUIX Studio 已针对现代 Windows 开发进行了重大更新:
VS2022 迁移:GUIX Studio 的 Windows 构建已迁移至 Visual Studio 2022;VS2019 项目文件已被移除。
高 DPI 支持:添加了 PerMonitorV2 DPI 感知能力,并对 MFC 窗格、对话框和工具栏资源进行了缩放处理,确保在高分辨率显示器上呈现清晰锐利的界面。
窗口位置:GUIX Studio 现在默认以最大化方式启动,并且能够正确地将还原后的窗口矩形与最大化状态分开保存。
字符串表编辑器:修正了字符串表编辑器中按钮的缩放问题。
品牌标识:更新了全文中对 Eclipse ThreadX 的引用。
2.2 新增错误处理钩子
为使用 GX_DISABLE_THREADX_BINDING 进行构建的用户引入了一个新的可选错误处理钩子(GX_ENABLE_ERROR_CALLBACK),使自定义 RTOS 绑定能够定义自己的错误处理回调函数。
2.3 GUIX Studio 发布自动化
添加了发布版本辅助工具、本地运行时打包、签名辅助工具以及安装程序验证脚本,以简化 GUIX Studio 的发布流程。
3. 其他错误修复
3.1 修复了当 _gx_canvas_drawing_initiate() 溢出时绘制上下文栈损坏的问题
3.2 修复了自动换行问题:溢出时的尾随空格不再超出可用宽度
3.3 修复了 _gx_system_event_send() 中 GX_EVENT_PUSH() 缺少状态返回值的问题
3.4 修复了 gx_system_canvas_refresh.c 中的缩进和 MISRA 合规性问题
4. 代码质量
在 GUIX 和 GUIX Studio 的源代码、脚本及项目文件中添加了缺失的 MIT 许可证头文件
【LevelX文件系统底层管理】
https://github.com/eclipse-threa ... g/v6.5.1.202602_rel
本版本为 NAND 闪存操作引入了一项重要的性能改进,增加了可选择启用的延迟扇区释放机制,显著降低了大型存储设备上的删除操作复杂度。
1. 已解决的安全漏洞
本版本未修复任何新的安全漏洞。您可访问以下链接,获取之前已解决漏洞的相关公告。
2. 主要亮点
2.1 NAND 闪存的延迟扇区释放机制
新增了一个可选择启用的延迟扇区释放机制,以解决从已满块中释放扇区时出现的 O(N²) 删除复杂度问题。(#71,@fdesbiens)
当定义了 LX_NAND_FLASH_ENABLE_LAZY_SECTOR_RELEASE 且空闲块数量超过 LX_NAND_FLASH_SECTOR_RELEASE_LAZY_THRESHOLD(默认值:10)时,从已满块中释放扇区会推迟“复制+擦除”操作。系统会向一个新分配的块写入一个“墓碑”页面,并将旧块标记为 COMPACTION_PENDING(待压缩)。随后,压缩操作将由扇区写入、磨损均衡移动、碎片整理以及块分配等操作以延迟方式触发。
该机制完全支持崩溃恢复:在重新打开设备时,系统会检测到 COMPACTION_PENDING 状态的块,并根据崩溃时的状态决定中止或恢复压缩操作。
如果不定义该标志,所有现有代码路径将保持不变。
注意: 此功能尚未经过除现有回归测试套件之外的充分测试。在任何生产系统中使用之前,应对其进行全面验证,包括压力测试、断电测试以及磨损均衡场景的测试。
【FileX文件系统】
https://github.com/eclipse-threa ... g/v6.5.1.202602_rel
Eclipse FileX 6.5.1.202602 版本发布说明
本版本提供了一项针对性的错误修复,确保格式化介质时的数据完整性,该修复由一位新的社区成员贡献。
我们感谢 Cloudflight 对本版本所做的宝贵贡献。
1. 已解决的安全漏洞
本版本未修复任何新的安全漏洞。您可访问以下链接,获取之前已解决漏洞的相关公告。
2. 主要亮点
2.1 介质格式化刷新修复
与 fx_media_close() 在销毁前正确执行刷新操作不同,fx_media_format() 在反初始化驱动程序之前未调用 FX_DRIVER_FLUSH。这可能导致格式化操作后数据无法提交到底层存储设备。此次修复使 fx_media_format() 的行为与既有模式保持一致。(#89,@Ralino)
【USBX协议栈】
https://github.com/eclipse-threa ... g/v6.5.1.202602_rel
本版本带来了 HID 类的重大改进——包括新增主机端协议 API 以及多项错误修复——同时还包括控制传输解析修复和常规代码质量提升。
我们感谢来自 Advanced Electronics 和 Amazon 的贡献者对本版本所做的宝贵贡献。
1. 已解决的安全漏洞
本版本未修复任何新的安全漏洞。您可访问以下链接,获取之前已解决漏洞的相关公告。
2. 主要亮点
2.1 HID 类改进
主机端和设备端的 HID 类均进行了多项改进:
新增 API:添加了 ux_host_class_hid_protocol_get() 和 ux_host_class_hid_protocol_set(),允许主机在启动协议模式和报告协议模式之间切换 HID 设备。同时在设备端引入了一个可选的 ux_device_class_hid_set_protocol_callback,用于在主机更改协议时通知应用程序。(#244,@ayedm1)
多设备修复:HID 客户端实例指针按类而非按设备存储,导致当同一类型设备中的任意一个被移除时,所有其他设备都停止上报输入。现在实例按设备进行存储。(#262,@kajteklau)
独立模式锁修复:ux_host_class_hid_idle_get 和 ux_host_class_hid_idle_set 中的两个错误在独立模式下使用了错误的位运算符来获取锁,导致锁从未被实际持有。(#264,@fdesbiens)
3. 其他错误修复
3.1 修复了 _ux_device_stack_control_request_process 中对请求类型评估不正确的问题,该问题导致类请求和厂商请求被错误识别。(#218,@SeanHowsonAdvCo)
3.2 为串行主机类中的线路编码参数添加了默认值保护。(@ayedm1)
3.3 修复了模拟器主机头文件中缺少反初始化宏的问题。(@ayedm1)
4. 代码质量
4.1 从头文件中移除了未实现和过时的 API 原型,使编译/链接层面更加清晰和准确。(#259,@ayedm1)
【NetXDUO网络协议栈】
https://github.com/eclipse-threa ... g/v6.5.1.202602_rel
本版本对 BSD Socket 支持进行了实质性改进,在 TLS/安全方面借助 RSA-PSS 和 X.509 增强取得了显著进展,并对网络和加密协议栈进行了多项针对性错误修复。
我们感谢 PR electronics、Rockwell Automation 和 T3S Solutions 对本版本所做的宝贵贡献。
1. 已解决的安全漏洞
以下链接和 CVE 编号将在漏洞正式发布后提供。在此期间,请参考相关提交以获取更多详细信息。
CVE-2026-xxxxx:清理路径在未打开的文件上无条件调用 fx_file_close()。提交:f7ac775
您可访问以下链接,获取之前已解决漏洞的相关公告。
2. 主要亮点
2.1 BSD Socket 增强
本版本贡献了三项 BSD Socket 改进:(#374, #375, #376,@mzgrebnak)
添加了 recvfromto 支持,以及更严格的 nx_bsd_inet_aton,该函数会拒绝除四个点分隔数字之外的地址格式。
select 改进:添加了异常通知支持,并修正了 nx_bsd_accept 的返回值。
Socket 选项:现在支持 SO_LINGER,并且 nx_bsd_setsockopt 已与 nx_bsd_getsockopt 对齐以保持一致。
2.2 TLS 和安全改进
RSA-PSS 签名验证:添加了 RSA-PSS(RFC 8017 §8.1)签名验证支持,从而实现了 RFC 8446 §4.2.3 所要求的 TLS 1.3 与 RSA 证书的合规性。(#377,@EdouardMALOT)
ASN.1 GeneralizedTime:X.509 证书解析现在除 UTCTime 外还支持 GeneralizedTime 格式,并且 notBefore 和 notAfter 字段现在可以使用不同的时间格式。(#267,@sjscymru)
PSK 修复:修正了 PSK 实现中的多个问题,包括 ClientKeyExchange 中的 PSK 标识默认为第一个存储条目而非匹配条目的错误。(#386,@fdesbiens,基于 @tkEmLogic 在 #379 中的初步工作)
HKDF 修复:在 _nx_crypto_method_hkdf_init 中从 key_size_in_bits 派生 nx_crypto_hkdf_ikm_length 时的移位方向已从左移修正为右移。(#265,@sjscymru)
3. 其他错误修复
3.1 FTP 服务器:登出回调现在会在客户端超时时被一致调用,与客户端断开连接时的行为保持一致。(#372,@vb-linetco)
3.2 修复了启用 NX_DEBUG 时的编译错误。(#252,@madsknielsen)
|
|