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

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

3天内不再提示

FSP在e2 studio下生成的启动文件的代码说明

瑞萨MCU小百科 来源:瑞萨嵌入式小百科 作者:Prowess 2023-10-07 12:18 次阅读

FSP介绍

瑞萨灵活软件包(FSP)是一个灵活配置的软件包,旨在提供易于使用、可扩展、高质量的嵌入式系统设计软件。它适用于RA系列的MCU,提供了统一直观的API,并有详细的解释和例程应用,可以按照客户不同的需求自动生成相应驱动程序。

启动文件说明

启动文件是程序上电复位后执行的第一个程序。它一般包括如下几个:

1.初始化堆栈

2.使能FPU

3.定位中断向量表

4.配置系统时钟

5.启用CORTEX-M33栈监视器

6.初始化C语言运行环境

7.初始化变量SystemCoreClock,这个变量存放的是处理器时钟的频率

8.初始化用于触发NVIC中断的ELC(事件链接控制)

9.BSP初始化

初始化堆栈

3.1 栈区(Stack)

一种顺序数据结构,满足后进先出原则。由编译器自动分配释放,存放函数的参数值,局部变量的值等。栈特别方便用来保存/恢复调用现场。在函数被调用时,其参数也会被压入发起调用的进程栈中,并待到调用结束后,函数的返回值也会被存放回栈中。如果函数调用时,如果函数参数和局部变量较多,寄存器放不下,则需要适当增加栈区的大小。

3.2 堆区(heap)

通常由程序员手动分配,使用malloc和free进行分配和释放。注意,使用完需及时释放(free),否则容易造成内存泄漏。

3.3 e2 Studio中堆栈的设置

宏“BSP_CFG_STACK_MAIN_BYTES”可以在FSP Configuration的“BSP”属性栏中的“RA Common”中通过修改“Main stack size”设置,默认为1KB(0x400 Byte)。

宏“BSP_CFG_HEAP_BYTES”可以在FSP Configuration的“BSP”属性栏中的“RA Common”中通过修改“Heap size”设置,默认为1KB(0x400 Byte)。如图3-3-1所示。

9abafd96-64c6-11ee-939d-92fbcf53809c.png

图3-3-1 堆栈区的大小设置

g_main_stack和g_heap分别代表主栈和堆区的数组,后面还有属性修饰。

“BSP_PLACE_IN_SECTION(BSP_SECTION_STACK)”,宏展开后为“__attribute__((section( “.stack”))) __attribute__((__used__))”

“BSP_PLACE_IN_SECTION(BSP_SECTION_HEAP)”,宏展开后为“__attribute__((section( “.heap”))) __attribute__((__used__))”

其修饰属性解释如下:

__attribute__((section( “参数名”))):可以将变量定义到指定的输入段“参数名”中。

__attribute__((__used__)):参数“__used__”告诉编译器,这个变量会被使用,即使在编译器优化时没有被显式地调用。这个属性可以防止编译器将未使用的函数或变量优化掉,确保它们在程序中存在。

9ad478e8-64c6-11ee-939d-92fbcf53809c.png

图3-3-2 堆栈区数组属性修饰

代码中的“BSP_ALIGN_VARIABLE(BSP_STACK_ALIGNMENT)” ,宏展开后为“__attribute__((aligned(8)))”,代表堆栈区在分配时,会按照8字节对齐方式进行。

__attribute__((weak)):用户可以在用户文件中重新定义一个同名函数,最终编译器编译的时候,会选择用户定义的函数,如果用户没有重新定义这个函数,那么编译器就会执行_weak 声明的函数,并且编译器不会报错。所以我们可以在别的地方定义一个相同名字的函数。该函数不能在同一个.C文件中。

9ae5268e-64c6-11ee-939d-92fbcf53809c.png

图3-3-2 函数属性宏定义

中断向量表

定义一个中断向量指针数组__Vectors[16],将此表放入到“.fixed_vectors”的输入段中。

9afa0fea-64c6-11ee-939d-92fbcf53809c.png

图4-1 中断向量表定义

入口程序

系统上电或复位后直接执行入口函数Reset_Handler(),包括两个函数:SystemInit()和main()。SystemInit()主要是用BSP对系统进行初始化,随后通过main函数进入用户代码。

BSP负责使MCU从复位状态进入到用户的应用程序。在到达用户的应用程序之前,BSP设置堆栈、时钟、中断、C语言运行环境和堆栈监视器。

9b104c6a-64c6-11ee-939d-92fbcf53809c.png

图5-1 入口函数调用

系统初始化

9b1bba00-64c6-11ee-939d-92fbcf53809c.png9b2ddbf4-64c6-11ee-939d-92fbcf53809c.png9b479bc0-64c6-11ee-939d-92fbcf53809c.png9b689a00-64c6-11ee-939d-92fbcf53809c.png9b921362-64c6-11ee-939d-92fbcf53809c.png9ba1ddc4-64c6-11ee-939d-92fbcf53809c.png

图6-1 系统函数初始化

No.1

七、内存函数分配

通过e2 studio打开Memory Usage,可以看到各段的定义名称,起止地址,占用容量大小、对齐方式等。也可以通过打开工程文件夹下e2studioDebug*.map文件。

这里对常用的段名做个说明:

.bss:通常是指用来存放程序中未初始化的或者初始值为0的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。

.data:数据段(data segment) 通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据段属于静态 内存分配。

码段:代码段 (code segment/text segment) 通常是指用来存放程序执行代码的一块内存区域。这部分区域的大小在程序运行前就已经确定,并且内存区域通常属于只读,某些架构也允许代码段为可写,即允许修改程序。在代码段中,也有可能包含一些只读的常数变量,例如字符串常量等。

9bb26176-64c6-11ee-939d-92fbcf53809c.png

图7-1 内存函数分配

结论

通过本篇文章的介绍,相信大家对RA MCU的启动过程以及e2 studio的操作有了一定的了解,有兴趣的同学也可以深入学习下。






审核编辑:刘清

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

    关注

    146

    文章

    17026

    浏览量

    350417
  • C语言
    +关注

    关注

    180

    文章

    7601

    浏览量

    136284
  • 中断向量
    +关注

    关注

    0

    文章

    14

    浏览量

    8932
  • FSP
    FSP
    +关注

    关注

    0

    文章

    34

    浏览量

    7114
  • Cortex-M33
    +关注

    关注

    0

    文章

    13

    浏览量

    1910

原文标题:FSP库启动文件说明

文章出处:【微信号:瑞萨MCU小百科,微信公众号:瑞萨MCU小百科】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于RA8D1的LVGL FSP配置以及使用介绍

    本文介绍由e2 studio自动生成FSP LVGL pack的使用说明,Pack的生成方法可
    的头像 发表于 03-13 13:48 1814次阅读
    基于RA8D1的LVGL <b class='flag-5'>FSP</b>配置以及使用介绍

    e2studio开发环境搭建方案

    RA 系列 MCU 设备的项目。e2 studio 集成系统开发环境提供一个熟悉的开发控制台,从该控制台中,可以管理项目创建、模块选择和配置、代码开发、代码
    的头像 发表于 12-19 09:23 1w次阅读
    <b class='flag-5'>e2studio</b>开发环境搭建方案

    瑞萨e2studio(1)----瑞萨芯片之搭建FSP环境

    应用程序接口 (API) 的选择、配置、代码生成代码开发,从而显著加速开发过程。 e2studio软件可以官网下进行下载。 下载地址:h
    发表于 09-30 15:28

    e2studio更换toolchain和fsp版本

    e2studio添加或更新toolchain前言不同项目依赖的FSP版本不一样,于是就有了使用不同FSP版本和toolchain的需求,e2stu
    发表于 11-16 18:06

    【野火启明6M5开发板体验】+ e2 FSP环境搭建

    代码生成代码开发,从而显著加速开发过程。e2studio软件可以官网下进行下载。https://www.renesas.cn/cn/z
    发表于 12-29 17:02

    瑞萨e2studio(1)----瑞萨芯片之搭建FSP环境

    e2studio是瑞萨的集成开发环境,FSP 提供了众多可提高效率的工具,用于开发针对瑞萨电子RA 系列 MCU 设备的项目。 e2 studio 集成系统开发环境提供一个熟悉的开发控
    的头像 发表于 11-14 17:08 1962次阅读
    瑞萨<b class='flag-5'>e2studio</b>(1)----瑞萨芯片之搭建<b class='flag-5'>FSP</b>环境

    Renesas RA Family e2 studio 2022-07 或更高版本快速入门指南

    Renesas RA Family e2 studio 2022-07 或更高版本快速入门指南
    发表于 01-10 18:53 0次下载
    Renesas RA Family <b class='flag-5'>e2</b> <b class='flag-5'>studio</b> 2022-07 或更高版本快速入门指南

    E1/E20/E2 Emulator, E2 Emulator Lite 用户手册附加文件(连接RX设备注意事项)

    E1/E20/E2 Emulator, E2 Emulator Lite 用户手册附加文件(连接RX设备注意事项)
    发表于 01-10 19:13 3次下载
    <b class='flag-5'>E</b>1/<b class='flag-5'>E</b>20/<b class='flag-5'>E2</b> Emulator, <b class='flag-5'>E2</b> Emulator Lite 用户手册附加<b class='flag-5'>文件</b>(连接RX设备注意事项)

    Renesas Synergy e2 studio v2021-10 或更高版本快速入门指南

    Renesas Synergy e2 studio v2021-10 或更高版本快速入门指南
    发表于 01-11 18:54 0次下载
    Renesas Synergy <b class='flag-5'>e2</b> <b class='flag-5'>studio</b> v2021-10 或更高版本快速入门指南

    瑞萨e2studio----更新FSP版本

    本篇文章主要介绍如何在瑞萨的FSP更新新版本之后,同步更新e2studio软件中的FSP版本。
    的头像 发表于 12-07 10:47 2286次阅读
    瑞萨<b class='flag-5'>e2studio</b>----更新<b class='flag-5'>FSP</b>版本

    使用瑞萨e² studio FSP基于RA2E1定时器配置PWM输出

    使用瑞萨e² studio FSP基于RA2E1定时器配置PWM输出
    的头像 发表于 08-01 00:13 679次阅读
    使用瑞萨<b class='flag-5'>e</b>² <b class='flag-5'>studio</b> <b class='flag-5'>FSP</b>基于RA<b class='flag-5'>2E</b>1定时器配置PWM输出

    e2 studio 2024-01 RX插件智能配置程序发布说明

    电子发烧友网站提供《e2 studio 2024-01 RX插件智能配置程序发布说明.pdf》资料免费下载
    发表于 01-30 09:44 0次下载
    <b class='flag-5'>e2</b> <b class='flag-5'>studio</b> 2024-01 RX插件智能配置程序发布<b class='flag-5'>说明</b>

    适用于e2 studio 2024-01 RH850插件的智能配置程序发布说明

    电子发烧友网站提供《适用于e2 studio 2024-01 RH850插件的智能配置程序发布说明.pdf》资料免费下载
    发表于 01-30 09:41 0次下载
    适用于<b class='flag-5'>e2</b> <b class='flag-5'>studio</b> 2024-01 RH850插件的智能配置程序发布<b class='flag-5'>说明</b>

    FSP启动文件说明

    FSP启动文件说明
    的头像 发表于 06-04 08:06 405次阅读
    <b class='flag-5'>FSP</b>库<b class='flag-5'>启动</b><b class='flag-5'>文件</b><b class='flag-5'>说明</b>

    e2+fsp+qe安装说明

    电子发烧友网站提供《e2+fsp+qe安装说明.docx》资料免费下载
    发表于 09-29 11:07 0次下载