Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Submit feedback
    • Contribute to GitLab
  • Sign in
M
mfang2.0
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 92
    • Issues 92
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 1
    • Merge Requests 1
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • 魔方Web开发组
  • mfang2.0
  • Issues
  • #565

Closed
Open
Opened Sep 14, 2023 by 赵怀孙@zhaohuaisun
  • Report abuse
  • New issue
Report abuse New issue

[FEAT] FM507 魔方 NVIC 初始化配置函数整合 与 外设使能关联NVIC函数调用

1、代码文件呈现形式

(1)将所有外设所涉及的NVIC初始化配置封装函数,统一放入mf_nvic.c文件中;

(2)其NVIC初始化函数声明放入mf_nvic.h中;

(3)涉及中断的所有外设的c文件均要包含mf_nvic.h头文件,使得各外设能够调用相应的NVIC初始化封装函数.

2、NVIC初始化封装函数呈现形式

按中断向量表的命名去除IRQHandler方式,进行NVIC初始化封装函数命名,示例:

(1)多外设共用同一中断向量时,以TAU_PGL_IRQHandler对应的NVIC初始化封装函数为例:

`/**

  • @brief TAU_PGL NVIC初始化

  • @param void

  • @retval void */ void MF_TAU_PGL_NVIC_Init(void) { FL_NVIC_ConfigTypeDef NVIC_Config = { 0x0 };

    /===========================配置界面选择=================================/ /* .preemptPriority: 0、1、2、3 / /========================================================================*/

    NVIC_Config.preemptPriority = 2; FL_NVIC_Init(&NVIC_Config, TAU_PGL_IRQn); }`

(2)ATIM_IRQHandler对应的NVIC初始化封装函数为:

`/**

  • @brief ATIM NVIC初始化

  • @param void

  • @retval void */ void MF_ATIM_NVIC_Init(void) { FL_NVIC_ConfigTypeDef NVIC_Config = { 0x0 };

    /===========================配置界面选择=================================/ /* .preemptPriority: 0、1、2、3 / /========================================================================*/

    NVIC_Config.preemptPriority = 2; FL_NVIC_Init(&NVIC_Config, ATIM_IRQn); }`

3、代码调用呈现形式 在相应外设的初始化函数中调用该NVIC初始化封装函数

`/**

  • @brief TAU 初始化

  • @param void

  • @retval void / void MF_TAU_Init(void) { / 输入通道配置 */ MF_TAU_IO_Input_Init();

    /* 输出通道配置 */ MF_TAU_IO_Output_Init();

    /* TAU 基础配置 */ MF_TAU_Common_Init();

    /* TAU 中断配置 */ MF_TAU_Interrupt_Init();

    /配置NVIC/ MF_TAU_PGL_NVIC_Init();

    /* 使能输出比较 */ FL_TAU_EnableOutput(TAU00);

    /* 启动定时器 TAU00*/ FL_TAU_Enable(TAU00); }`

4、魔方界面NVIC外设使能选项呈现形式及NVIC函数调用关系

(1)保留该外设配置选项模式,每个外设单独分开,即使部分外设共用同一中断向量;

(2)当在NVIC配置界面下开启某个外设,则在该外设的初始化程序中就会调用该NVIC初始化封装函数,如第三点所示;

(3)多外设共用同一中断向量的可以重复调用相应的NVIC初始化封装函数。

image

Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
2
Labels
已跟进 测试中
Assign labels
  • View project labels
Reference: fmsh-web-develop/mfang2.0#565