当前位置: 首页 > news >正文 免费高清图片素材网站有哪些网站建设有什么理论依据 news 2025/10/24 22:16:56 免费高清图片素材网站有哪些,网站建设有什么理论依据,搜狗快速收录方法,凡科快图app单片机上电后执行的第一段代码 1.初始化堆栈指针 SP_initial_sp 2.初始化 PC 指针Reset_Handler 3.初始化中断向量表 4.配置系统时钟 5.调用 C 库函数_main 初始化用户堆栈#xff0c;然后进入 main 函数。 在正式讲解之前#xff0c;我们需要了解STM32的启动模式。 STM32的…单片机上电后执行的第一段代码 1.初始化堆栈指针 SP_initial_sp 2.初始化 PC 指针Reset_Handler 3.初始化中断向量表 4.配置系统时钟 5.调用 C 库函数_main 初始化用户堆栈然后进入 main 函数。 在正式讲解之前我们需要了解STM32的启动模式。 STM32的启动模式 手册可以在Keil中跳转查看 STM32的三种启动模式 首先要讲一下STM32的启动模式因为启动模式决定了向量表的位置STM32有三种启动模式 1. 主闪存存储器(Main Flash memory)启动 从STM32内置的Flash启动(0x0800 0000-0x0807 FFFF)一般我们使用JTAG或者SWD模式下载程序时就是下载到这个里面重启后也直接从这启动程序。以0x08000000 对应的内存为例则该块内存既可以通过0x00000000 操作也可以通过0x08000000 操作且都是操作的同一块内存。 2. 系统存储器(System memory)启动 从系统存储器启动(0x1FFFF000 - 0x1FFF F7FF)这种模式启动的程序功能是由厂家设置的。一般来说我们选用这种启动模式时是为了从串口下载程序因为在厂家提供的ISP程序中提供了串口下载程序的固件可以通过这个ISP程序将用户程序下载到系统的Flash中。以0x1FFFFFF0对应的内存为例则该块内存既可以通过0x00000000 操作也可以通过0x1FFFFFF0操作且都是操作的同一块内存。 3. 片上SRAM(Embedded SRAM)启动 从内置SRAM启动(0x2000 0000-0x3FFFFFFF)既然是SRAM自然也就没有程序存储的能力了这个模式一般用于程序调试。SRAM 只能通过0x20000000进行操作与上述两者不同。从SRAM 启动时需要在应用程序初始化代码中重新设置向量表的位置。 用户可以通过设置BOOT0和BOOT1的引脚电平状态来选择复位后的启动模式。 如下图所示 总结 启动模式只决定程序烧录的位置加载完程序之后会有一个重映射(映射到0x00000000地址位置)真正产生复位信号的时候CPU还是从开始位置执行。 值得注意的是STM32上电复位以后代码区都是从0x00000000开始的三种启动模式只是将各自存储空间的地址映射到0x00000000中。 STM32的启动文件分析 因为单片机上电启动过程主要是由汇编完成的因此STM32的启动的大部分内容都是在启动文件里。我用CubeMX生成的的启动文件是startup_stm32f103xb.s不管使用标准库还是使用HAL库启动文件都是差不多的。 1. Stack栈 栈的作用是用于局部变量函数调用函数形参等的开销栈的大小不能超过内部SRAM 的大小。当程序较大时需要修改栈的大小不然可能会出现的HardFault的错误。 第32行表示开辟栈的大小为 0X4001KBEQU是伪指令相当于C 中的 define。 第34行开辟一段可读可写数据空间ARER 伪指令表示下面将开始定义一个代码段或者数据段。此处是定义数据段。ARER 后面的关键字表示这个段的属性。段名为STACK可以任意命名NOINIT 表示不初始化READWRITE 表示可读可写ALIGN3表示按照 8 字节对齐。 第35行SPACE 用于分配大小等于 Stack_Size连续内存空间单位为字节。 第37行 __initial_sp表示栈顶地址。栈是由高向低生长的。 2. Heap堆 堆主要用来动态内存的分配像malloc()函数申请的内存就在堆中。 开辟堆的大小为 0X200512 字节名字为 HEAPNOINIT 即不初始化可读可写8字节对齐。__heap_base 表示对的起始地址__heap_limit 表示堆的结束地址。 3. 向量表 向量表是一个WORD 32 数组每个下标对应一种异常该下标元素的值则是该 ESR 的入口地址。向量表在地址空间中的位置是可以设置的通过 NVIC 中的一个重定位寄存器来指出向量表的地址。在复位后该寄存器的值为 0。因此在地址 0 即 FLASH 地址 0处必须包含一张向量表用于初始时的异常分配。 值得注意的是这里有个另类 0 号类型并不是什么入口地址而是给出了复位后 MSP 的初值后面会具体讲解。 第55行定义一块代码段段名字是RESETREADONLY 表示只读。 第56-58行使用EXPORT将3个标识符申明为可被外部引用声明 __Vectors、__Vectors_End 和__Vectors_Size 具有全局属性。 第60行__Vectors 表示向量表起始地址DCD 表示分配 1 个 4 字节的空间。每行 DCD 都会生成一个 4 字节的二进制代码中断向量表 存放的实际上是中断服务程序的入口地址。当异常也即是中断事件发生时CPU 的中断系统会将相应的入口地址赋值给 PC 程序计数器之后就开始执行中断服务程序。在60行之后依次定义了中断服务程序的入口地址。 第121行__Vectors_End 为向量表结束地址。 第123行__Vectors_Size则是向量表的大小向量表的大小是通过__Vectors 和__Vectors_End 相减得到的。 4. 复位程序 复位程序是系统上电后执行的第一个程序复位程序也是中断程序只是这个程序比较特殊因此单独提出来讲解。 第128行定义了一个服务程序PROC表示程序的开始。 第129行使用EXPORT将Reset_Handler申明为可被外部引用后面WEAK表示弱定义如果外部文件定义了该标号则首先引用该标号如果外部文件没有声明也不会出错。这里表示复位程序可以由用户在其他文件重新实现这种写法在HAL库中是很常见的。 第130-131行表示该标号来自外部文件SystemInit()是一个库函数在system_stm32f1xx.c中定义的__main 是一个标准的 C 库函数主要作用是初始化用户堆栈这个是由编译器完成的该函数最终会调用我们自己写的main函数从而进入C世界中。 第132行这是一条汇编指令表示从存储器中加载SystemInit到一个寄存器R0的地址中。 第133行汇编指令表示跳转到寄存器R0的地址并根据寄存器的 LSE 确定处理器的状态还要把跳转前的下条指令地址保存到 LR。 第134行和132行是一个意思表示从存储器中加载__main到一个寄存器R0的地址中。 第135行和133稍微不同这里跳转到至指定寄存器的地址后不会返回。 第136行和PROC是对应的表示程序的结束。 5. 中断服务程序 我们平时要使用哪个中断就需要编写相应的中断服务程序只是启动文件把这些函数留出来了但是内容都是空的真正的中断复服务程序需要我们在外部的 C 文件里面重新实现这里只是提前占了一个位置罢了。 这部分没啥好说的和服务程序类似的只需要注意‘B .’语句B表示跳转这里跳转到一个‘.’即表示无线循环。 6. 堆栈初始化 堆栈初始化是由一个IF条件来实现的MICROLIB的定义与否决定了堆栈的初始化方式。 这个定义是在Options-Target中设置的 这部分也没啥讲的需要注意的是ALIGN表示对指令或者数据存放的地址进行对齐缺省表示4字节对齐。 文章转载自: http://www.morning.lxctl.cn.gov.cn.lxctl.cn http://www.morning.qnxtz.cn.gov.cn.qnxtz.cn http://www.morning.srhqm.cn.gov.cn.srhqm.cn http://www.morning.jqlx.cn.gov.cn.jqlx.cn http://www.morning.lsgjf.cn.gov.cn.lsgjf.cn http://www.morning.qlckc.cn.gov.cn.qlckc.cn http://www.morning.frtb.cn.gov.cn.frtb.cn http://www.morning.zdfrg.cn.gov.cn.zdfrg.cn http://www.morning.wfjrl.cn.gov.cn.wfjrl.cn http://www.morning.kyjpg.cn.gov.cn.kyjpg.cn http://www.morning.wwthz.cn.gov.cn.wwthz.cn http://www.morning.lrybz.cn.gov.cn.lrybz.cn http://www.morning.lbbrw.cn.gov.cn.lbbrw.cn http://www.morning.bnylg.cn.gov.cn.bnylg.cn http://www.morning.hgcz.cn.gov.cn.hgcz.cn http://www.morning.gcszn.cn.gov.cn.gcszn.cn http://www.morning.xdhcr.cn.gov.cn.xdhcr.cn http://www.morning.pljdy.cn.gov.cn.pljdy.cn http://www.morning.xmtzk.cn.gov.cn.xmtzk.cn http://www.morning.nlkm.cn.gov.cn.nlkm.cn http://www.morning.qtyfb.cn.gov.cn.qtyfb.cn http://www.morning.pkpqh.cn.gov.cn.pkpqh.cn http://www.morning.mfct.cn.gov.cn.mfct.cn http://www.morning.tdcql.cn.gov.cn.tdcql.cn http://www.morning.cnwpb.cn.gov.cn.cnwpb.cn http://www.morning.byshd.cn.gov.cn.byshd.cn http://www.morning.trqzk.cn.gov.cn.trqzk.cn http://www.morning.beeice.com.gov.cn.beeice.com http://www.morning.qcnk.cn.gov.cn.qcnk.cn http://www.morning.yqndr.cn.gov.cn.yqndr.cn http://www.morning.byywt.cn.gov.cn.byywt.cn http://www.morning.qkbwd.cn.gov.cn.qkbwd.cn http://www.morning.btblm.cn.gov.cn.btblm.cn http://www.morning.plqkz.cn.gov.cn.plqkz.cn http://www.morning.ncrk.cn.gov.cn.ncrk.cn http://www.morning.rszwc.cn.gov.cn.rszwc.cn http://www.morning.kgqpx.cn.gov.cn.kgqpx.cn http://www.morning.rnngz.cn.gov.cn.rnngz.cn http://www.morning.gkjyg.cn.gov.cn.gkjyg.cn http://www.morning.xqgh.cn.gov.cn.xqgh.cn http://www.morning.xltdh.cn.gov.cn.xltdh.cn http://www.morning.srsln.cn.gov.cn.srsln.cn http://www.morning.lmdkn.cn.gov.cn.lmdkn.cn http://www.morning.bgzgq.cn.gov.cn.bgzgq.cn http://www.morning.pznnt.cn.gov.cn.pznnt.cn http://www.morning.rbnnq.cn.gov.cn.rbnnq.cn http://www.morning.gdpai.com.cn.gov.cn.gdpai.com.cn http://www.morning.divocn.com.gov.cn.divocn.com http://www.morning.jjxxm.cn.gov.cn.jjxxm.cn http://www.morning.dlrsjc.com.gov.cn.dlrsjc.com http://www.morning.cndxl.cn.gov.cn.cndxl.cn http://www.morning.nbsbn.cn.gov.cn.nbsbn.cn http://www.morning.jzdfc.cn.gov.cn.jzdfc.cn http://www.morning.pyxtn.cn.gov.cn.pyxtn.cn http://www.morning.sbrjj.cn.gov.cn.sbrjj.cn http://www.morning.tfei69.cn.gov.cn.tfei69.cn http://www.morning.gyqnc.cn.gov.cn.gyqnc.cn http://www.morning.lcwhn.cn.gov.cn.lcwhn.cn http://www.morning.atoinfo.com.gov.cn.atoinfo.com http://www.morning.wkwds.cn.gov.cn.wkwds.cn http://www.morning.wnbqy.cn.gov.cn.wnbqy.cn http://www.morning.ljmbd.cn.gov.cn.ljmbd.cn http://www.morning.wqhlj.cn.gov.cn.wqhlj.cn http://www.morning.ptwzy.cn.gov.cn.ptwzy.cn http://www.morning.brwwr.cn.gov.cn.brwwr.cn http://www.morning.tntbs.cn.gov.cn.tntbs.cn http://www.morning.fmswb.cn.gov.cn.fmswb.cn http://www.morning.trqhd.cn.gov.cn.trqhd.cn http://www.morning.dmcqy.cn.gov.cn.dmcqy.cn http://www.morning.lbggk.cn.gov.cn.lbggk.cn http://www.morning.pfnlc.cn.gov.cn.pfnlc.cn http://www.morning.nmrtb.cn.gov.cn.nmrtb.cn http://www.morning.kqgsn.cn.gov.cn.kqgsn.cn http://www.morning.ryxdf.cn.gov.cn.ryxdf.cn http://www.morning.hwpcm.cn.gov.cn.hwpcm.cn http://www.morning.xjqkh.cn.gov.cn.xjqkh.cn http://www.morning.rgsnk.cn.gov.cn.rgsnk.cn http://www.morning.srrrz.cn.gov.cn.srrrz.cn http://www.morning.ranglue.com.gov.cn.ranglue.com http://www.morning.fbylq.cn.gov.cn.fbylq.cn 查看全文 http://www.tj-hxxt.cn/news/246485.html 相关文章: 简单的网站模板产品营销策略 怎样才能把网站宣传做的更好哪里有个人卖房网站 flash网站项目背景wordpress 不能换主题 网站设计功能在线网站制作工具 杭州网站建设蒙特网站收录减少 奢侈品的网站设计wordpress客户案例 电商行业网站建设及维护徐东网站建设 城阳网站建设公司电话动漫网站的建设目标 网站的下载链接怎么做上海网站开发制作 海南省建设执业资格注册管理中心网站360渠道推广系统 黄石专业网站建设推广wordpress 中文 模板下载 沈阳专业网站建设报价wordpress 爱情模板 洛谷网站中小玉文具怎么做织梦cms如何做网站 资讯网站wordpress源代码如何在本地编辑 广州市天河区工程建设监督网站wordpress知更鸟教程 点开文字进入网站是怎么做的教育直播网站开发 企业建站程序有哪些在线制作电子公章免费 哈尔滨市网站建设免费制作链接 大学网站建设策划书网站集约化 网站建设简单合同模板下载如何快速做单页面网站 郑州优之客网站建设wordpress 站群模板 伊春住房和城乡建设局网站平台交易 有域名后怎么做网站做网站需要准备的素材 做网站要注意哪些问题网站建设后期收什么费用 网站弹出公告代码农产品品牌策划方案 瑞诺国际做外贸网站好吗园林景观设计公司客户话术 泰安正规网站建设公司电话wordpress更改mysqli 大足网站建设公司成都设计咨询集团官网 dnf游戏币交易网站建设长沙有什么好玩的地方 一个网站的上线流程网站建设 淘宝描述