arm汇编输出

.text
.extern uart_init	
@终端的输出
.extern printf
.global _start
_start:
	mov r7,lr 
	@先把lr原始地址给r7放着,后面发生bl跳转后,要退回到bootcmd
	bl uart_init
	@mov r1,#0x1110	
	@这个定义的数值有规范,这里采用ldr。而且要放在bl uart_init
	ldr r1,=0x1110
	bic r1,r1,#0x100
	ldr r0,=fmt
	bl printf
	mov lr,r7 
	@就把r7存的地址给回lr,最后跳转出去。
	bx lr 
fmt:
	.asciz ">>>>>>>> welcome to asm r1=0x%x<<<<<<<\n\r"
	@这里输出字符串是r0,然后后面有多少个%x的就按顺序输出r1,r2那样
.end 

makefile

all:start.bin clean
start.bin:start.o uart.o libc.a 
	arm-linux-ld -Ttext=0x40000000 start.o uart.o libc.a  -o start.elf 
	arm-linux-objcopy -O binary -S start.elf start.bin 
	arm-linux-objdump -d start.elf > debug

start.o:start.S
	arm-linux-gcc -c -nostdlib -nostdinc start.S -o start.o 
clean:
	rm -rf start.o start.elf

还需要libc.a,types.h,uart.o,stdio.h文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值