Cortex A8 LED 点亮程序分析
1 Cortex A8 LED 点亮程序分析
1.1 环境搭建准备工作
软件环境: 1.下载eclipse软件(绿色软件)
2. 安装“yagarto-bu-2.22_gcc-4.7.1-c-c++_nl-1.20.0_gdb-7.4.1_eabi_20120616.exe”
3. tftpd32.exe
硬件平台: FS_S5PC100
搭建硬件环境: 1.PC UART-->开发板串口COM1(通过串口线)
2. 电脑网卡-->开发板网卡(通过网线)
1.2 启动Eclipse 软件,导入已有LED project
1.3 Makefile 文件分析
红色字体必须根据实际安装路径和项目路径细微修改
# CORTEX-A8 PERI DRIVER CODE
# VERSION 1.0
# ATHUOR lapset ([email protected])
# MODIFY DATE
# 2012.2.22 by lapset ,to change the format of Makefile
#NOTE :please fix the following info to adpat to your environment
CROSS_COMPILE=arm-none-eabi-
LDPATH="C:\Program Files\yagarto\lib\gcc\arm-none-eabi\4.7.1\include"
OUTPATH="G:\tftp"
NAME=led
COMMONPATH = "G:\ARM\example modify\led_FS_S5PC100\common\include"
#=============================================================================#
#DO NOT TO CHANG THE CODE AFTER THIS !!!
export CFLAGS LD CC STRIP OBJCOPY OBJDUMP COMMONPATH
CFLAGS += -g -O0 -fno-strict-aliasing -mabi=apcs-gnu -mfpu=vfpv3 -mfloat-abi=softfp -fno-builtin -nostdinc -isystem $(LDPATH) -I $(COMMONPATH)
LD = $(CROSS_COMPILE)ld
CC = $(CROSS_COMPILE)gcc
STRIP = $(CROSS_COMPILE)strip
OBJCOPY = $(CROSS_COMPILE)objcopy
OBJDUMP = $(CROSS_COMPILE)objdump
OBJS := start/start.o common/src/printf.o common/src/uart.o common/src/_udivsi3.o common/src/_umodsi3.o $(NAME).o
SUBDIRS := common/src/ start/
all:$(SUBDIRS)$(OBJS)
$(LD) $(OBJS) -Tmap.lds -o $(NAME).elf
$(OBJCOPY) -O binary $(NAME).elf $(NAME).bin
$(OBJDUMP) -D $(NAME).elf > $(NAME).dis
cp ./$(NAME).bin $(OUTPATH)
$(SUBDIRS):
$(MAKE) -C [email protected]
%.o: %.S
$(CC)$(CFLAGS) -c -o [email protected] $<
%.o: %.c
$(CC)$(CFLAGS) -c -o [email protected] $<
clean:
rm -rf $(OBJS) *.elf *.bin *.dis $(OUTPATH)/$(NAME).bin
1.4 Build project 生成led.bin 文件
1. 鼠标右击project name,选择“Build Project”
2. 成功后,会在该目录下【OUTPATH="G:\tftp"】生成led.bin文件,
如下所示,将tftpd32.exe和led.bin放在同一个目录下
1.5 配置ip地址
1. 让开发板上电,进入uboot
2. 输入pri 打印环境变量,使用setenv 命令来修改参数,让ip和PC ip地址保持一致
3. Ping ip地址,显示alive字样,表示网络连接OK
4. 打开PC上的tftpd32.exe 软件,设置好对应的ip地址
5.执行tftp 下载led.bin到内存0x20008000地址处,然后运行该程序”go 20008000”