复位以后程序是从哪启动的?

2019-07-20 05:38发布

问问大家如果用串口下载程序,那么复位后程序是从0x8000000开始运行的吗?是不是不同的下载方式复位以后的程序开始运行地址不一样啊?


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
xiaozeilang
1楼-- · 2019-07-21 00:10
都是从首地址开始运行
edmund1234
2楼-- · 2019-07-21 00:13
 精彩回答 2  元偷偷看……
castle
3楼-- · 2019-07-21 03:12
edmund1234 发表于 2018-10-22 14:21
你在startup_stm32f10x_hd.s文件搜“Reset_Handler”,
就会看到这句 Reset_Handler   PROC
这就是你 ...

这个并没有具体的地址啊
edmund1234
4楼-- · 2019-07-21 09:10
本帖最后由 edmund1234 于 2018-10-22 16:26 编辑
castle 发表于 2018-10-22 15:55
这个并没有具体的地址啊

你这样问, 就要先给你解释一下, 这个具体地址是编译器自行决定, 当然你可以通过某些手段把它固定在某个地址, 你要具体地址有N个方式, 但需要在编译通过后去查看才是有效的值, 正如上面说的, 这具体地址编译器会因应整个代码的分布的最高效率而自动产生的
一) 可以在编译后产年的Map文件里找
二) 在Debug模式下, 打开Symbo窗口, 在左上角输入Reset_Handler, 就自然看到具体地址

不要以这图的0x0801D0D4为你的答案, 因为我的代码跟你不一样, 编译器会安排不一样的地址, 也许是同样是你的代码, 你稍微更改一下, 它就变了
sppz
5楼-- · 2019-07-21 13:04
 精彩回答 2  元偷偷看……
castle
6楼-- · 2019-07-21 19:01
edmund1234 发表于 2018-10-22 16:16
你这样问, 就要先给你解释一下, 这个具体地址是编译器自行决定, 当然你可以通过某些手段把它固定在某 ...

噢噢,懂了,谢谢哦

一周热门 更多>