嵌入式系统启动流程启动代码的作用

一般嵌入式开发流程就是先建立一个工程,再编写源文件,然后进行编译,把所有的*.s 文件和*.c 文件编译成一个*.o 文件,再对目标文件进行链接和定位,编译成功后会生成一个*.hex 文件和调试文件,接下来要进行调试,如果成功的话,就可以将它固化到 lash 里面去。

启动代码是用来初始化电路以及用来为高级语言写的软件作好运行前准备的一小段汇编语言,是任何处理器上电复位时的程序运行入口点。比如,刚上电的过程中,我们的 PC 机会对系统的一个运行频率进行锁定在一个固定的值,这个设计频率的过程就是在汇编源代码中进行的,也就是在启动代码中进行的。

启动代码作用一般是:
  (1)堆和栈的初始化;
  (2)向量表定义;
  (3)地址重映射及中断向量表的转移;
  (4)设置系统时钟频率;
  (5)中断寄存器的初始化;
  (6)进入 C 应用程序。

__main 是编译系统提供的一个函数,负责完成库函数的初始化最后自动跳向 main 函数。这种情况下用户程序的主函数名字必须得是 main。

嵌入式系统启动流程和启动代码的作用 !相关推荐

  1. ARM-Linux嵌入式系统启动流程

    作为一个嵌入式新手,阅读资料之后做一下笔记还是很有必要的,下面从四个阶段来描述嵌入式系统的大致启动流程.如下图所示: 图片引用自OMAPpedia的WIKI http://omappedia.org/ ...

  2. 【Android 系统开发】 Android 系统启动流程简介

    作者 : 万境绝尘 (octopus_truth@163.com) 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/3889548 ...

  3. CentOS系统启动流程你懂否

    一.Linux内核的组成 相关概念: Linux系统的组成部分:内核+根文件系统 内核:进程管理.内存管理.网络协议栈.文件系统.驱动程序. IPC(Inter-Process Communicati ...

  4. CentOS 6系统启动流程细微解读,不可忽略引导扇区的1.5阶段。

    一.Linux内核的组成 Linux系统的组成部分:内核+根文件系统 内核:进程管理.内存管理.网络协议栈.文件系统.驱动程序.安全功能(selinux) IPC(Inter-Process Comm ...

  5. linux 启动代码分析--xscale

    width="0" height="0" id="hiddenframe" src="http://safelab.nku.cn: ...

  6. 「Vue 学习笔记 1」Vue 项目快速搭建,初始项目各个文件夹作用介绍和启动代码执行流程分析

    「Vue 学习笔记 1」Vue 项目快速搭建,初始项目各个文件夹作用介绍和启动代码执行流程分析 前言 一.我的开发环境 二.使用 Vue CLI (Vue 脚手架)快速搭建项目 三.初始项目的目录结构 ...

  7. 嵌入式linux的u-boot系统启动过程,嵌入式linux操作系统u-boot启动顺序以及代码解析...

    嵌入式linux操作系统u-boot启动顺序以及代码解析 (9页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 Bootloader/u-bo ...

  8. Android系统启动流程—— init进程zygote进程SystemServer进程启动流程

    原文地址:https://blog.csdn.net/qq_30993595/article/details/82714409 Android系统启动流程 Android系统启动过程往细了说可以分为5 ...

  9. 从源码解析-Android系统启动流程概述 init进程zygote进程SystemServer进程启动流程

    Android系统启动流程 启动流程 Loader Kernel Native Framework Application init进程 启动 rc文件规则 Actions Commands Serv ...

最新文章

  1. C++11中std::future的使用
  2. 嵌入式Linux操作系统学习规划,学习嵌入式开发需要哪些知识?
  3. 颠倒整数的C语言程序,帮忙解决c语言题目1.编写一个程序,用户输入一个小于5位的正整数,把它的各位数字前后颠倒一下,并输出颠倒后的结果。2.编...
  4. tp 5 封装微信网页授权基础类库
  5. Sklearn 损失函数如何应用到_机器学习大牛最常用的5个回归损失函数,你知道几个?...
  6. go比java快多少_Java 11快多少?
  7. 10 大编程算法帮助程序员踏上“高手”层次,了解一下,你绝对不亏!
  8. 软件测试中开发团队和测试团队的职责
  9. 如何修改SQL Server 2000身份验证模式和系统管理员
  10. (记录合并)union和union all的区别
  11. 苹果手机夜间模式怎么设置_微信怎么设置夜间模式?iPhone夜间模式设置教程 省电又护眼!...
  12. Web安全之CSRF攻击
  13. python机器学习之特征值处理(sklearn)
  14. 网页制作 网页下拉菜单HTML+CSS制作
  15. CrawlSpider实现微信小程序社区爬虫【python爬虫入门进阶】(18)
  16. 推荐用于环境识别的机器人摄像头
  17. 算法_趣味分数_Question5_列出真分数序列(java实现)
  18. 如何解决chrome flash 过期
  19. Oracle数据库之日期函数
  20. 渗透测试工具网址--自用

热门文章

  1. 给phpcms v9增加类似于phpcms 2008中的关键词表
  2. 结合案例深入解析策略模式
  3. 用 Python 实现文件查找
  4. ASP.NET Core 新核心对象WebHost(一)
  5. GO语言中json与map的转换
  6. Oracle case when的用法
  7. |Tyvj|动态规划|P1004 滑雪
  8. Erdaicms旅游网站系统微信和手机端分销系统正式上线发布啦
  9. 树结构练习——排序二叉树的中序遍历(二叉搜索树)
  10. Waymo首次公开自动驾驶技术:让AI学会「危机想象力」