0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

HPM SDK 1.6.0 FreeRTOS LTS更改及适配指南

先楫半导体HPMicro 2024-07-06 08:17 次阅读

1、HPM_SDK FreeRTOS LTS特性总览

HPM SDK V1.6.0中FreeRTOS升级前后特性支持对比:

特性

V10.4.4

LTS 202210.01

中断抢占

RISCV浮点扩展支持

RISCV中断向量模式支持

×

Tickless mode支持

×

DSP扩展支持

×

二、FreeRTOS新特性适配

2.1 支持tickless模式

HPM_SDK1.6.0中使能了FreeRTOS的tickless模式,根据SOC进入低功耗模式的级别不同,分为wait模式和stop模式。

使能wait模式:在CMakeLists.txt中增加set(CONFIG_FREERTOS_TICKLESS 1),参考例程:samples\rtos\freertos\freertos_tickless_wait_mode

set(CONFIG_FREERTOS 1)

set(CONFIG_FREERTOS_TICKLESS 1)

使能stop模式:在CMakeLists.txt中增加set(CONFIG_FREERTOS_TICKLESS 1)以及set(CONFIG_FREERTOS_TICKLESS_USE_STOP_MODE 1)参考例程:samples\rtos\freertos\freertos_tickless_stop_mode。

Set(CONFIG FREERTOS 1)

Set(CONFIG FREERTOS TICKLESS 1)

Set(CONFIG FREERTOS TICKLESS USE STOP MODE 1)

两种模式区别:

1. Wait模式下,只有CPU会进入低功耗模式,CPU核心时钟会被关闭。但在收到中断时 CPU 能够立即唤醒进行处理。不会影响外设和SOC其他模块的工作状态。理论上会影响中断响应的实时性,除此外不会有其他影响。

2. Stop模式下,CPU会进入低功耗模式,并且会触发SOC的低功耗状态,允许关闭更多的资源,且提供灵活的配置选项。除了会影响中断响应的实时性外,一些外设的功能可能会受影响。

关于低功耗两种模式差异的详细解释,开发者可以查看UM手册的低功耗管理章节。

2.2riscv中断向量模式

在CMakeLists.txt中将

sdk_compile_definitions(-DUSE_NONVECTOR_MODE=1)

改为sdk_compile_definitions(-DUSE_NONVECTOR_MODE=0)或者将其注释掉或删除即可。

向量模式支持gcc、segger、IAR。

2.3临界段接口更改

FreeRTOS LTS202210.01 在RSIC-V中取消了vTaskEnterCriticalvTaskExitCritical接口,取而代之的是portENTER_CRITICALportEXIT_CRITICAL。用户需要将用户层代码进行修改以适配FreeRTOS的升级。

3059dd44-3b2d-11ef-a655-92fbcf53809c.png

2.4 增加了对DSP上下文的保存和恢复

在HPM_SDK V1.6.0中,可以在FreeRTOS中正常使用dsp扩展了。参考samples/dsp中CMakeLists中的配置。

2.5 portCRITICAL_NESTING_IN_TCB宏的值从1改为0

此改动是FreeRTOS的riscv port部分的改动,它会使任务TCB中原有的变量uxCriticalNesting被删除。如果用户的代码中使用了此变量,或者有手动解析TCB内容的代码,那么需要进行代码修改工作,使用全局变量xCriticalNesting可以替代TCB中的uxCriticalNesting;反之不需要进行修改。

307ef340-3b2d-11ef-a655-92fbcf53809c.png

三、在HPM_SDK1.6.0中使用之前版本的FreeRTOS

在HPM_SDK V1.6.0中使用之前版本的FreeRTOS,有两种方式:


方式一

直接将middleware/FreeRTOS目录替换成老版本的middleware/FreeRTOS目录。


方式二

在middleware目录下增加老版本的源码,此时SDK中同时存在两个版本的Free RTOS,依靠工程CMakeLists.txt中的配置进行选择。

1. 将老版本的middleware/FreeRTOS文件夹重命名为middleware/FreeRTOS_old,并复制到V1.6.0目录下。

2.修改middleware/CMakeLists.txt,在文档末尾增加add_subdirectory_ifdef(CONFIG_FREERTOS_OLD FreeRTOS_old)

3. 修改工程目录下的CMakeLists.txt,将set(CONFIG_FREERTOS 1)修改为set(CONFIG_FREERTOS_OLD 1),其他地方不需要修改。

3089c5fe-3b2d-11ef-a655-92fbcf53809c.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FreeRTOS
    +关注

    关注

    12

    文章

    483

    浏览量

    61702
  • SDK
    SDK
    +关注

    关注

    3

    文章

    1002

    浏览量

    45393
  • HPM
    HPM
    +关注

    关注

    1

    文章

    23

    浏览量

    7686
收藏 人收藏

    评论

    相关推荐

    如何使用XR806适配最新鸿蒙3.0_LTS

    如何使用XR806适配最新鸿蒙3.0_LTS
    发表于 12-29 06:06

    具有高性能MCU配套的HPM SDK使用指南

    HPM SDK使用指南
    发表于 06-05 07:51

    HPM SDK Linux开发环境搭建指南

    HPM SDK是一个基于宽松使用许可(BSD 3-Clause)完全开源的综合性软件支持包,帮助用户使用先楫半导体基于RISC-V内核的MCU简化和加快应用开发。 HPM SDK
    发表于 06-08 13:59

    先楫hpm_sdk使用vscode开发

    一、概述 先楫的hpm_sdk,对于习惯用keil的开发者可能不太习惯,但是从开发角度上看,是比较灵活的,可以给开发者一定的发挥空间。该sdk支持cmake构建,可以在多个支持cmake的平台构建
    发表于 06-24 20:19

    FreeRTOS实时内核使用指南-中文

    FreeRTOS实时内核使用指南-中文版,Using the FreeRTOS Real Time Kernel - A Practical Guide的中文版本
    发表于 07-13 15:11 120次下载

    FreeRTOS 使用指南

    FreeRTOS 使用指南
    发表于 10-24 13:37 25次下载
    <b class='flag-5'>FreeRTOS</b> 使用<b class='flag-5'>指南</b>

    UM-WI-046 DA16200 DA16600 FreeRTOS SDK 程序员指南

    UM-WI-046 DA16200 DA16600 FreeRTOS SDK 程序员指南
    发表于 01-09 19:16 0次下载
    UM-WI-046 DA16200 DA16600 <b class='flag-5'>FreeRTOS</b> <b class='flag-5'>SDK</b> 程序员<b class='flag-5'>指南</b>

    HPM SDK指南 | 我的板子我做主!

    本文介绍了基于HPMSDK如何新建一个新的工程供用户项目开发,包括HPMSDK代码结构介绍,新BOARD适配驱动运行以及新工程的建立和注意事项。先楫半导体面向用户同时提供HPMSDK的集成工具集
    的头像 发表于 12-12 17:56 4315次阅读
    <b class='flag-5'>HPM</b> <b class='flag-5'>SDK</b><b class='flag-5'>指南</b> | 我的板子我做主!

    UM-WI-046 DA16200 DA16600 FreeRTOS SDK 程序员指南

    UM-WI-046 DA16200 DA16600 FreeRTOS SDK 程序员指南
    发表于 06-30 19:09 0次下载
    UM-WI-046 DA16200 DA16600 <b class='flag-5'>FreeRTOS</b> <b class='flag-5'>SDK</b> 程序员<b class='flag-5'>指南</b>

    [HPM杂谈]你想要了解的先楫hpm_sdk开发都在这里系列 (二)

    一、概述在上一篇杂谈文章《[HPM杂谈]你想要了解的先楫hpm_sdk开发都在这里系列(一)》,大概分析了先楫通用单片机开发与其他国产单片机的开发差异,以及开发优劣势。刚好在这个月底,先楫官方发布了
    的头像 发表于 10-12 08:18 1411次阅读
    [<b class='flag-5'>HPM</b>杂谈]你想要了解的先楫<b class='flag-5'>hpm_sdk</b>开发都在这里系列 (二)

    先楫半导体hpm_sdk v1.5.0正式发布!

    可以将当前app所使用到hpm_sdk的文件复制到app本地, 同时更新app的CMakeLists.txt使之使用本地化之后的hpm_sdk
    的头像 发表于 04-08 10:02 728次阅读
    先楫半导体<b class='flag-5'>hpm_sdk</b> v1.5.0正式发布!

    先楫半导体 hpm_sdk v1.5.0 正式发布

    先楫半导体 hpm_sdk v1.5.0 正式发布
    的头像 发表于 04-12 08:17 405次阅读
    先楫半导体 <b class='flag-5'>hpm_sdk</b> v1.5.0 正式发布

    先楫半导体hpm_sdk v1.6.0上线

    HPMSDKv1.6.0上线啦!百度网盘链接:https://pan.baidu.com/s/1RaYHOD7xk7fnotmgLpoAlA?pwd=xk2n提取码:xk2n版本更新概况新增产品支持
    的头像 发表于 07-02 08:17 339次阅读
    先楫半导体<b class='flag-5'>hpm_sdk</b> v<b class='flag-5'>1.6.0</b>上线

    RT-Thread BSP v1.6.0 发布 | 拓展连接

    增加了对SD3.0和eMMC5.1速度模式的支持版本更新(相对于BSPv1.6.0)适配hpm_sdkv1.6.0新增HPM6E00EVK开发板支持更新了如下驱
    的头像 发表于 07-26 14:37 224次阅读
    RT-Thread BSP v<b class='flag-5'>1.6.0</b> 发布 | 拓展连接

    先楫半导体hpm_apps v1.6.0上线

    先楫半导体hpm_apps v1.6.0上线
    的头像 发表于 08-02 08:18 278次阅读
    先楫半导体<b class='flag-5'>hpm</b>_apps v<b class='flag-5'>1.6.0</b>上线