嵌入式爱好者

查看: 4408|回复: 2

[裸机程序] led 从sd卡启动

[复制链接]

2

主题

3

帖子

8

积分

扫一扫,手机访问本帖
发表于 2015-11-1 21:25:56 | 显示全部楼层 |阅读模式
我的目的是将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里面。
然后上电,结果没反应。
求教。。。
回复

使用道具 举报

2

主题

3

帖子

8

积分

 楼主| 发表于 2015-11-6 20:09:52 | 显示全部楼层
支持下,请大家帮我回答下 谢谢了
点评回复 支持 反对

使用道具 举报

0

主题

2

帖子

7

积分

发表于 2018-12-19 14:36:57 | 显示全部楼层
遇到相同问题,楼主解决没?
点评回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-4-20 18:02

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表