点亮指路灯:
学习四环节: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. javascript 之继承-15

    继承 所谓继承就是子类继承父类的特征与行为,使得子类对象具与父类相同的行为.但是javascript 是没有class.抽象类.接口等抽象概念,javascript 只有对象,那么js中是如何让对象与 ...

  2. Spark算子--countByKey

    转载请标明出处http://www.cnblogs.com/haozhengfei/p/1633ffc63e2c925e930adadc9528c830.html  countByKey--Actio ...

  3. mysql中的union和order by、limit

      我有一个表 CREATE TABLE `test1` (  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,  `name` varchar(20) N ...

  4. 关于vueThink框架打包发布的一些问题

    刚开始发布自己的vueThink项目的时候,总是出现404错误,后来经过上网查找,发现是路径的问题,这方面的知识,网上很多,就不过多阐述了.我主要想说的是自己的项目发布的时候,admin账号登录的时候 ...

  5. gettype

    取得变量的类型. 语法: string gettype(mixed var); 返回值: 字符串 函数种类: PHP 系统功能 内容说明 本函数用来取得变量的类型.返回的类型字符串可能为下列字符串其中 ...

  6. 织梦dedeCMS留言薄

    dedeCMS留言薄模塊名爲guestbook, 留言薄模板:/templets/plus/guestbook.htm; 留言回覆模板: 管理員回覆調用/templets/plus/guestbook ...

  7. 7系列高速收发器总结 GTP IP核使用篇

    上一篇7系列收发器博文讲解了GTP IP核的基本配置,本文继续分析如何将它使用起来.生成IP核后打开example design,先看看工程中包含的文件结构. 顶层文件下包含了gtp ip核系统顶层文 ...

  8. zabbix入门知识

    zabbix入门知识 zabbix中文手册 https://www.zabbix.com/documentation/3.4/manual/ 1.zabbix介绍 Zabbix 是一个企业级的分布式开 ...

  9. 苹果新贵 Swift 之前世今生

    摘要 : 做为一个70后程序员,克里斯先后发明了 LLVM.Clang 和 Swift,请问你做了什么?   上 周出差劳顿,这篇文章几次动笔都未完成,常常躺倒床上就昏睡过去.南方的天气闷热潮湿,让我 ...

  10. Spring学习之路三——第一个Spring程序(体会IoC)

    体会IoC:Spring通过一种称作控制反转(IoC)的技术促进了松耦合.当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象.你可以认为IoC与JN ...