【ARM】Tiny4412裸机编程之LED(一)
00. 目录
文章目录
- 00. 目录
- 01. 控制原理
- 02. 配置寄存器
- 03. 程序示例一
- 04. 程序示例二
- 05. 程序示例三
- 06. 附录
01. 控制原理
咱们的LED在核心板上,所以需要看核心板的原理图
打开核心板原理图(Tiny4412-1412-Schematic.pdf)
由上图可知,Tiny4412有4个用户LED灯,控制它们四个引脚分别是GPM4_0~ GPM4_3,由原理可知,当IO引脚为高电平时,LED灯灭,当IO引脚为低电平时LED亮。我们要做的工作就是设置GPM4_0~ GPM4_3为输出功能,且控制且输出电平高低即可。
02. 配置寄存器
由原理图可知,程序只进行了两步操作。
第一步:设置GPM4_0~GPM4_3相对应的控制寄存器GPM4CON,使GPM4_0 GPM4_3四个引脚为输出功能。
第二步:设置其对应的数据寄存器GPM4DAT对应的4个bit位为0,使GPM4_0~ GPM4_3为低电平,4个LED灯全亮,使GPM4_0~ GPM4_3全为高电平,4个LED灯全灭。
03. 程序示例一
将所有的灯全部都亮
.section .rodata.align 2
.LC0:.string "led all on\n".section .text.align 2.global _start
_start:stmfd sp!, {lr}@配置为输出ldr r0, =0x110002E0 ldr r1, [r0]ldr r2, =0xffffbic r1, r1, r2@0x1 = Outputldr r2, =0x1111orr r1, r1, r2str r1, [r0]@设置低电平ldr r0, =0x110002E4 ldr r1, [r0]bic r1, r1, #0xfstr r1, [r0]@output led all onldr r0, =.LC0 mov lr, pcldr pc, =0x43e11a2cldmfd sp!, {pc}
Makefile
all:arm-linux-gcc -c test.s -o test.oarm-linux-ld -Ttext=0x40008000 test.o -o testarm-linux-objcopy -O binary test test.bin.PHONY:clean
clean:rm -rf test.o test test.bin
04. 程序示例二
将所有的灯全部都灭
.section .rodata.align 2
.LC0:.string "led all off\n".section .text.align 2.global _start
_start:stmfd sp!, {lr}@配置为输出ldr r0, =0x110002E0 ldr r1, [r0]ldr r2, =0xffffbic r1, r1, r2ldr r2, =0x1111orr r1, r1, r2str r1, [r0]@设置低点平ldr r0, =0x110002E4 ldr r1, [r0]orr r1, r1, #0xfstr r1, [r0]@output led all onldr r0, =.LC0 mov lr, pcldr pc, =0x43e11a2cldmfd sp!, {pc}
05. 程序示例三
所有led闪烁
.section .rodata.align 2
.LC0:.string "led all off\n".section .text.align 2.global _start
_start:stmfd sp!, {lr}@配置为输出ldr r0, =0x110002E0 ldr r1, [r0]ldr r2, =0xffffbic r1, r1, r2ldr r2, =0x1111orr r1, r1, r2str r1, [r0]1:@offldr r0, =0x110002E4 ldr r1, [r0]orr r1, r1, #0xfstr r1, [r0]@sleep 1ldr r0, =1000000 mov lr, pcldr pc, =0x43e26480@onldr r0, =0x110002E4 ldr r1, [r0]bic r1, r1, #0xfstr r1, [r0]@sleep 1ldr r0, =1000000 mov lr, pcldr pc, =0x43e26480b 1bldmfd sp!, {pc}
06. 附录
Exynos 4412 SCP_Users Manual_Ver.0.10.00_Preliminary0.pdf
【ARM】Tiny4412裸机编程之LED(一)相关推荐
- 【ARM】Tiny4412裸机编程之GPIO简介
00. 目录 文章目录 00. 目录 01. GPIO概述 02. GPIO寄存器 03. GPIO框图 04. 附录 01. GPIO概述 GPIO(General Purpose I/O Port ...
- 【ARM】Tiny4412裸板编程之LED(C语言)
00. 目录 文章目录 00. 目录 01. 控制原理 02. 配置寄存器 03. 程序示例一 04. 程序示例二 05. 程序示例三 06. 程序实例四 07. 附录 01. 控制原理 咱们的LED ...
- 【ARM】Tiny4412裸板编程之LED(二)
00. 目录 文章目录 00. 目录 01. 控制原理 02. 配置寄存器 03. 程序示例一 04. 程序示例二 05. 程序示例三 06. 附录 01. 控制原理 咱们的LED在核心板上,所以需要 ...
- s3c2440arm裸机编程之ADC触摸屏
ADC触摸屏 硬件原理 s3c2440有8通道的ADC,一次同时只能查询一个通道.分为A0~A7.这里的P(positive)表示的是正的意思 ADC通道 A4 TSYM -Y A5 TSYP ...
- Tiny4412汇编流水灯代码,Tiny4412裸机LED操作【转】
本转载自:http://www.techbulo.com/1313.html Tiny4412汇编流水灯代码,Tiny4412裸机LED操作 2014年10月20日 ⁄ 裸机程序 ⁄ 共 4171字 ...
- ARM嵌入式编程之STM32的命名方法 STM32F103VET6命名解释
ARM嵌入式编程之STM32的命名方法 STM32F103VET6命名解释: ARM嵌入式编程之STM32的命名方法 STM32F103VET6命名解释
- UART0串口编程(四):UART0串口编程之在UC/OS—II中遭遇的危机
UART0串口编程之在UC/OS-II中遭遇的危机 一.潜在的危机 1.在uc/os操作系统中设计串口编程时,由于ISR和多个任务并发执行,情况比较复杂.尤其是接收状态为被动状态时,只能靠串行口中断来 ...
- Raspberry PI 系列 —— 裸机点亮LED灯
Raspberry PI 系列 -- 裸机点亮LED灯 背景 近期刚买了Raspberry PI B+,配置执行了官方提供的Raspbian系统,折腾了一周Linux系统,感觉没啥意思,于是就试着想了 ...
- Linux内存管理:ARM64体系结构与编程之cache(3):cache一致性协议(MESI、MOESI)、cache伪共享
目录 为什么系统软件人员要深入了解cache? cache一致性协议 神马是MESI协议? MESI的操作 MESI状态图 演示:初始化状态为I的cache line 当本地CPU的缓存行状态为I时, ...
最新文章
- linux open()调用的注意事项
- 【linux基础】重命名文件和文件夹
- 计算机系统结构研究分支,“计算机系统结构” 课程教学探讨[J] 电子科技大学.doc...
- php amp ldquo 转换,php与html代码的若干转换
- 大数据时代第一部分思维导图_大数据时代总结思维导图模板分享
- windbg调试实例(4)--句柄泄露
- JAX-RS开发 hello world
- 我开发了一个对.NET程序进行瘦身的工具
- pythonstdin_python 笔试输入:sys.stdin.readline和input
- sh mysql configure_【翻译自mos文章】使用config.sh/config.bat来configureorre-con
- python xml解析cdata_python基于xml parse实现解析cdatasection数据
- 基础架构之GitLab
- python环境下数据操作_在windows环境下使用Python操作spatialite数据库
- Photoshop插件-HDR(五)-脚本开发-PS插件
- 北京大学计算机语言学,基于认知的汉语计算语言学研究_袁毓林pdf
- WIN7安装启动盘制作并支持usb3.0
- c语言叠阵题目怎么做,选出下列词语书写全正确的一组[]A、贪婪点辍忍军不禁玲珑剔透B、辜负骚扰擎天旱地多姿多采C、小憩茁壮怡然自得头昏目眩D、玷污糟蹋蜂围叠阵明察秋豪...
- 新世纪大学英语(第二版)综合教程第一册 Unit 1 (中英翻译和重点单词)
- IReport问题的整理
- 用python实现的钉钉后台开发
热门文章
- BIETLOLTP之概念熟悉
- 在发送键击时,求教Send与SendWait方法,应用于Win7和XP的不同。
- sql获取oracle数据库数据,通过sql语句获取数据库的基本信息
- 选择排序之小白学算法
- html也没锚点,css 锚点定位不了
- 日周月筛选器_举个栗子!Tableau 技巧(147):使用 动态参数 筛选到最新日期值...
- JDBC Statement PrepareStatement
- 正则-元字符 注意正则表达式中间不要随意加空格
- Xamarin 中Visual Studio创建项目提示错误
- 运算符之:2、算术运算符(7个)