跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
折叠
品牌标识

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YT MCAL
  4. 关于MCAL的USER mode的一些疑问

关于MCAL的USER mode的一些疑问

已定时 已固定 已锁定 已移动 YT MCAL
2 帖子 2 发布者 21 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • HAIYANGH 离线
    HAIYANGH 离线
    HAIYANG YunTu
    编写于 最后由 HAIYANG 编辑
    #1

    目前在使用MC0的MCAL代码时遇到了一些关于user mode support的一些问题请教一下;
    在使用IAR编译时,如果模块选择有user mode则需要自己手动添加user mode的宏定义如下:
    4dfba70d-38ea-4e2d-97cd-c67f398e5d0c-image.png
    94e88b23-4aac-4933-bf90-8580cb163f39-image.png
    添加完这些宏定义后,代码不会有报错信息;
    但是在使用mcal代码进行boot跳转时遇到了操作SCB->VTOR寄存器进hardfault的问题:
    62241d96-f705-4e33-9d21-f18448a07ad4-image.png
    最后定位到是因为定义了user mode,导致无法进入特权模式从而无法操作SCB寄存器导致的:
    995236de-138c-4dad-b8cd-d1c587de4972-image.png
    简单的修改方案是暂时屏蔽这段代码;
    后续我尝试把所有模块的user mode都关闭从而不需要user mode的宏定义时发现在关闭mcu的user mode时发生了另外的问题:
    8d279a4c-8098-4f3b-90f7-3919ee7216ea-image.png
    代码因为关闭定义进入如下另一个分支,直接进了memange handler:
    f52d31e7-44b8-4019-adb7-6b1b040f0250-image.png
    目前来说不知道这个问题怎么处理会好一些,请问大家有什么好的建议吗?

    1 条回复 最后回复
    0
    • jiankang_wangJ 离线
      jiankang_wangJ 离线
      jiankang_wang YunTu
      编写于 最后由 编辑
      #2

      SetRcu 函数是Mcu初始化调用的第一个写寄存器操作的函数。这里进 memange handler 应该是你前面定义的宏,导致Startup里开启了非特权模式导致的。
      在Mcal里进行boot跳转,可以和Mcal的驱动一样,使用Osif函数包一下,应该可以解决问题

      1 条回复 最后回复
      0

    • 云途论坛规则/Yuntu Forum Rules

      发帖前请查看

    • YCT离线License申请流程

      帮助没办法联网的电脑使用YCT

    • YT CONFIG TOOL调查问卷

      帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...

    • can
      16
      demo
      15
      uds
      7
      lin stack
      6
      fbl
      5
      yt-link
      5
      md14
      4
      adc模块
      3
      Online Users
      • 登录

      • 登录或注册以进行搜索。
      • 第一个帖子
        最后一个帖子
      0
      • 版块
      • 最新
      • 标签
      • 热门