单片机的启动过程(从上电到main)
来源:互联网 发布:魔兽争霸3 for mac 编辑:程序博客网 时间:2024/06/05 00:19
理解这篇文章之前,我们需要配合了解两个基础知识。
一个是加载视图和运行试图,一个是单片机的存储空间。
这篇文章会涉及两个新内容,而加载视图又涉及启动代码和Scatter文件。
所以通过集成环境讲解启动代码总显得力不从心。
这里我们从编译器和链接器开始讲起。
1、C语言的编译都是按照文件进行编译的,编译完成后,每一个.c文件会生成相应的.o文件,这个过程是编译器(ARMCC)做的。
2、因为各个.o的信息是分散的,函数变量都是们没有统一编址的,所以lds链接器需要将各个.o文件的信息汇总到一起,就是code+RO+RW的位置,这就形成了加载视图。
3、启动代码starts.s 做一些基础工作外,根据Scatter文件的信息 ,对RW进行搬移,搬移到RAM中,方便后期的访问。
4、搬移完成后,我们就可以访问全局变量了(这个时候全局变量都是在RAM里的,我们通过map文件看到的)
阅读全文
0 0
- 单片机的启动过程(从上电到main)
- 从main函数启动过程说起
- STM8单片机的启动过程。
- 从 C 语言的 main 入手看 iOS 应用启动过程及进化
- stm32启动过程(汇编代码)及汇编到main函数的转换过程的实现
- WPF 从Main函数启动
- Linux内核设计的艺术(第一章,从开机加电到执行main函数之前的过程)
- linux启动的第一个阶段(从开机到main)
- iOS开发-APP启动main()调用之前的加载过程
- 从开机加电到执行main函数之前的过程(一)
- 从开机加电到执行main函数之前的过程(二)
- 从开机加电到执行main函数之前的过程(一)
- 从开机加电到执行main函数之前的过程(二)
- 从开机加电到执行main函数之前的过程(二)
- 从开机加电到执行main函数之前的过程
- 从开机加电到执行main函数之前的过程
- 从开机加电到执行main函数之前的过程
- bootloader 从开发板上电到main()函数执行之间的过程
- 记录一下今天,这是我开始的第一个flag!
- python3使用flask框架搭建在线词云应用
- 洛谷3600,大力期望DP
- STL容器 -map和set接口介绍
- [Unity插件]DOTween基础
- 单片机的启动过程(从上电到main)
- Networking 【poj-1287】 【最小生成树】
- 事件案例体验
- 达内课程-面向对象之接口
- JavaScript :几个小练习
- Apache服务器
- js定时器(二)延时消失的菜单
- C语言学习重点总结(一)基本数据类型分析
- 实现两个工程之间跳转