arm-点亮led灯
点亮指路灯:
学习四环节:led原理图分析,芯片手册导读,思维导图设计,
为什么要使用led:通常led是作为程序调试的重要手段。
led原理图:led实质为发光二极管,当其两端电压一定时,即处于导通状态。
OK6410核心板原理图-256MDDR-2g p4页找到nled所对应的引脚分别为GPM1,GPM2,GPM0,GPM3,将引脚处设为低电平,二极管即可导通。
--------------------------------------------------------
GPIO(general-purpose input/output ports):cpu经常需要控制许多结构简单的外部设备或者电路(通常只有开和关两种状态),使用传统的串口或者usb口就显得复杂,所以就有了GPIO(通用可编程I/O口).
一个GPIO端口至少需要两个寄存器,一个是“控制寄存器(选择该端口是输入还是输出等)”还有一个是“数据寄存器”。
看芯片手册S3C6410X中GPIO这一章。
--------------------------------------------------
思维导图设计:
led驱动:
1.设置GPIO的控制寄存器,将引脚设置为输出的功能。
2.根据原理图设置GPIO数据寄存器,点亮led.
------------------------------------------------------
点亮led:
先打开底板原理图查看user led 原理图-》然后打开核心板原理图-》查看nled所对应的引脚。发现ok6410的led使用的NLED1,2,3,4-GPM0,1,2,3.打开6410的芯片手册。
代码:
bl light_led
#define GPMCON 0x7F008820
#define GPMDAT 0x7F008824
@控制寄存器的设置
light_led:
ldr r0,=GPMCON //将控制寄存器地址装载到肉r0中
ldr r1,=0x1111 //将即将改变的各个引脚状态用16进制的方式装载到r1中
str r1,[r0] //将r1中的内容放到r0中
@数据寄存器的设置
ldr r0,=GPMDAT //将GPIO数据寄存器的地址装载到r0中
mov r1,#0xf //存储即将改变的数据寄存器中各个位的值。
str r1,[r0] //让led都不亮
mov r1,#0x1 //同上此处可用ldr指令
srt r1,[r0]
mov pc,lr
---------------------------------------------------------
发现u-boot烧写到开发板后不亮,然后再看看思维导图,发现6410中我们少做了一步工作,外设基地址的初始化
翻看我们arm11的手册,搜索cp15,(summary of CP15)p150页-》
可查看p263页
对于这个设置主要有两个方面:第一外设的基地址:
bl set_svc
bl set_peripheral_port
set_peripheral_port:
ldr r0,=0x70000000 //6410中可搜0x70000000,发现这是寄存器的基地址。
orr r0,r0,#0x16
mcr p15,0,r0,c15,c2,4,
mov pc,lr
arm-点亮led灯的更多相关文章
- 第二章之S5PV210在BL1中点亮LED灯
1,u-boot中第一个入口在./arch/arm/cpu/armv7/start.S 翻到153行:如下图 前面都是进行一些基本设置,不用管. cpu_init_cp15设置协处理器, cpu_in ...
- C语言版——点亮LED灯,深入到栈
在上一篇进行了汇编语言的编写之后,我们采用C语言来编写程序,毕竟C语言才是我们使用最多的语言. 仅仅是点亮LED灯显然太过于简单,我们需要分析最后的反汇编,了解函数调用栈,深入C语言骨髓去分析代码,并 ...
- Raspberry PI 系列 —— 裸机点亮LED灯
Raspberry PI 系列 -- 裸机点亮LED灯 背景 近期刚买了Raspberry PI B+,配置执行了官方提供的Raspbian系统,折腾了一周Linux系统,感觉没啥意思,于是就试着想了 ...
- 初探RT-Thread系统在GD32E103x芯片上的使用,点亮LED灯
初探RT-Thread系统在GD32E103x芯片上的使用,点亮LED灯 前言 随着中美贸易战的加剧,很多公司越来越重视使用国产技术的重要性.使用国产技术,一方面可规避国外对技术的封锁造成产品核心 ...
- 第7章 使用寄存器点亮LED灯
第7章 使用寄存器点亮LED灯 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fir ...
- 第7章 使用寄存器点亮LED灯—零死角玩转STM32-F429系列
第7章 使用寄存器点亮LED灯 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fir ...
- 字符型设备驱动程序-first-printf以及点亮LED灯(三)
根据 字符型设备驱动程序-first-printf以及点亮LED灯(二) 学习 修改函数 中的printf 为 printk. #include <linux/module.h> /* ...
- JZ2440开发板:用按键点亮LED灯(学习笔记)
本文是对韦东山嵌入式第一期学习的记录之一,如有您需要查找的信息,可以继续往下阅读. 想要用按键点亮LED灯,就需要知道按键和LED灯的相关信息,这样才可以进行之后的操作.阅读JZ2440的原理图,可以 ...
- 30个物联网传感器小实验:三行代码点亮LED灯
30个物联网传感器小实验:三行代码点亮LED灯 三行代码点亮LED灯 LED灯闪烁 LED灯调亮度 LED淡入淡出 不写一行代码点亮LED灯 全彩RGB灯 面包板 30个物联网传感器小实验:三行代码点 ...
- STM32F4 阿波罗寄存器点亮LED灯
学习步骤: 使用寄存器点亮LED灯,需要进行如下的步骤,LED灯属于外设部分,首先需要开启外设的时钟使能,然后LED灯是PB1口,(芯片是正点原子的阿波罗),接着定义GPIOB口的输出模式,为上拉.推 ...
随机推荐
- html日历(1)
<html> <head> <link rel="stylesheet" type="text/css" href="S ...
- 数据库 MySQL基础知识
(关于MySQL的安装,具体见下面博客:http://www.cnblogs.com/wj-1314/p/7573242.html) 一.什么是数据库 ? 数据库是按照数据结构来组织,存储和管理数据的 ...
- wamp配置虚拟机步骤
1.首先修改C:\Windows\System32\drivers\etc下的hosts文件 添加一行 127.0.0.1 myblog.org //映射到本机 2.然后修 ...
- VUE之ECMAScript6(es6)
es6:es:EMCAScript 6 (es2015)Emca:国际标准组织 1.常量和变量 const a = "hello" let:定义一个块级作用域的变量 需要先定义再使 ...
- 邓_ phpcms_
{pc:content action="lists" catid="$catid" num="10" order="id DESC ...
- Android + Eclipse + PhoneGap 环境配置
用了3天的时间,终于把环境搭建完毕,郁闷了N天,终于完成了.这里我只是讲述我安装的过程,仅供大家参考. 环境搭建首先要去下载一些安装包: (下载前注意一下,电脑是32位还是64位的请注意选择安装包) ...
- 一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](七)
前言 大家好,我依旧是你们的老朋友Rector,很高兴又在周五的时候准时和大家见面. Rector的系列文章[一步一步创建ASP.NET MVC5程序[Repository+Autofac+Autom ...
- mybatis实战教程三:多对多关联
MyBatis3.0 添加了association和collection标签专门用于对多个相关实体类数据进行级联查询,但仍不支持多个相关实体类数据的级联保存和级联删除操作 一.创建student.te ...
- background是什么样式?
background是什么样式? 给标签添加背景图片 分为: background: url("图片路径"); #添加图片 background-position: xpx ...
- 基于百度地图SDK和Elasticsearch GEO查询的地理围栏分析系统(2)-查询实现
在上一篇博客中,我们准备好了数据.现在数据已经以我们需要的格式,存放在Elasticsearch中了. 本文讲述如何在Elasticsearch中进行空间GEO查询和聚合查询,以及如何准备ajax接口 ...