嵌入式学习-uboot-lesson5-点亮LED
来源:互联网 发布:monaco for windows 编辑:程序博客网 时间:2024/05/22 02:20
用于测试前面所写的代码的正确性
1.LED原理图
根据上面两幅图可以得知,4个LED的寄存器分别为GPM0 GPM1 GPM2 GPM3
查看GPM对应的寄存器
GPMCON 为配置寄存器 选择该端口作为输入还是输出
GPMDAT为数据寄存器,用于存放数据
2.配置GPMCON
配置其为输出模式,即GPM0 GPM1 GPM2 GPM3都配置为0b0001
3.配置GPMDAT
需要哪个LED亮时,根据电路图,则配置其为低电平
@****************************@name: start.S@by : stone@time: 2016.6.24@function: 点亮LED@****************************.text.global _start @将_start声明为全局变量_start: b reset ldr pc, _undefined_instruction ldr pc, _software_interrupt ldr pc, _prefetch_abort ldr pc, _data_abort ldr pc, _not_used ldr pc, _irq ldr pc, _fiq_undefined_instruction: .word undefined_instruction_software_interrupt: .word software_interrupt_prefetch_abort: .word prefetch_abort_data_abort: .word data_abort_not_used: .word not_used_irq: .word irq_fiq: .word fiq undefined_instruction: @处理未定义指令异常 nopsoftware_interrupt: @软中断 nopprefetch_abort: @预取指令异常 nopdata_abort: @数据访问异常 nopnot_used: @空位 nopirq: @中断 nopfiq: @快速中断 nopreset: @reset bl set_svc @设置为SVC模式 bl set_peri_port @外设基地址初始化 bl disable_watchdog @关闭看门狗 bl disable_interrupt @关闭中断 bl disable_mmu @关闭mmu bl light_led @点亮LEDset_svc: mrs r0, cpsr @将值取出cpsr寄存器 bic r0, r0, #0x1f @将后5位 即M[4:0]清零 orr r0, r0, #0xd3 @0b10011 转化为16进制为0x13 同时为了屏蔽irq和fiq,可以将其设置为0b11010011即0xd3 msr cpsr, r0 @将值送回cpsr寄存器 mov pc, lr @返回set_peri_port: ldr r0, =0x70000000 @基地址 orr r0, r0, #0x13 @256MB mcr p15,0,r0,c15,c2,4 @写入cp15 mov pc, lr#define pwTCON 0x7E004000 @WTCON寄存器disable_watchdog: ldr r0, =pwTCON @把地址装载到R0 mov r1, #0x0 @置0,关闭看门狗 str r1,[r0] mov pc,lrdisable_interrupt: mvn r1,#0x0 @0x0 取反,给r1 ldr r0,=0x71200014 @VIC0 str r1,[r0] ldr r0,=0x71300014 @VIC1 str r1,[r0] mov pc,lrdisable_mmu: mcr p15,0,r0,c7,c7,0 @使ICACHE 和DCACHE 无效 mrc p15,0,r0,c1,c0,0 @read control register bic r0,r0,#0x00000007 @mmu 和 dcache置零 mcr p15,0,r0,c1,c0,0 @write control register mov pc,lr#define GPMCON 0x7F008820 @控制寄存器#define GPMDAT 0x7F008824 @数据寄存器 light_led: ldr r0,=GPMCON ldr r1,=0x1111 @输出模式 str r1,[r0] ldr r0,=GPMDAT ldr r1,=0x00 @低电平点亮 str r1,[r0] mov pc,lr
菜鸟一枚,如有错误,多多指教。。。
0 0
- 嵌入式学习-uboot-lesson5-点亮LED
- 嵌入式学习-uboot-lesson9.2-C点亮LED
- uboot学习笔记(1.2点亮LED灯)
- Uboot中点亮LED灯
- 嵌入式学习笔记002-裸奔篇之点亮led
- 嵌入式系统学习——S3C2451点亮LED
- 嵌入式驱动编写-点亮LED驱动程序
- 嵌入式linux裸板开发--点亮LED
- STM32学习之点亮LED
- 嵌入式Linux学习笔记(5)——点亮mini2440 LED
- 纯汇编点亮led-以替代uboot的方式执行
- 汇编+C点亮led-以替代uboot的方式执行
- 汇编+C点亮led-用uboot的go命令运行
- 点亮LED
- 点亮LED
- 点亮LED
- 点亮led
- MCU学习1--点亮LED灯
- RxJava 学习笔记(三)
- 静态类,静态函数,静态变量
- Java获取路径
- python的正则表达式
- 【StringUtils】判断字符串是否有值,判断多个字符串是否相等
- 嵌入式学习-uboot-lesson5-点亮LED
- 随机生成指定位数的验证码
- 文章标题
- 【Python学习日记】生成器 和 迭代器
- mysql 用户变量不能赋予null值
- 码代码的小女孩(来自noip贴吧)
- UIBarButtonItem 自定义 RightBarButtonItem
- 面试题总结
- css的文本装饰,文本缩进,空白符,换行符使用示例