打印
[ARM入门]

ok6410 gcc编译汇编和c文件

[复制链接]
1623|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 dengxingling8 于 2013-12-18 08:43 编辑

小弟初学arm,遇到问题,还望大神指点,第一次发帖,排版不好看,希望各位见谅。下面是正题,我用汇编点led灯,程序运行良好,然后使用c和汇编混合编程,也就是在汇编文件调用c文件里面的函数,两个文件截图如下: 这两个代码编译连接之后,产生的效果为四灯全亮,没有循环,于是我寻思,是否为函数调用问题,简单测试,dxl函数什么都不做,程序运行良好,于是我将dxl函数里面的while函数删除,发现烧写程序进去后程序运行依然正常。难道会是这个while有问题么?不懂求高手解答,带着这个疑问,我对比了两个文件的反汇编文件,发现不同之处如图所示, 求各位指点一下啊。真心急,弄了两天了

相关帖子

沙发
dengxingling8|  楼主 | 2013-12-18 17:24 | 只看该作者
咋就没人帮我一下啊,自己顶一个,希望高手解答

使用特权

评论回复
板凳
rocdove| | 2013-12-18 23:57 | 只看该作者
仔细看了,眼好累!不过想问下,是不是要用交叉编译器啊?感觉你的dxl函数也就是个延时作用,不过不知道你在运行前在什么情况下跑的,是裸奔吗?是不是和函数栈有关系。我也刚学没多久,共同学习吧

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
dengxingling8 + 1 很给力!
地板
dengxingling8|  楼主 | 2013-12-19 12:55 | 只看该作者
rocdove 发表于 2013-12-18 23:57
仔细看了,眼好累!不过想问下,是不是要用交叉编译器啊?感觉你的dxl函数也就是个延时作用,不过不知道你 ...

是的啊,我现在不需要dxl函数做事,就是延迟,但是就是不成功,我使用的交叉编译器,函数栈我设置sp了的啊,

使用特权

评论回复
5
rocdove| | 2013-12-19 21:00 | 只看该作者
那我就不知道了……

使用特权

评论回复
6
缥缈九哥| | 2013-12-20 11:56 | 只看该作者
不玩汇编 。

使用特权

评论回复
7
xufucg| | 2014-5-16 16:50 | 只看该作者

单片机程序中,使用汇编程序调用C程序是常用的,但是C程序运算时,要占用单片机的寄存器.因为汇编程序的时候有些寄存器已经被赋值,而且后面还要继续用到,如果C语言计算时,占用或修改这些寄存器?(RAM地址).C语言运算返回来以后,汇编程序的继续运算,后果出错。怎样控制C语言运算占用字节的区域?或者说怎样指定“段”开始地址?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

43

帖子

0

粉丝