点亮指路灯:
学习四环节: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灯的更多相关文章

  1. 第二章之S5PV210在BL1中点亮LED灯

    1,u-boot中第一个入口在./arch/arm/cpu/armv7/start.S 翻到153行:如下图 前面都是进行一些基本设置,不用管. cpu_init_cp15设置协处理器, cpu_in ...

  2. C语言版——点亮LED灯,深入到栈

    在上一篇进行了汇编语言的编写之后,我们采用C语言来编写程序,毕竟C语言才是我们使用最多的语言. 仅仅是点亮LED灯显然太过于简单,我们需要分析最后的反汇编,了解函数调用栈,深入C语言骨髓去分析代码,并 ...

  3. Raspberry PI 系列 —— 裸机点亮LED灯

    Raspberry PI 系列 -- 裸机点亮LED灯 背景 近期刚买了Raspberry PI B+,配置执行了官方提供的Raspbian系统,折腾了一周Linux系统,感觉没啥意思,于是就试着想了 ...

  4. 初探RT-Thread系统在GD32E103x芯片上的使用,点亮LED灯

    初探RT-Thread系统在GD32E103x芯片上的使用,点亮LED灯 前言 ​ 随着中美贸易战的加剧,很多公司越来越重视使用国产技术的重要性.使用国产技术,一方面可规避国外对技术的封锁造成产品核心 ...

  5. 第7章 使用寄存器点亮LED灯

    第7章     使用寄存器点亮LED灯 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fir ...

  6. 第7章 使用寄存器点亮LED灯—零死角玩转STM32-F429系列

    第7章     使用寄存器点亮LED灯 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fir ...

  7. 字符型设备驱动程序-first-printf以及点亮LED灯(三)

    根据  字符型设备驱动程序-first-printf以及点亮LED灯(二) 学习 修改函数 中的printf 为 printk. #include <linux/module.h> /* ...

  8. JZ2440开发板:用按键点亮LED灯(学习笔记)

    本文是对韦东山嵌入式第一期学习的记录之一,如有您需要查找的信息,可以继续往下阅读. 想要用按键点亮LED灯,就需要知道按键和LED灯的相关信息,这样才可以进行之后的操作.阅读JZ2440的原理图,可以 ...

  9. 30个物联网传感器小实验:三行代码点亮LED灯

    30个物联网传感器小实验:三行代码点亮LED灯 三行代码点亮LED灯 LED灯闪烁 LED灯调亮度 LED淡入淡出 不写一行代码点亮LED灯 全彩RGB灯 面包板 30个物联网传感器小实验:三行代码点 ...

  10. STM32F4 阿波罗寄存器点亮LED灯

    学习步骤: 使用寄存器点亮LED灯,需要进行如下的步骤,LED灯属于外设部分,首先需要开启外设的时钟使能,然后LED灯是PB1口,(芯片是正点原子的阿波罗),接着定义GPIOB口的输出模式,为上拉.推 ...

随机推荐

  1. slice、splice与split傻傻分不清

    每每看到这几个,就蒙圈了,这都是啥呀? 既然这么容易混淆,我还是来做个小笔记吧,以便日后查阅:   1.slice(数组) 定义:slice() 方法可从已有的数组中返回选定的元素. 用法:array ...

  2. Spring注解依赖注入的三种方式的优缺点以及优先选择

    当我们在使用依赖注入的时候,通常有三种方式: 1.通过构造器来注入: 2.通过setter方法来注入: 3.通过filed变量来注入: 那么他们有什么区别吗?应该选择哪种方式更好? 三种方式的区别小结 ...

  3. AD转换

    一.AD转换的概念  AD转换的功能是把模拟量电压转换为数字量电压.DA转换的功能正好相反,就是讲数字量转换位模拟量. 二.芯片PCF8591介绍 PCF8591是一个单片集成.单独供电.低功耗.8- ...

  4. C# WinForm程序退出的方法比较

    1.this.Close();   只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出: 2.Application.Exit();  强制所有消息中 ...

  5. vim编辑操作

    vim    插入模式        a    光标后        A    行尾        o    光标所在行下一行        O    光标所在行上一行        i    光标前 ...

  6. SVN使用基础

    1.安装svn centos:yum install subversion -y ubuntu:apt-get install subversion -y 2.创建库目录 mkdir /opt/.sv ...

  7. 1.NET是什么

  8. ssm web.xml配置解析

    以下为web.xml的配置<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi=& ...

  9. 通俗易懂的分析如何用Python实现一只小爬虫,爬取拉勾网的职位信息

    源代码:https://github.com/nnngu/LagouSpider 效果预览 思路 1.首先我们打开拉勾网,并搜索"java",显示出来的职位信息就是我们的目标. 2 ...

  10. 微信开发获取media_id错误码汇总

    微信开发遇到的错误汇总: 1. 错误代码40001 "errcode": 40001,    "errmsg": "invalid credentia ...