MAIN函数一样是被人调用,也一样需要返回。我们通常在启动代码中完成这一工作,而启动代码一般出于效率高的目的都以汇编语言编写。

  在main函数之前,需要写启动文件,完成的功能包括:(1)设置栈;(2)设置main的返回地址;(3)调用main;(4)返回到指定地址后,清理工作。

  所谓设置栈,就是将栈指针指向某块内存;如果内存是SRAM,则不需要初始化即能使用,如果不是片内SRAM,而是SDRAM,则在此之前还需要初始化SDRAM。同时,在此,不仅仅需要初始化SDRAM,还有其它相关硬件初始化。具体包括:关看门狗;初始化时钟;初始化SDRAM。这些都是在关硬件初始化。

  而一开始所说的设置栈,设置main返回地址等等都是软件初始化。

  硬件初始化至少包括关看门狗;初始化时钟;

  硬件初始化与软件初始化共同完成启动文件。

转载于:https://www.cnblogs.com/dudu1990/p/3393276.html

main函数之前的事(略)相关推荐

  1. python主函数的作用_python中main函数的用法

    原博文 2020-03-27 20:25 − **什么场景下会有main函数?** 当该python脚本被作为模块(module)引入(import)时,其中的main()函数将不会被执行. **ma ...

  2. main() 函数解析(一)——Linux-0.11 剖析笔记(六)

    文章目录 1. 宏定义`_syscall0` 2. `setup.s`读取的参数 3. 读取CMOS实时时钟信息 3.1 `outb_p(value,port)` 3.2 `inb_p(port)` ...

  3. SequoiaDB 系列之五 :源码分析之main函数

    好久好久没有写博客了,因为一直要做各种事,工作上的,生活上的,这一下就是半年. 时光如梭. 这两天回头看了看写的博客,感觉都是贻笑大方. 但是还是想坚持把SequoiaDB系列写完. 初步的打算已经确 ...

  4. java中main函数解析

    作者:xwdreamer 出处:http://www.cnblogs.com/xwdreamer 欢迎任何形式的转载,但请务必注明出处. 从写java至今,写的最多的可能就是主函数 public st ...

  5. 编写一个C程序,实现以下功能:编写一个函数decTobin(int n),该函数能将一个十进制数n转换成二进制数,输入13 输出 1101。在main函数中输入整数n,调用函数,输出它的二进制

    题目要求: 编写一个C程序,实现以下功能: //编写一个函数decTobin(int n),该函数能将一个十进制数n转换成二进制数,输入13 输出 1101. //在main函数中输入整数n,调用函数 ...

  6. java中的de是什么_【转】java中main函数解析

    源地址:http://www.cnblogs.com/xwdreamer/archive/2012/04/09/2438845.html 从写java至今,写的最多的可能就是主函数 public st ...

  7. 如何编写好的C main函数

    我知道,Python和JavaScript是这些天孩子们正在编写所有疯狂的"应用程序"的工具. 但是不要那么快就取消C语言-它是一种功能强大且简洁的语言,可以提供很多功能. 如果需 ...

  8. 【Linux 内核设计的艺术】从开机加电到执行 main 函数之前的过程

    本笔记依据 <Linux 内核设计的艺术> 新设计团队 著 机械工业出版社 以及本人平时的笔记积累而书写,Linux0.11. 文章目录 1.1 启动 BIOS,准备实模式下的中断向量表和 ...

  9. iOS程序main函数之前发生了什么

    文章转载自 http://blog.sunnyxx.com/2014/08/30/objc-pre-main/,侵权必删除 前言 一个iOS app的main()函数位于main.m中,这是我们熟知的 ...

  10. iOS 程序 main 函数之前发生了什么

    一个 iOS App 的 main 函数位于 main.m 中,这是我们熟知的程序入口.但对 objc 了解更多之后发现,程序在进入我们的 main 函数前已经执行了很多代码,比如熟知的 + load ...

最新文章

  1. 电子商务企业借力呼叫中心提高效率
  2. python经典算法小程序-Python爬虫系列之微信小程序逆向某优选爬虫签名算法!厉害...
  3. SlidingDrawer的使用(一)
  4. vue-devtools介绍与安装
  5. 软件测试作业5:计算下列代码片段的 Halstead 复杂度的11项内容
  6. Nginx基本数据结构之ngx_hash_keys_arrays_t
  7. phpcmsV9 表单向导(案例一)应用示例
  8. 在gitLab上新建仓库push时SSHkey的问题
  9. 用jquery或js实现三个div自动循环轮播
  10. Flutter基础—定位对齐之中心定位
  11. 用c语言画图的步骤,怎样用c语言画图
  12. nodejs fs创建文件_节点FS – NodeJS创建文件,读取文件,写入文件
  13. C# 线程安全的单例模式
  14. 利用ExcelJS读取Excel文件
  15. Python基础知识资料收集库
  16. Redis过期策略和淘汰策略
  17. mean shift segmentation matlab,Mean Shift图像分割算法的并行化
  18. mbedtls | 03 - 单向散列算法的配置与使用(MD5、SHA1、SHA256、SHA512)
  19. HDU 1069 DP
  20. Topcoder参赛入门

热门文章

  1. UltraCompare 22 for Mac(文件比较工具)
  2. 犀牛3D造型软件Rhino 7 for Mac
  3. Sqlalchemy 乱码解决方法
  4. 文本验证码被曝漏洞,淘宝、京东都中招!
  5. 不学无数——JAVA中NIO再深入
  6. IIS------配置.Net 4.0
  7. 自定义View时,用到Paint Canvas的一些温故,简单的帧动画(动画一 ,quot;掏粪男孩Gifquot;顺便再提提onWindowFocusChanged)...
  8. SQL 关于提示SQL Server 2008评估期已过解决办法
  9. 发现有的时候,EBS会报连接数不足的问题
  10. 强大,腾讯开源前后端接口开发工具!