欢迎来到优知文库! | 帮助中心 分享价值,成长自我!
优知文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 优知文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    MCU灵活软件包启动文件说明.docx

    • 资源ID:1510792       资源大小:189.26KB        全文页数:11页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录
    二维码
    扫码关注公众号登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    MCU灵活软件包启动文件说明.docx

    现在很多MCU都配套有软件包,不再像以前那样从零(汇编、寄存器)开始了。而本文给大家描述的瑞萨MCU也是通过灵活软件包(FSP)进行快速初始化外设,下面就给大家讲讲FSP灵活软件包那些重要的内容。FSP介绍FSP:F1.exib1.eSoftwarePackage,即瑞萨MCU的软件包,类似于Kei1.MDK中需要安装的软件包(Kei1.STM32F1xx,DFP.2.4.0.pack).瑞萨灵活软件包(FSP)是一个灵活配置的软件包,旨在提供易于使用、可扩展、高质量的嵌入式系统设计软件.它适用于RA系列的MCU,提供了统一直观的API,并有详细的解释和例程应用,可以按照客户不同的需求自动生成相应驱动程序.启动文件说明启动文件是程序上电发位后执行的第一个程序。它一般包括如下几个:1.初始化堆栈2.使能FPU3.定位中断向*友九配置系统时钟5.启HC0RTEX-M33栈篇视器6.初始化。语言运行环境7.初始化变量SysiomCoreC1.ock.这个变量存放的是处理潺时钟的频率8.初始化用于触发NY1.C中断的E1.C(事件琏按控制)9.BSP初始化初始化堆栈初始化堆栈1、栈区(Stack)一种喉序数据结构,满足后进先出原则.由陶译器自动分配择放,存放函数的参数值,局部变量的值等。栈特别方便用来保存/恢g调用现场.在函数被调用时,其参数也会被压入发起调用的进程栈中,并待到调用结束后,函数的返回值也会被存放回栈中,如果函数调用时,如果函数参数和局部变St较多,寄存器放不下,则需要适当增加栈区的大小。2、堆区(heap)通常由程序员手动分配,使用ma1.1.oc和free进行分配和择放.注意,使用完需及时择放(free),否则容易造成内存泄漏。3、c2Studio中堆栈的设JK宏"BSP一CFG_STACK_MAIN_BYTES"可以在FSPConfiguration的mBSPoW性栏中的"RACOmmOn"中通过修改"Mainstacksize”设置,默认为IKB(0x400Byte)宏"BSPFG_HEAP_BYTES"可以在FSPConfiguration的"BSP"帐性栏中的"RACommon”中通过修改“Heapsize”设置,/认为IKB(OX400Byte).如下图所示.*Prob1.emsOComo1.eProperties×9SmartBroWWfCSrnartM4nu1.ar<*Detug三CMate<nWyMCK-RA6T2SettingsPropertyVdIUeOFSIrcgntrrFtingt>BkxkProtectionSettings(BPS)>Pcffnam(BkxkProtectionSettings(PSPS)S1.AftupC<MheUneSize22ByteTFUMath1.ibEnab1.edM4inCXciIIdtorWaitTime8163cyc1.etvRACommonM>nU(ksize0x400幡的大小Hwpwe(byte)(MOOG的大小MCUVymV)3300Prme<efcheckingErwb1.edAWeHFapReturnFSPJRR.ASSfRDONError1.ogNoError1.ogCkxkRrgkt¼notRcw<V1.cduringSudUPDtMbkdMainOi1.Ut<xPopu1.atedRopuUtedPFSProtectEfwb1.edCRuntimeEnab1.edEjrtyBSPInitia1.izationDitabMMnCXciItotorC1.ockSourceCryUiIocRewnatorSubctockPopuUtrdNotPopuMtcdSubckx1.cDrZ(Df1.ve(4pMiUfe*3UtyvariesbyMCU)Ssn(IarWN(Mrna1.modeSutxiockSUMZitkmTime(m)1000堆栈区的大小设置g_main_stack和g_heap分别代表主枝和堆区的数组后面还有属性修饰,"BSP_P1.ACE_IN_SECTION(BSP_SECTI(M_STACK)",宏展开后为“_attribute_(section(".stack")_attribute_(_used_)"“BSP_P1.ACE_IN-SECTION(BSP_SECT1.ON_HEAP)”,宏展开后为“_attribute_(sectio11(".heap")_attribute_(_used_)”其修饰属性解理如下:_attribute_J(SeCtIoM.叁数名"):可以将变量定义到指定的输入段"参数名"中.attribute.(used.):参数"used”告诉编译器,这个变班会被使用,即使在编许器优化时没有被显式地调用.这个同性可以防止编译监将未使用的函数或变量优化掉,确保它们在程序中存在.堆极区数组属性修饰代码中的"BSP_AuGN_VARIAB1.E(8SP_$TACK_AUGNMENT)”,宏展开后为、_attribute_(a1.igned(8)".代表堆栈区在分配时,会按照8字节对齐方式进行.attribute_(weak);用户可以在用户文件中正新定义一个同名函数.最终编译器编译的时候,会选择用户定义的函数.如果用户没有重新定义这个函数,那么编译器就会执行-Weak声明的函数,并且编译器不会报错,所以我们可以在别的地方定义一个相同名字的函数。该函数不能在同一个C文件中.函数属性宏定义中断向量表定义一个中断向量指针数组一Vectors6,将此表放入到.fixed_VeCtOrS”的输入段中.中断向量表定义入口程序系统上电或复位后直接执行入口函数Reset_Hand1.er(),包括两个函数:SyStem1.nit()和main().SyStem1.nit()主要是用BSP对系统进行初始化,随后通过main函数进入用户代码.BSP负责使MCU从复位状态进入到用户的应用程序。在到达用户的应用程序之前,BSP设苴堆栈、时钟、中断、C语言运行环境和堆栈监视器.M.'-9AS13ruti,:4b«XVJUIOfte.>1.tinS>tutpCintZisX1.¥A1.1.4c1.y.QvoidMaset9Mand1.ar(void)1.n1.1.1.1.>yatvausingB5P./f7tmXnKf>1C4X1u*rafUc4tio<./M1.n()jwi1.(1)(ytntin1.t*/入口函数调用系统初始化/SMICoMexM15fi,i0IXMHt*tt*W*uw11<<vi>3oaFo-1<.mv'xifAJM.*t,ezrtv*nri:Nt>>Mmav.1.vit«4B-*w'1.*em'w'一,一.m»4iWM»DWwa/UK-MMM'ZM>-4M*»初始化处理If时”频率R.k1.R.MgE"-CX3Ia1.AcS<mc*kc1.WJfeuie>2_tIOrA<»i1)dif1f»5»_cro_rrs,r»oTicTIf卬TZ5t11ZW:1.:>I1.<BJCFOJQ,3SDCUHEiX>E”K-,n_rtij»:->mr»3-w«wr.io.rwrt.rrsw.orrwr1f1.HM3K>>MN0<nt3scmt>iv«w.xjmjrs«_cry5CT,Md1.f/三ft*rae1.KnfC->KM".E3-VHVTt*-RXrIRMFte91.trF0tctCah1.(AS/MAffc>TKT3三<fftfB1.Jh.MKWB.WBWK.MF.>m*1.tyMK(,«»4&rI1.BSJHm53fJ*KVW5MyIWTCIrW始化E1.C事件It发NV1.C中断/像行得定BSPK初始化.设有的话am为空.系统函数初始化内存函数分配通过e2studio打开MemoryUsage,可以看到各段的定义.名称.起止地址,占用容敬大小、对齐方式等。也可以通过打开工程文件夹be2studioDebug*.map文件.这里对常用的段名做个说明I.bss通常是指用来存放程序中未初始化的或者初始值为。的全局变量的一块内存区域,BSS是英文B1.ockStartedbySymbo1.的简称。BSS段属于静态内存分配。.data,数据段(datasegment)通常是指用来存放程序中已初始化的全同变量的一块内存区域,数据段属于蟀态内存分配。码段:代码段(codesegmentte×tsegment)通常是指用未存放程序执行代码的一块内存区域。这部分区域的大小在程序运行前就己经确定,并且内存区域通常属于只读,某些架构也允许代码段为可写,即允许修改程序。在代码段中,也有可能包含一些只读的常数变量例如字符串常盘等.内存函数分配

    注意事项

    本文(MCU灵活软件包启动文件说明.docx)为本站会员(王**)主动上传,优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知优知文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 yzwku网站版权所有

    经营许可证编号:宁ICP备2022001189号-2

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知优知文库网,我们立即给予删除!

    收起
    展开