范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

单片机启动流程分析(由单片机转linux非常有必要看一下)

  一 单片机启动流程概述
  单片机上电后一直到准备好C语言运行环境并跳转到main函数执行总共经历了5个步骤:
  1.内核初始化;
  2.强制PC指针指向中断向量表的复位中断向量执行复位中断函数;
  3.在复位中断函数中调用 SystemInit 函数,初始化时钟,配置中断向量表等
  4.调用 __main 函数完成全局/静态变量的初始化和重定位工作,初始化堆栈和库函数
  5.跳转到main函数中执行
  二 内核初始化
  在单片机上电后首先会进行一系列内核的初始化,关于这部分工作我们只需要了解即可,在内核初始化的过程中主要做了以下几件事情:
  1.内核复位和NVIC寄存器部分清零;
  2.内核设置堆栈:内核从向量表0地址读出堆栈地址,并设置主堆栈指针(SP_main);
  3.设置PC和LR寄存器
  a. LR设置未初始复位值0xFFFF FFFF
  b. 单片机的内部硬件机制自动将PC指针定位到中断向量表的复位中断向量出,把复位中断函数Reset_Handler的地址赋值给PC指针,然后跳转执行Reset_Handler。
  三 复位中断函数 Reset_Handler
  在内核复位的最后一步,将PC指针指向了复位中断向量,而复位中断服务函数中的内容才是我们真正需要关心的内容。查看IAR环境中的* .s 单片机汇编启动文件有以下一段内容:
  Reset_Handler PROC
  EXPORT Reset_Handler [WEAK]
  IMPORT __main
  IMPORT SystemInit
  LDR R0, =SystemInit ;加载SystemInit的地址到寄存器R0中
  BLX R0 ;跳转R0中的地址执行(执行SystemInit函数)
  LDR R0, =__main ;加载SystemInit的地址到寄存器R0中
  BX R0 ;跳转R0中的地址执行(执行__main函数)
  ENDP
  1
  2
  3
  4
  5
  6
  7
  8
  9
  上面的代码就是Reset_Handler的中断服务函数,可以看到在服务中断函数中先使用 IMPORT声明了两个函数 __main,SystemInit,然后顺序跳转执行SystemInit和**__main**函数。下面我们再来了解一下这两个函数具体干了些什么事情:   SystemInit 函数:   在system_stm32f4xx.c文件中我们可以看到该函数的定义,该函数主要干了以下两件事情:   1.初始化时钟:SYSCLK,HCLK,PCLK2 and PCLK1 prescalers   2.配置中断向量表:中断向量表的定位是在 Flash 还是 SRAM,是否需要偏移)   注意:可以通过system_stm32f4xx文件中的宏定义修改系统时钟频率(通过设置锁相环的相关系数),中断向量表的地址(位于SRAM还是Flsah,是否偏移,偏移地址多少等参数)   __main()函数(在IAR中是 __iar_program_start ):   该函数被封装进了编译器的库中,所以不同的IDE该函数的名称有所区别,但所实现的功能大致类似:   1.完成全局变量/静态变量/常量的初始化和重定位工作:   a. 跳转进入__scatterload_rt2函数:通过设置四个寄存器来配置待copy内容(静态变量、全局变量、常量)的的加载域和运行域,设置待copy内容的大小,为后续__scatterload_cpy()函数服务。   b. 跳转进入__scatterload_cpy函数,完成静态变量、全局变量、常量的从flash到SRAM的重定位。   c. 跳转进入__scatterload_zeroinit函数,完成未初始化的全局变量的初始化。   2.初始化堆栈(这里指程序栈)和库函数:   跳转进入__user_steup_stackheap函数:调用**__user_libspac__user_libspace**为C库保持了静态数据。这是一个96字节,0初始化的数据块,该块由C库创建。在C库初始化期间可以用来当做临时栈。再调用 __user_initial_stackheap 用户的初始化堆栈函数,实现用户的堆栈的配置,调用 _fp_init 和 __rt_fp_status_addr (C库函数) 两个函数调用实现浮点运算的支持。   3.程序的跳转,进入main()函数:   跳转进入用户的main函数   注意:   未初始化和初始值为零的全局变量,静态变量一般在RAM中, 初始值不为零的全局变量/静态变量 一般在FLASH中。   因为Flash不能随机写(只能写0,不能写1),所以一般会在程序运行之前将初始值不为零的全局变量重定位到RAM中。   全局变量和常量的地址在编译时都已经被分配好了(所以能够在 .map 文件中看到), 而局部变量则是程序运行时在栈中创建的,栈空间大小可以在IDE中设置。   单片机启动时,不需要用将代码从ROM搬移到RAM ,而 ARM 则需要。单片机程序执行的过程分三个步骤:取执行->分析指令->执行指令。取指令的任务是:根据 PC的值从程序存储器读出指令,送到指令寄存器。然后分析执行执行。这样单片机就从内部程序存储器去代码指令,从 RAM 存取相关数据。要知道RAM取数的速度是远高于ROM的,但是单片机因为本身运行频率不高,所以从ROM取指令慢并不影响。而ARM不同,CPU运行的频率高,远大于从 ROM读写的速度,所以一般有大型的操作系统时,都需要将代码部分拷贝到RAM中再执行。   ————————————————   版权声明:本文为CSDN博主「GWen9」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。   原文链接:https://blog.csdn.net/aa386447225/article/details/109546384

李毅中电动车是中长期阶段实现汽车双碳目标的重要手段新京报贝壳财经讯(记者王琳琳)1月20日,国家工信部原部长中国工业经济联合会会长李毅中在智驾碳新第十七届超级汽车论坛上表示,从中长期来看,电动车将成为实现汽车双碳目标的主要手段。本十部门十四五末能满足超2000万辆电动汽车充电中新财经1月21日电据国家发改委网站21日消息,近日国家发改委等十部门发布国家发展改革委等部门关于进一步提升电动汽车充电基础设施服务保障能力的实施意见(以下简称意见),提出到十四五Mastercam二次开放内置编辑器视频学习CSharp源码Mastercam二次开放内置编辑器视频源码。在没有Mastercam开发环境的情况下,NETScripting的功能远远超越了vbscript脚本的功能,其主要原因在于NETSc拍视频怎么样加字幕?我用的是软件乐秀不但可以添加字幕,滚动字幕,等等,我觉得很好。我想学习拍视频,然后怎么加字幕好?得到邀请,荣幸!谢谢信任。朋友们回答非常好,可在实践中借鉴。在此基础上,本人较为系统美媒评出消费电子展最酷新品安克AnkerWorkB600视频吧据美国新闻周刊网站1月5日报道,今年的消费电子展(CES)延续了为接下来的一年里我们可以期待的各种技术定下基调的传统。新闻周刊刊文介绍了2022年美国消费电子展25款最酷的新产品装北京年薪40万以上的程序员多吗?因为是985和211的硕士博士,还是有不少的能达到的,要达到这个地步其实也是不难的1进入BAT,工作5年左右,薪资股票大体接近100万2选择比较热门的方向大数据人工智能简单码农能力共享共建等平台业务增速超50国美全零售生态共享格局初步成形本报记者贾丽2022年伊始,零售巨头提前在供应链上布局,以提升掌控能力。近日,国美零售宣布今年将与多家品牌从传统的零供合作上升到全面供应链合作。国美零售已加速从电器万亿赛道切入家生磁棒绕着导线转动法拉第发明原始电动机虽说科学家对静电现象有了不少认识,然而,使电作为一种能源而成为人们生产和生活的动力,使人类进入一个电气化时代,却是从科学家开始发现和注意到电与磁的相互联系开始的。1800年伏打发明聚焦2022山东两会丨山东制造雪蜡车交付国家队全国唯一智能制造国家工业设计研究院获批齐鲁网闪电新闻1月23日讯今天上午,山东省十三届人大七次会议在济南开幕,省长周乃翔作政府工作报告。报告指出,2021年,山东创新动力显著增强。关键核心技术实现突破,取得时速600公车主注意!2月,全国各地区电动车新规来了,涉及两轮三轮四轮现在又到了一年一度最为激动的时候了,大家都在翘首以盼春节的到来,街上也开始有年味起来。但作为一个从事新能源行业的打工人,现在要告诉你的肯定不是春节的欢喜,而是即将到来的2月,全国各元宇宙产业白皮书互联网巨头将元宇宙视为未来更大流量入口21世纪经济报道记者刘美琳北京报道元宇宙无疑是2021年热词。这一年里,Facebook字节跳动等科技巨头纷纷表态,资本闻风而动。这个1992年就出现在科幻小说中的名词,在近30年
非编码RNA调控仿刺参肠道再生和皂苷合成研究获进展版权归原作者所有,如有侵权,请联系我们非编码RNA中的miRNA和tRNA在基因表达调控中扮演重要角色,然而在棘皮动物中相关研究较缺乏。中国科学院海洋研究所研究员李富花课题组通过多有没有提供泰语,印尼语,越南语的客服外包公司,求推荐?有的有的,Callnovo全球客服外包专家可以为您提供东南亚本土的泰语印尼语和越南语客服代表!Callnovo是一家专业的海外多语种客服外包运营服务商,于2004年成立于加拿大多伦新能源车春运出行充电需求来势凶猛,各方多举措保出行记者侯卓铠编辑今年国庆长假期间,因电动汽车车主一句朋友都到家了,我还在高速服务区排队等充电。将电动汽车节假日长途驾驶充电难的话题推上热门。随着今年春运出行开始进入高峰期,春运期间电LeetCode找到所有数组中消失的数字需求描述给你一个含n个整数的数组nums,其中numsi在区间1,n内,请找出所有在1,n范围内但没有出现在nums中的数字,并以数组的形式返回结果。提示1nnums。length狙击三星摩托罗拉6。8英寸大屏手写笔芯片发布三星GalaxyS22系列定档2月9日发布,其中S22Ultra继承Note基因,硬朗外观加上内置手写笔引发不小关注。最新消息显示,就在S22系列发布前一周时间,另外一款支持触控笔16万个热融湖塘!青藏高原的这些创口在释放温室气体热融湖塘指自然或人为因素引起多年冻土活动层增厚,导致地下冰或富冰多年冻土层发生局部融化,地表随之沉陷而形成热融洼地并积水形成的湖塘。北京师范大学效存德教授团队联合中国科学院西北生态创新之花处处开南方网讯(记者赵晓娜王诗堃)从疫情防控到赛事保障,从场馆建设到赛事转播,在北京冬奥会的筹备过程中,科技力量贯穿始终无处不在,大量创新成果广泛应用,多项高新科技将在北京冬奥会集中展示联想最大的问题就是活得太久了联想最大的问题就是活得太久了。北京三环上有两座立交桥是以公司命名的,联想桥,四通桥,同时代的公司基本上都倒了。北大方正,清华紫光也倒了。王选其实比倪光南牛。方正那是矢量汉字。不知道年前换了一部高端旗舰,看到都以为我月薪几万,确实挺高级我是8年老米粉来着,从读高中那时候就用上小米手机了,感觉它的手机就很不错,用着用着也习惯了,换其他牌子的手机系统用着还很不习惯,所以这些年一直拿着都是它家的手机。在没换Xiaomi实用走心又高级的春节礼物华为P50Pocket和MateX2折叠屏手机中国是人情社会,春节走亲访友,赠送礼品是避不开的。春节送礼送什么好呢?古往今来,这都是一门大学问。如今,我们的物质生活已经有了极大提高,传统的吃穿玩已经逐渐脱离了春节礼品的主导地位韩国研究人员开发水电解绿色制氢技术来源盖世汽车Elisha作为一种潜在的清洁能源,氢有望成为化石燃料的替代品,近年来引起了人们的极大关注。研究人员一直积极研究和开发水电解技术,以从水中提取氢气,生产绿色能源,并避免