韦东山Linux嵌入式课程社区
登录
直播中
李剑
7年用户
150经验值
私信
关注
汇编中调用c函数中的子函数不能成功点灯
开启该帖子的消息推送
韦东山
汇编
老师,请教一个汇编中调用函数到问题。
我定义来两个文件led.c(led_on 点灯, led_off 熄灯), test.c文件 (函数 test_led 调用 led_on 子函数,实现点灯功能), 内容如下。 我在汇编start.S中, 直接调用 bl led_on, 则可以成功点灯, 但如果通过 bl test_led 间接调用led_on, 谮不能成功点灯, 请问是什么原因,嘎如何解决呢?
谢谢!
/*led.c */
# define GPFCON 0x56000050
# define GPFDAT 0x56000054
void led_on (int i)
{
unsigned long *pCon, *pDat;
pCon = GPFCON;
pDat = GPFDAT;
switch (i)
{
case 1:
*pCon &= ~(0x11<<8);
*pCon |= (0x01 << 8);
*pDat &= ~(0x1<<4);
break;
case 2:
*pCon &= ~(0x11<<10);
*pCon |= (0x01 << 10);
*pDat &= ~(0x1<<5);
break;
case 3:
*pCon &= ~(0x11<<12);
*pCon |= (0x01 << 12);
*pDat &= ~(0x1<<6);
break;
default:
break;
}
}
/*test.c*/
int test_led(void){
led_on(1);
return 0;
}
回帖
(2)
高文军
2019-3-4 13:51:33
代码不全,请把全部代码贴出来,传附件也可以。
另外 你使用 bl led_on 的时候,传递的参数是什么
代码不全,请把全部代码贴出来,传附件也可以。
另外 你使用 bl led_on 的时候,传递的参数是什么
举报
李淑兰
2019-3-4 14:11:16
参数通过r0传递,
mov r0, #1
bl led_on
这部分代码是可以正常执行到。关键是第二部分,通过test_led, 调用 led_on时酒不行来。
参数通过r0传递,
mov r0, #1
bl led_on
这部分代码是可以正常执行到。关键是第二部分,通过test_led, 调用 led_on时酒不行来。
举报
更多回帖
rotate(-90deg);
回复
相关问答
韦东山
汇编
如何使用内联
函数
法
调用汇编
函数
?
2021-04-02
1744
MATLAB脚本主
函数
对
子函数
的
调用
2015-04-26
3860
C
和
汇编
是怎样进行
函数
调用
的?
2021-04-27
1372
怎么从主
C
代码
中
调用
函数
2019-03-29
1446
用
调用
子函数
的方法来编一个小题
2015-07-15
1920
为什么28035的cla
调用
子函数
,当形参超过2个的话,cla 就无法
调用
子函数
?这是什么原因?
2018-06-13
2731
初学
C
51 怎样进行
子函数
调用
?
2014-11-04
7973
Labview
中
通过MATLAB
调用
子函数
出现的问题,麻烦大家帮我看一下
2017-08-16
4486
请问一下
函数
的
调用
过程是怎样的?
2021-04-20
1045
FPGA
子函数
封装问题
2022-07-27
18840
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分