STM32中的main函数入口
来源:互联网 发布:网络大电影的发展趋势 编辑:程序博客网 时间:2024/05/16 12:10
昨天在openedv.com论坛上看到别人STM32的启动文件的详解,里面在讨论到说到是不是可以修改main函数里,_main是不是我们C语言的main函数的入口。其实启动文件里我们只是看到很小一部分的代码很难回答这些问题,我于是反汇编了STM32 的AXF文件,给出了一些解答,如下:
为了让大家更清楚的知道STM32是怎么启动的。这里用到IDA64这个反汇编的利器来找反一下STM32编译出来的AXF文件。
可以看到_main其实是个空函数,实际上进Main之前调用的是start函数。
调用start函数后,经过上面的一系列的函数会进真正的进入到我们C语言中的main函数,这之间的操作就是一个堆栈压栈,为运行C语言建立环境。这些函数全是由编译器内部完成了,所以我们在启动代码中见不到这些代码,不同的编译器自然函数也会不一样,但是作用是一样的。
再继续看真正跳到main函数其实是在rt_enty_postli_1这个函数中,这里用的是BL,说明是调用,调完后还会回来,所以如果main函数中没有死循环,那么main执行完后还会回到rt_enty_postli_1中继续调用exit函数,这样main只会执行一次。
最后看堆栈的内容,这里就是全局的变量的内存区域,我们对全局变量的操作其实就是操作这一片对应的内存。
这里我只是大概了浏览了STM32从_main到main的过程,没有太仔细的深究具体的汇编代码,有兴趣的同学可以自己用IDA64反汇编去深究下
0 0
- STM32中的main函数入口
- 入口函数main
- mongodb - main 函数入口
- main函数入口
- main 函数的入口参数
- vc++ main系列入口函数
- window的入口函数main
- main WinMain入口函数比较
- main WinMain入口函数比较
- main WinMain入口函数比较
- java main(入口函数)应用
- docker源码入口main函数
- stm32跑不到main函数
- 黑莓程序入口函数main误区
- 【原创】第一章:1.1、寻找main函数入口
- C++入口函数main返回值
- C++入口函数main返回值
- Python——程序入口main函数
- 实习生被拒绝的N个理由
- 229. 说出下面的运行结果
- 网络分析与图简介
- 第十九周OJ—Roken Necklace
- Leetcode刷题日记<Binary Tree Postorder Traversal>
- STM32中的main函数入口
- 最优化:拟牛顿法、最速下降法、共轭梯度法、信赖域法、协同优
- Redis之利用锁机制来防止缓存过期产生的惊群现象
- [UVA11605] Lights inside a 3d Grid && 数学期望
- jQuery实现异步上传图片(二)
- 231 金山笔试题
- 通过经纬度获取城市名/地址(不需要三方包)
- 数据结构第一章框图
- 实习日记4