版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
现在很多MCU都配套有软件包,不再像以前那样从零(汇编、寄存器)开始了。
而本文给大家描述的瑞萨MCU也是通过灵活软件包(FSP)进行快速初始化外设,下面就给大家讲讲FSP灵活软件包那些重要的内容。FSP介绍FSP:FlexibleSoftwarePackage,即瑞萨MCU的软件包,类似于KeilMDK中需要安装的软件包(Keil.STM32F1xx_DFP.2.4.0.pack)。瑞萨灵活软件包(FSP)是一个灵活配置的软件包,旨在提供易于使用、可扩展、高质量的嵌入式系统设计软件。它适用于RA系列的MCU,提供了统一直观的API,并有详细的解释和例程应用,可以按照客户不同的需求自动生成相应驱动程序。启动文件说明启动文件是程序上电复位后执行的第一个程序。它一般包括如下几个:1.初始化堆栈2.使能FPU3.定位中断向量表4.配置系统时钟5.启用CORTEX-M33栈监视器6.初始化C语言运行环境7.初始化变量SystemCoreClock,这个变量存放的是处理器时钟的频率8.初始化用于触发NVIC中断的ELC(事件链接控制)9.BSP初始化初始化堆栈D三初始化堆栈1、栈区(Stack)一种顺序数据结构,满足后进先出原则。由编译器自动分配释放,存放函数的参数值,局部变量的值等。栈特别方便用来保存/恢复调用现场。在函数被调用时,其参数也会被压入发起调用的进程栈中,并待到调用结束后,函数的返回值也会被存放回栈中。如果函数调用时,如果函数参数和局部变量较多,寄存器放不下,则需要适当增加栈区的大小。2、堆区(heap)通常由程序员手动分配,使用malloc和free进行分配和释放。注意,使用完需及时释放(free),否则容易造成内存泄漏。3、e2Studio中堆栈的设置宏“BSP_CFG_STACK_MAIN_BYTES”可以在FSPConfiguration的“BSP”属性栏中的“RACommon”中通过修改“Mainstacksize”设置,默认为1KB(0x400Byte)。宏“BSP_CFG_HEAP_BYTES”可以在FSPConfiguration的“BSP”属性栏中的“RACommon”中通过修改“Heapsize”设置,默认为1KB(0x400Byte)。如下图所示。
堆栈区的大小设置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__”告诉编译器,这个变量会被使用,即使在编译器优化时没有被显式地调用。这个属性可以防止编译器将未使用的函数或变量优化掉,确保它们在程序中存在。
堆栈区数组属性修饰代码中的“BSP_ALIGN_VARIABLE(BSP_STACK_ALIGNMENT)”,宏展开后为“__attribute__((aligned(8)))”,代表堆栈区在分配时,会按照8字节对齐方式进行。__attribute__((weak)):用户可以在用户文件中重新定义一个同名函数,最终编译器编译的时候,会选择用户定义的函数,如果用户没有重新定义这个函数,那么编译器就会执行_weak声明的函数,并且编译器不会报错。所以我们可以在别的地方定义一个相同名字的函数。该函数不能在同一个.C文件中。函数属性宏定义中断向量表定义一个中断向量指针数组__Vectors[16],将此表放入到“.fixed_vectors”的输入段中。
中断向量表定义入口程序系统上电或复位后直接执行入口函数Reset_Handler(),包括两个函数:SystemInit()和main()。SystemInit()主要是用BSP对系统进行初始化,随后通过main函数进入用户代码。BSP负责使MCU从复位状态进入到用户的应用程序。在到达用户的应用程序之前,BSP设置堆栈、时钟、中断、C语言运行环境和堆栈监视器。
入口函数调用系统初始化系统函数初始化内存函数分配通过e2
studio打开MemoryUsage,可以看到各段的定义名称,起止地址,占用容量大小、对齐方式等。也可以通过打开工程文件夹下\e2studio\Debug\*.map文件。这里对常用的段名做个说明:.bss:通常是指用来存放程序中未初始化的或者初始值为0的全局变量的一块内存区域。BSS是英文BlockStartedbySymbol的简称。BSS段属于静态内存分配。.data:数据段(datasegment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据段属于静态内存分配。码段:代码段(codesegment/textsegment)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 月饼黏土课件教学课件
- 整形护理课件教学课件
- 完整足球模块教案
- 临沂体育制造行业劳动合同范本
- 乳品行业入职合同样本
- 个人租车协议书城市通勤
- 交通运输服务协议书格式
- 会计主管劳动合同样本
- 井控管理十七项核心策略
- 会展活动合同纠纷案例分析
- 书法等级考试试题含答案一至九级
- 应急救援基地项目可行性研究报告
- 走马灯内部蜡烛距离与其旋转速度关系的探究实验假设
- 对讲产品行业分析报告
- 预防校园欺凌法治知识竞答题库及答案
- 2022级西学中班《中药学》考试试题
- 意大利(百得)TBG 系列燃烧机说明书
- 2023年新课标I卷现代文阅读II《给儿子》讲评课件
- 2022-2023学年湖南省长沙市雅礼集团九年级(上)期中物理试卷
- 规范中C20-C80混凝土本构关系
- 幼儿园大班绘本《小熊不刷牙》 优质课件
评论
0/150
提交评论