×
单片机 > 单片机程序设计 > 详情

S3C2440之裸机之汇编点亮LED灯

发布时间:2021-12-15 发布时间:
|

虚拟机环境:Oracle VM VirtualBox

Linux系统:ubuntu_14.04.6

交叉编译工具:[100ask分享的所有文件](/zixunimg/eeworldimg/eyun.baidu.com/s/3b1UtLc)

100ask分享的所有文件 > 002_JZ2440资料光盘_20180516(免费) > 资料光盘 > A盘 > tools.zip > arm-linux-gcc-4.3.2.tar.bz2

gcc-3.4.5-glibc-2.3.6/bin


第一步:查看原理图

输出低电平点亮LED灯
输出高电平熄灭LED灯

第二步:查看芯片手册

相应引脚配置为输出

输出低电平


第三步:编写程序

led_on.S:


.text

.global _start


_start:

LDR R0,=0x56000050

MOV R1,#0x00001000

STR R1,[R0]


LDR R0,=0x56000054

MOV R1,#0x00000000

STR R1,[R0]


MAIN_LOOP:

B MAIN_LOOP


第四步:编写makefile

makefile:


ARM_LINUX_XXX=/home/xlbtlmy/Desktop/ARM_Linux/gcc-3.4.5-glibc-2.3.6/bin


CC=$(ARM_LINUX_XXX)/arm-linux-gcc

LD=$(ARM_LINUX_XXX)/arm-linux-ld

OBJCOPY=$(ARM_LINUX_XXX)/arm-linux-objcopy

OBJDUMP=$(ARM_LINUX_XXX)/arm-linux-objdump

TARGET=$(OPT)


src=$(shell ls *.S)

objs=$(patsubst %.S,%.o,$(src))


BIN=$(TARGET).bin

ELF=$(TARGET).elf

DIS=$(TARGET).dis


$(BIN):$(objs)

$(LD) -Ttext 0x00000000 $^ -o $(ELF)

$(OBJCOPY) -O binary -S $(ELF) $(BIN)

$(OBJDUMP) -D -m arm $(ELF) > $(DIS)


%.o:%.S

$(CC) -c -o $@ $<


.PHONY:clean

clean:

rm -f *.o *.bin *.elf *.dis


make OPT=led_on


第五步:烧录运行

eop.bat:


@echo off


:JTAG(0:OpenJTAG 1:DongleJTAG 2:Wiggler)

SET JTAG=0

:CPU(0:S3C2410 1:S3C2440 2:S3C6410)

SET CPU=1

:Flash(0:Nand 1:Nor)

SET Flash=0

:Access(0:Write 1:Read)

SET Access=0

:Offset()

SET Offset=0

:File()

SET File=led_on.bin


oflash %JTAG% %CPU% %Flash% %Access% %Offset% %File%


pause


第五步:观察实验现象

左边的LED灯被点亮


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机中断源的扩展方法