嵌入式Linux学习(三)点亮LED

ARM裸机程序在Linux平台上的开发步骤

1、编辑源文件(Source Insight、Notepade++)

2、交叉编译(arm-linux-gcc)

3、烧写程序(Open JTAG、oflash)

 

点亮LED需要做的

1、配置LED对应管脚为输出

2、将该管教设置为低电平

 

汇编文件编写如下

@***************************************************

.text
.global _start
_start:
        LDR    R0,=0x56000050     @R0设为GPFCON寄存器
                                  @用于配置GPIO端口输出或输入
        MOV    R1,#0x00000100
        STR    R1,[R0]            @设置GPF4为输出,位[9:8]=01

        LDR    R0,=0x56000054     @R0设为GPFDAT寄存器
                                  @用于配置端口的输出值
        MOV    R1,#0x00000000     @位4为0则灯熄灭
        STR    R1,[R0]
MAIN_LOOP:
        B      MAIN_LOOP          @死循环

编写Makefile文件 

led_on.bin : LED.S
        arm-linux-gcc -g -c -o led_on.o LED.S   ;由.S文件生成可执行文件led_on.o
                                                ;同时生成可调式信息
        arm-linux-ld -Ttext 0x0000000 -g led_on.o -o led_on_elf
                                                ;设置代码段的起始位置为0x0000000
                                                ;将led_on.o连接成可执行文件led_on_elf
        arm-linux-objcopy -O binary -S led_on_elf led_on.bin
                                                ;复制目标文件led_on_elf的内容至led_on.bin中
                                                ;并完成文件格式的转换
clean:
        rm -f   led_on.bin led_on_elf *.o

在Linux命令行中输入make实现编译,并生成了led_on.bin文件

将led_on.bin通过网络服务上传到windows

连接open JTAG在目标机和PC端

在Windows下打开CMD,进入led_on.bin所在目录,执行 oflash led_on.bin,烧入目标机的Nand FLash

从Nand Flash启动目标机,验证程序

 

JZ2440片内带有一个SRAM,外接Nand Flash和Nor Flash,两种启动方式的区别如下

1、从Nand Flash启动

      —— 先将Nand Flash的前4k内容复制到片内SDRAM的0地址处

      —— CPU从SDRAM的0地址处开始执行

2、从Nor Flash启动

     CPU直接从Nor Flash的0地址处开始取指执行

 

 

你可能感兴趣的:(Linux)