问下这个arm汇编和c混合编程,有点不懂
时间:2010-11-05
来源:互联网
@******************************************************************************
@ File:crt0.S
@ 功能:通过它转入C程序
@******************************************************************************
.text
.global _start
_start:
ldr r0, =0x56000010
mov r1, #0x0
str r1, [r0]
ldr sp, =1024*4
bl main ;;;这里b转到main函数,那么#define GPBCON (*(volatile unsigned long *)0x56000010)有执行到吗??或者有时候定义了什么变量会执行到吗????
halt_loop:
b halt_loop
#define GPBCON (*(volatile unsigned long *)0x56000010)
#define GPBDAT (*(volatile unsigned long *)0x56000014)
int main()
{
GPBCON = 0x00000400; // 设置GPB5为输出口, 位[11:10]=0b01
GPBDAT = 0x00000000; // GPB5输出0,LED1点亮
return 0;
}
@ File:crt0.S
@ 功能:通过它转入C程序
@******************************************************************************
.text
.global _start
_start:
ldr r0, =0x56000010
mov r1, #0x0
str r1, [r0]
ldr sp, =1024*4
bl main ;;;这里b转到main函数,那么#define GPBCON (*(volatile unsigned long *)0x56000010)有执行到吗??或者有时候定义了什么变量会执行到吗????
halt_loop:
b halt_loop
#define GPBCON (*(volatile unsigned long *)0x56000010)
#define GPBDAT (*(volatile unsigned long *)0x56000014)
int main()
{
GPBCON = 0x00000400; // 设置GPB5为输出口, 位[11:10]=0b01
GPBDAT = 0x00000000; // GPB5输出0,LED1点亮
return 0;
}
作者: yezhubenyue 发布时间: 2010-11-05
#define GPBCON (*(volatile unsigned long *)0x56000010)
这是伪指令。编译的时候有用。不会作为语句编译进代码里面的。当然不会执行到这里。
这是伪指令。编译的时候有用。不会作为语句编译进代码里面的。当然不会执行到这里。
作者: usbdev 发布时间: 2010-11-05
它跟定义变量不一样。如果定义了变量,会在目标程序当中分配空间。
作者: usbdev 发布时间: 2010-11-05
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28