OpenEdv-开源电子网

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

imx6ull C版本的led 例程为什么使用start.S

[复制链接]

1

主题

2

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2020-11-13
在线时间
5 小时
发表于 2022-2-14 17:03:13 | 显示全部楼层 |阅读模式
刚刚开始学习imxull, 跟着教程看到。ledc教程的启动文件后缀是大写的S ,一开始自己沿用的第一讲的小写的s, 查看ledc.dis 文件,发现 b main 没有编译进去,应该是main函数找不到,尝试在汇编文件前面加入.extern main  也没有效果, 这个是链接的相互包含的问题吗?  请教各位具体的原因是什么,为什么大写的S就可以?
start.S
  1. .global _start                  /* 全局标号 */
  2. _start:
  3.         /* 进入SVC模式 */
  4.         mrs r0, cpsr
  5.         bic r0, r0, #0x1f         /* 将r0寄存器中的低5位清零,也就是cpsr的M0~M4         */
  6.         orr r0, r0, #0x13         /* r0或上0x13,表示使用SVC模式                                        */
  7.         msr cpsr, r0                /* 将r0 的数据写入到cpsr_c中                                         */

  8.         ldr sp, =0X80200000        /* 设置栈指针                         */
  9.         b main                                /* 跳转到main函数                  */
复制代码

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2020-12-3
在线时间
2 小时
发表于 2022-2-18 11:01:18 | 显示全部楼层
我也遇到了跟你同样的问题,而且以前在用eclipse+gcc开发stm32的时候遇到过一次,当时eclipse中汇编语言只支持.S

后来查阅资料发现:
IAR和Keil MDK下,其编译器会把.s当做汇编文件来处理编译,而对Codewarrior和KDS来说,则GCC编译器认为.S才是汇编文件
回复 支持 反对

使用道具 举报

1

主题

8

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2020-12-3
在线时间
2 小时
发表于 2022-2-18 11:22:33 | 显示全部楼层
轻烟罗 发表于 2022-2-18 11:01
我也遇到了跟你同样的问题,而且以前在用eclipse+gcc开发stm32的时候遇到过一次,当时eclipse中汇编语言只支 ...

不过我还是觉得这属于GCC的bug
回复 支持 反对

使用道具 举报

1

主题

8

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2020-12-3
在线时间
2 小时
发表于 2022-3-17 14:58:35 | 显示全部楼层
轻烟罗 发表于 2022-2-18 11:22
不过我还是觉得这属于GCC的bug

算是吧GCC bug 吧
回复 支持 反对

使用道具 举报

1

主题

8

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2020-12-3
在线时间
2 小时
发表于 2022-3-17 14:59:12 | 显示全部楼层

GCC 工具链版本众多,可以不用配套资料中的
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-24 03:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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