嵌入式linux——点亮led灯(二)

  刚才在jz2440板子上写了一个点亮中间led的程序,前前后后十几分钟才好。最终代码

.text
.global _start

_start:
/* 在这个程序中,完成点亮中间的led灯D11
 *  GPF5 从原理图得知,低电平点亮
 * GPFCON  0x56000050
 * GPFDAT  0x56000054

 */
    ldr r0, =0x56000050
    ldr r1, =0x400
    str r1, [r0]

    mov r0, #0
    ldr r1, =0x56000054
    str r0, [r1]
halt:
    b halt

makefile如下

all:
    arm-linux-gcc -c -o led_on.o led_on.S
    arm-linux-ld -Ttext 0 led_on.o -o led_on.elf
    arm-linux-objcopy -O binary -S led_on.elf led_on.bin
    arm-linux-objdump -D led_on.elf > led_on.dis
clean:
    rm *.bin *.o *.elf

这个点灯程序还是比较简单的,在原理图上找到led连接的io口,在看一下高低电平点亮。

然后,往配置寄存器地址里面写配置io口的配置输出。往数据寄存器地址写入输出高低电平,即可。

在makefile文件中,用arm-linux-gcc编译器:.s -> .o -> .elf -> .bin 就有了bin文件可以烧到板子上看一下现象。

原文地址:https://www.cnblogs.com/tech-zyl/p/9801039.html

时间: 2024-10-17 15:56:00

嵌入式linux——点亮led灯(二)的相关文章

TQ2440按键点亮LED灯的裸机程序

一,说到做ARM的裸机程序,很多人马上就会联想到一个名为ADS的开发工具,但是我们在linux下同样也可以做ARM的裸机程序,下面来说说其具体实施过程: 步骤一:编辑代码,这个没什么好说的. 步骤二:编译代码,编译代码分为三个方面的内容:1.链接脚本 2.用命令行确定链接时的文件顺序 3.用命令行编译.这三部分的内容可以全部写成一个Makefile文件,编译的时候执行make命令就可以了. 步骤三:把编译后的".bin"文件烧写进开发板,重新上电观察效果. 二,TQ2440按键点亮LE

嵌入式linux面试题解析(二)——C语言部分二

嵌入式linux面试题解析(二)--C语言部分二 1..h头文件中的ifndef/define/endif 的作用?    答:防止该头文件被重复引用. 2.#include 与 #include "file.h"的区别?    答:前者是从Standard Library的路径寻找和引用file.h,而后者是从当前工作路径搜寻并引用file.h. 3.描述实时系统的基本特性    答 :在特定时间内完成特定的任务,实时性与可靠性. 4.全局变量和局部变量在内存中是否有区别?如果有,是

嵌入式linux面试题解析(二)——C语言部分三

嵌入式linux面试题解析(二)--C语言部分三 1.下面的程序会出现什么结果#include <stdio.h>#include <stdlib.h> #include <string.h>void getmemory(char *p){    p=(char *) malloc(100);    strcpy(p,"hello world");}int main( ){    char *str=NULL;    getmemory(str); 

嵌入式 Linux开发Kernel移植(二)——kernel内核配置和编译

嵌入式 Linux开发Kernel移植(二)--kernel内核配置和编译 本文选择linux 2.6.35.7版本kernel进行实践. 一.linux kernel源码目录分析 Kbuild,Kernel Build,管理内核编译的文件 Makefile,kernel工程的Makefile. arch,体系架构,arch目录下的子目录存放的是不同种类的架构 block,块设备,一般是存储设备,存放的块设备管理的相关代码 crypto,加密相关,存放加密算法实现代码 Documentation

嵌入式linux开发环境搭建(二)——NFS服务器的搭建

嵌入式linux开发环境搭建(二)--NFS服务器的搭建 系统环境:Ubuntu 14.04 server amd64 1.安装 apt-get install nfs-common nfs-kernel-server 2.修改配置文件/etc/exports /home/nfs 192.168.0.0/24(rw,sync,no_subtree_check) 3.重启NFS服务器 /etc/init.d/nfs-kernel-server start 4.查看NFS设置 showmount -

嵌入式 Linux根文件系统移植(二)——根文件系统简介

嵌入式 Linux根文件系统移植(二)--根文件系统简介 根文件系统是内核启动时挂载的第一个文件系统,内核代码映像文件保存在根文件系统中,而系统引导启动程序会在根文件系统挂载之后从中把一些基本的初始化脚本和服务等加载到内存中去运行. 一.嵌入式设备文件系统 在嵌入式Linux应用中,主要的存储设备为 RAM(DRAM, SDRAM)和ROM(常采用FLASH存储器),常用的基于存储设备的文件系统类型包括:jffs2, yaffs, cramfs, romfs, ramdisk, ramfs/tm

嵌入式linux开发uboot移植(二)——uboot工程源码目录分析

嵌入式linux开发uboot移植(二)--uboot工程源码目录分析 本文分析的uboot为uboot_smdkv210,是三星官方发布的基于S5PV210评估开发板对应的uboot. 一.uboot源码目录结构解析 1.cpu 本文件夹下的子文件与处理器相关,每个文件夹代表一种CPU系列.每个子目录中都包括cpu.c.interrupts.c.start.S文件. cpu.c主要用于初始化CPU.设置指令Cache和数据Cache等 interrupt.c主要用于设置系统的各种中断和异常 s

嵌入式Linux裸机开发(十二)——iNand简介

嵌入式Linux裸机开发(十二)--iNand简介 一.iNand简介 iNand是SanDisk公司研发的存储芯片,可以看成SD卡或MMC卡芯片化. iNand是SanDisk公司符合eMMC协议的芯片系列名称,内部采用MLC存储颗粒.iNand接口电路设计复杂,功能完善,提供eMMC接口协议,与SoC的eMMC控制器配对通信. 相对MLC NandFlash,iNAND有以下优点: 1.提高性能 A.减少SOC的工作量,节约SOC资源. 如果使用MLC做存储,SOC要参与FLASH的坏块管理

第二章之在BL1中点亮LED灯

1,u-boot中第一个入口在./arch/arm/cpu/armv7/start.S 翻到153行:如下图 前面都是进行一些基本设置,不用管. cpu_init_cp15设置协处理器, cpu_init_crit则跳转到其它地方,所以要点板子上电点灯要在152行之前. 2,通过板子资料,通过设置GPIO点亮LED灯,因为了 start.S是用汇编语言写的,所以点亮LED灯也要用汇编语言 代码如下: 1 gpin_out: 2 ldr r11,=0xE0200280 3 ldr r12,=0x0