OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4611|回复: 11

单片机 初始化 怎么调到 startupxx.s 的

[复制链接]

58

主题

139

帖子

0

精华

高级会员

Rank: 4

积分
662
金钱
662
注册时间
2014-10-30
在线时间
81 小时
发表于 2017-9-24 21:26:54 | 显示全部楼层 |阅读模式
1金钱
yy.png    只知道 main() 是从这里面调入的,但是  初始化 怎么调到 startupxx.s 的 是在哪里设置吗 ,还是 ,

最佳答案

查看完整内容[请看2#楼]

这是硬件设计和编译器结合处理的一个结果。你知道怎么回事就得问硬件启动过程,编译器编译过程。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-9-24 21:26:55 | 显示全部楼层
这是硬件设计和编译器结合处理的一个结果。你知道怎么回事就得问硬件启动过程,编译器编译过程。
回复

使用道具 举报

58

主题

139

帖子

0

精华

高级会员

Rank: 4

积分
662
金钱
662
注册时间
2014-10-30
在线时间
81 小时
 楼主| 发表于 2017-9-25 09:16:49 | 显示全部楼层
正点原子 发表于 2017-9-24 21:26
这是硬件设计和编译器结合处理的一个结果。你知道怎么回事就得问硬件启动过程,编译器编译过程。

单片机 刚启动时候,通过哪里设置,默认进入startupxx.s的,  是 设置 硬件启动过程,编译器编译,能具体点吗 ,网上搜了下 ,好像没结果啊
回复

使用道具 举报

4

主题

346

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3657
金钱
3657
注册时间
2016-2-21
在线时间
542 小时
发表于 2017-9-25 09:27:08 | 显示全部楼层
单片机一复位,ARM第一行代码是运行0x04位置上的代码。启动文件编译完毕后,他就是被下载到最前端的,也就是0x04的位置。0x04是复位中断入口,在里面,一个跳转指令就进处理程序了
回复

使用道具 举报

58

主题

139

帖子

0

精华

高级会员

Rank: 4

积分
662
金钱
662
注册时间
2014-10-30
在线时间
81 小时
 楼主| 发表于 2017-9-25 09:39:42 | 显示全部楼层
shikihane 发表于 2017-9-25 09:27
单片机一复位,ARM第一行代码是运行0x04位置上的代码。启动文件编译完毕后,他就是被下载到最前端的,也就 ...

嗯 ,启动文件(startupxxxxx.s )是在哪里设置 最开始默认启动的
回复

使用道具 举报

4

主题

346

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3657
金钱
3657
注册时间
2016-2-21
在线时间
542 小时
发表于 2017-9-25 09:48:43 | 显示全部楼层
妙手书生 发表于 2017-9-25 09:39
嗯 ,启动文件(startupxxxxx.s )是在哪里设置 最开始默认启动的

这个是链接器实现的功能,MDK5的链接脚本是这样写的:
--cpu Cortex-M3 *.o
--ro-base 0x08000000 --entry 0x08000000 --rw-base 0x20000000 --entry Reset_Handler --first __Vectors --strict --summary_stderr --info summarysizes --map --xref --callgraph --symbols
--info sizes --info totals --info unused --info veneers
--list ".\Listings\LED.map"
所以 Reset_Handler __Vectors  是最前面的
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2017-9-25 09:52:28 | 显示全部楼层
妙手书生 发表于 2017-9-25 09:39
嗯 ,启动文件(startupxxxxx.s )是在哪里设置 最开始默认启动的

链接的时候自动将.S启动文件链接为第一个文件!至于那里设置的?这是MDK直接这么选择的,如果搞过Makefile的文件的话对这个就很熟悉,因为Makefile需要你自己指定文件的链接顺序,而用MDK的话直接都帮你做好了。

I99TWH4U8M%6$OAO(J%_0MY.png


开往春天的手扶拖拉机
回复

使用道具 举报

58

主题

139

帖子

0

精华

高级会员

Rank: 4

积分
662
金钱
662
注册时间
2014-10-30
在线时间
81 小时
 楼主| 发表于 2017-9-25 13:21:24 | 显示全部楼层
shikihane 发表于 2017-9-25 09:48
这个是链接器实现的功能,MDK5的链接脚本是这样写的:
--cpu Cortex-M3 *.o
--ro-base 0x08000000 --e ...

嗯 ,谢谢啊 ,从哪里找到的,我没看到过这些,可以说下吗
回复

使用道具 举报

4

主题

346

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3657
金钱
3657
注册时间
2016-2-21
在线时间
542 小时
发表于 2017-9-25 13:55:52 | 显示全部楼层
妙手书生 发表于 2017-9-25 13:21
嗯 ,谢谢啊 ,从哪里找到的,我没看到过这些,可以说下吗

链接器那里
回复

使用道具 举报

3

主题

197

帖子

0

精华

高级会员

Rank: 4

积分
538
金钱
538
注册时间
2012-7-19
在线时间
63 小时
发表于 2017-9-25 15:02:51 | 显示全部楼层
妙手书生 发表于 2017-9-25 13:21
嗯 ,谢谢啊 ,从哪里找到的,我没看到过这些,可以说下吗

mdk帮助文档 linker相关章节
回复

使用道具 举报

58

主题

139

帖子

0

精华

高级会员

Rank: 4

积分
662
金钱
662
注册时间
2014-10-30
在线时间
81 小时
 楼主| 发表于 2017-9-25 16:52:58 | 显示全部楼层

谢谢了
回复

使用道具 举报

58

主题

139

帖子

0

精华

高级会员

Rank: 4

积分
662
金钱
662
注册时间
2014-10-30
在线时间
81 小时
 楼主| 发表于 2017-9-25 16:53:20 | 显示全部楼层
myxiaoniao 发表于 2017-9-25 15:02
mdk帮助文档 linker相关章节

谢了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-19 13:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表