一步步点亮LED(三)---开始写代码

下面是我写的点亮 LED 的代码:

 1 #define GPJ0CON 0xE0200240
 2 #define GPJ0DAT 0xE0200244
 3
 4 .globl _start
 5
 6 _start:
 7     ldr r0, =GPJ0CON
 8     ldr r1, =0x00111000
 9     str r1, [r0]
10     ldr r0, =GPJ0DAT
11     ldr r1, =~(0x1<<4)
12     str r1, [r0]
13 halt:
14     b halt

  上面代码中的 0xE0200240 和 0xE0200244 这两个地址值分别是特殊功能寄存器 GPJ0CON 和GPJ0DAT 的地址,在代码中操作这两个地址就是在操作这两个特殊功能寄存器。

  从代码中可以看出,汇编代码的第一个标号是 _start ,现在从链接程序的入口地址方面的知识来看就可以知道,_start 肯定是链接脚本指定的入口地址,我们也可以改掉它,使用其他标号,但必须使用特定的链接脚本。

  使用 .globl 伪指令来将 _start 标号声明为外部变量,以便 链接器 和 其他文件中的函数 可以使用。

时间: 2024-08-24 06:45:29

一步步点亮LED(三)---开始写代码的相关文章

一步步点亮LED(三)---GPIO概念和相关数据手册查阅

GPIO(General Purpose Input/Output)是通用输入输出,是s5pv210芯片上的引脚,但不是所有的引脚都可以用作GPIO.每个GPIO都是功能复用的,一个GPIO可以被配置成不同的功能. s5pv210 中的GPIO是以端口为单位来管理的,每个端口中含有不同数量的GPIO.根据s5pv210芯片的数据手册可以知道,s5pv210中包括了 34 个端口,共237个GPIO引脚.前面提到的led的负极连上的 GPJ0_3 ,其中 GPJ0 就是端口名称,后面的 3 代表着

一步步点亮LED(一)---硬件知识准备

要想点亮板子上的 LED 灯,首先第一步就是要了解开发板上 LED 的硬件原理电路,通过查看电路原理图,可以知道 LED 的硬件电路如下图所示 分析此部分电路原理图: VDD_5v 代表着 5v 的直流电压,是从 9v 的直流电源经过电源电路 得来的.如下图所示 VDD_IO 代表着 3.3v 的直流电压,是从 VDD_5v 的直流电压经过电路得来的.如下图所示 D22.D23.D24和D25这四个led的正极接在VDD_IO(3.3v),负极分别接在 GPJ0_3.GPJ0_4.GPJ0_5和

27.点亮led的操作

Led可以作为我调试程序的工具:在嵌入式系统软件,例如Bootloader和kernel,在开发初期,由于串口等硬件尚未被初始化,因此调试手段相当有限,这时候可以采用Led来作为调试手段. OK6410有关led的原理图: 从上图知道,要让led发光二极管,就是从右到左导通,右边是高电平,所以左边给低电平,二极管就会导通,发光了. 知道原理后,看看OK6410的核心板原理图,查看NLED1-4应该接到核心板的哪些引脚:led的部分截图: 我们从上面的原理图知道,led1-4对应的是GPM0-3.

树莓派点亮LED灯需要几行代码?3行。小孩子都能学会

目录 点亮LED灯 硬件连接 代码 闪烁的LED灯 呼吸灯 其他 点亮LED灯 硬件连接 找一个LED灯,连接如上图,注意长短引脚,经过这些年的狂轰乱炸,大家对于这个应该不漠视,毕竟Arduino都进教材了. 代码 我们先来看图形化的版本: from gpiozero import LED led = LED(17) led.on() 是的你没有看错,树莓派点亮LED只需要3行代码.只需要像Python的turtle编程一样导入需要用到的LED类,然后生成一个表示连接在17号GPIO引脚的LED

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

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

ARM学习篇一 点亮LED

要点亮LED,先决条件是什么,当然得有相应的硬件设施.板子的整个电路图比较大,我就直接取相关部分. 给发光二级管加上3.3v电压后,通过1k电阻,直接与S3C2440连接.至于为什么要加电阻,大家应该都知道,发光二极管的正向电阻很小,管子很容易因电流过大而烧坏.至于具体多少,可以看你买的管子的说明. 具体的烧写驱动安装,ARM集成开发环境安装我就不说了.一般都有手册,手册里面说得很清楚. 下面是代码实现: AREA LED,CODE,READONLY ENTRY CODE32GPFCON EQU

使用寄存器点亮LED——编程实战

stm32的编程和stc89c51还是存在着很多思想上的不同的,在51单片机中,我们点亮LED灯,只用给对应IO高低电平就可以了,而stm32中,就一个简单的GPIO,我们也需要配置好几个寄存器,而且,就算配置好GPIO寄存器,我们还必须有一步不能缺少的操作,那就是开启对应GPIO的时钟.在stm32的编程中,开启对应时钟是必不可少的一个操作,而且,开启时钟的操作必须在配置相应寄存器之前,以GPIO为例,如果我们先配置GPIO的寄存器,不开启时钟或者先配置GPIO寄存器,最后再开启时钟,都不能正

第11章 GPIO输出-使用固件库点亮LED—零死角玩转STM32-F429系列

第11章 ????GPIO输出-使用固件库点亮LED 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege ? 本章参考资料:<STM32F4xx参考手册>.库帮助文档<stm32f4xx_dsp_stdperiph_lib_um.chm>. 利用库建立好的工程模板,就可以方便地使用STM32标准库编写应用程序了,可以说从这一章我们才开始迈入STM32开发的大门. LE

bb_black_学习笔记——(3)点亮LED之shell命令

这次改变一下笔记的结构,直接上图.点亮LED永远是学习MCU,ARM,FPGA的入门例程,可以说是经典例程.这里笔者也从点亮LED开始开始ARM学习之旅. 接下来就开始点亮LED之旅,在开始之前需要向读者说明:本文作者也是一个ARM初学者,学习过程中也是在网上查找各种资料,最后总结于此.可以确定实验的过程中有好多地方笔者自己也是没有搞明白的,所以请读者原谅不能写的太透彻. 第一步:要点亮LED,首先需要了解GPIO的硬件位置,这样才能去操作相应的IO口,实现点灯目的 1.连接好bb-black之