- 积分
- 8
贡献27
飞刀2 FD
注册时间2015-5-23
在线时间2 小时
扫一扫,手机访问本帖
|
我的目的是将led的bin烧写到sd里面, 然后插入sd卡,上电,就能看到led,这些全部在linux完成。
首先是代码和makefile:
代码:
```
1 .text
2 .code 32
3 .global _start
4 _start:
5 ldr r0,=0x7F008820
6 ldr r1,=0x11111111
7 str r1,[r0]
8 ldr r0,=0x7F008824
9 ldr r2,=0xff000000
10 str r2,[r0]
11 loop:
12 b loop
```
makefile:
```
TARGET := led.bin
BUILD := led
COBJS += led.o
#COBJS += main.o
CROSS_COMPILE := arm-linux-
CC := $(CROSS_COMPILE)gcc
LD := $(CROSS_COMPILE)ld
OBJCOPY := $(CROSS_COMPILE)objcopy
CFLAGS += -Wall
CFLAGS += -I./include
LDFLAGS += -e _start -Ttext 0x0c000000
#way
all: $(TARGET)
$(TARGET):$(BUILD)
$(OBJCOPY) -O binary $^ $@
$(BUILD):$(COBJS)
$(LD) $(LDFLAGS) -o $@ $^
%.o:%.c
$(CC) $(CFLAGS) -c -o $@ $^
clean:
rm -rf *.o $(TARGET) $(BUILD)
```
我使用的是2G 的sd卡,总大小是2041053184 bytes, 根据手册,我需要写入的地址为 2041053184 - 18 * 512 = 2041043968
`sudo dd if=./led.bin of=/dev/sdb seek=2041043968 bs=1`, 这样将bin写道sd里面。
然后上电,结果没反应。
求教。。。 |
|