[ARM入门] ok6410 gcc编译汇编和c文件

[复制链接]
2108|6
 楼主| dengxingling8 发表于 2013-12-17 21:37 | 显示全部楼层 |阅读模式
本帖最后由 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了的啊,
rocdove 发表于 2013-12-19 21:00 | 显示全部楼层
那我就不知道了……
缥缈九哥 发表于 2013-12-20 11:56 | 显示全部楼层
不玩汇编 。
xufucg 发表于 2014-5-16 16:50 | 显示全部楼层

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

本版积分规则

3

主题

43

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部