当前位置: 首页 > news >正文

制作企业网站页面的实训报告交通建设监理协会网站

制作企业网站页面的实训报告,交通建设监理协会网站,房地产型网站建设,泉州网站建站推广要求: 1、轮流将LED1、LED2、LED3及蜂鸣器点亮 2、基于STM32MP157AAA,阅读原理图和STM32MP157芯片手册 3、ARM汇编指令点灯 1、运行效果 汇编点灯 2、通过查询原理图和芯片手册,得到以下结论: 3、汇编源码 .text .global _start…

要求:

1、轮流将LED1、LED2、LED3及蜂鸣器点亮

2、基于STM32MP157AAA,阅读原理图和STM32MP157芯片手册

3、ARM汇编指令点灯

1、运行效果

汇编点灯

2、通过查询原理图和芯片手册,得到以下结论:

3、汇编源码

.text 
.global _start
_start:
@R0 存放寄存器在内存中的map地址
@R1 存放寄存器的值@1 配置RCC: LD1、LD2、LD3和蜂鸣器的使能
ldr R0, =(0x50000000+0xA28)
ldr R1, [R0]
orr R1, R1, #0x32
str R1, [R0]@2 配置MODER寄存器
@2.1 配置LED1、LED3
ldr R0, =0x50006000
ldr R1, [R0]
bic R1, #(0x33<<16)
orr R1, #(0x11<<16)
str R1, [R0]
@2.2 配置LED2
ldr R0, =0x50007000
ldr R1, [R0]
bic R1, #(0x3<<20)
orr R1, #(0x1<<20)
str R1, [R0]
@2.3 配置蜂鸣器
ldr R0, =0x50003000
ldr R1, [R0]
bic R1, #(0x3<<12)
orr R1, #(0x1<<12)
str R1, [R0]@3 配置OTYPER寄存器
@3.1 配置LED1、LED3
ldr R0, =(0x50006000+0x04)
ldr R1, [R0]
bic R1, #(0x5<<8)
str R1, [R0]
@3.2 配置LED2
ldr R0, =(0x50007000+0x04)
ldr R1, [R0]
bic R1, #(0x1<<10)
str R1, [R0]
@3.3 配置蜂鸣器
ldr R0, =(0x50003000+0x04)
ldr R1, [R0]
bic R1, #(0x1<<6)
str R1, [R0]@4 配置OSPEEDR寄存器
@4.1 配置LED1、LED3
ldr R0, =(0x50006000+0x08)
ldr R1, [R0]
bic R1, #(0x33<<16)
str R1, [R0]
@4.2 配置LED2
ldr R0, =(0x50007000+0x08)
ldr R1, [R0]
bic R1, #(0x3<<20)
str R1, [R0]
@4.3 配置蜂鸣器
ldr R0, =(0x50003000+0x08)
ldr R1, [R0]
bic R1, #(0x3<<12)
str R1, [R0]@5 配置PUPDR寄存器
@5.1 配置LED1、LED3
ldr R0, =(0x50006000+0x0C)
ldr R1, [R0]
bic R1, #(0x33<<16)
str R1, [R0]
@5.2 配置LED2
ldr R0, =(0x50007000+0x0C)
ldr R1, [R0]
bic R1, #(0x3<<20)
str R1, [R0]
@5.3 配置蜂鸣器
ldr R0, =(0x50003000+0x0C)
ldr R1, [R0]
bic R1, #(0x3<<12)
str R1, [R0]@死循环让
loop:bl bee_offbl led1_onbl delay	bl led1_offbl led2_onbl delaybl led2_offbl led3_onbl delaybl led3_offbl bee_onbl delayb loopdelay:mov R10, #0x10000000
d2:sub R10, R10, #1cmp R10, #0bne d2mov PC, LRled1_on:
ldr R0, =(0x50006000+0x14)
ldr R1, [R0]
orr R1, #(0x1<<10)
str R1, [R0]
mov PC, LRled2_on:
ldr R0, =(0x50007000+0x14)
ldr R1, [R0]
orr R1, #(0x1<<10)
str R1, [R0]
mov PC, LRled3_on:
ldr R0, =(0x50006000+0x14)
ldr R1, [R0]
orr R1, #(0x1<<8)
str R1, [R0]
mov PC, LRbee_on:
ldr R0, =(0x50003000+0x14)
ldr R1, [R0]
orr R1, #(0x1<<6)
str R1, [R0]
mov PC, LRled1_off:
ldr R0, =(0x50006000+0x14)
ldr R1, [R0]
bic R1, #(0x1<<10)
str R1, [R0]
mov PC, LRled2_off:
ldr R0, =(0x50007000+0x14)
ldr R1, [R0]
bic R1, #(0x1<<10)
str R1, [R0]
mov PC, LRled3_off:
ldr R0, =(0x50006000+0x14)
ldr R1, [R0]
bic R1, #(0x1<<8)
str R1, [R0]
mov PC, LRbee_off:
ldr R0, =(0x50003000+0x14)
ldr R1, [R0]
bic R1, #(0x1<<6)
str R1, [R0]
mov PC, LR.end

4、疑问

4.1 汇编代码优化

        从源码中可以看出,其实有大量的重复代码,作为一名“资深”程序员,很想抽成一个一个的函数。但是实际中,这样做一定有大量的push/pop操作,而且如果程序段跨度过大,代码段的交替跳转,有可能还会影响程序执行效率(CPU会将执行代码的前后一段调入到多级缓存中,以提升执行效率)。

        因此,在编写汇编的时候,应该遵循执行效率优先,还是可读性和可复用性呢?

4.2 一段反汇编代码

 如图所示, =(0x50000000+0xA28)被译成了[pc, #444], 不太理解。

http://www.yayakq.cn/news/753174/

相关文章:

  • 重庆建设厂招工信息网站手机网页加速
  • 轻云服务器 多个网站一站式服务logo设计
  • 网站流量查询网站统计查询云南信息发布平台
  • 山西 网站建设网站开发 自动填写表单
  • 美橙互联 送网站南通网站优化公司
  • 百度网站排名抓取规则广东网站制造科技有限公司
  • php 微网站开发电子商务营销策略分析
  • 购物网站开发实例网站开发挣钱吗
  • 网站如何做m适配网站开发语言的选择
  • h5响应式网站如何修改首页郑州比较大的网络公司
  • 吉林公路建设有限公司网站网站推广业务
  • 做百度网站一般多少钱伍佰亿网站备案收费
  • 如何做分类网站信息营销医院网站建设方案计划书
  • 找做网站公司建设银行网站上怎么查看账户
  • 儿童学做彩泥的网站内蒙古企业网站建设
  • 中国建设银行淮南分行网站哈尔滨企业制作网站
  • Joomla外贸网站模板网站开发入那个科目
  • 肇庆网站建设公司新浪做网站
  • 网站建设主要做什么编程培训学校
  • 学校官方网站建设谷歌seo是啥
  • 个人网站建设的背景提供模板网站制作多少钱
  • 衡水网站建设怎么做35岁了还能学平面设计吗
  • 定制旅游网站建设成都网站建设源代码
  • 网站建设worldpress织梦cms手机网站源码
  • 怎样制作网站二维码开发平台选择
  • 成都网站建设 好多科技电影采集网站怎么做seo
  • 云服务器网站建设做商城网站还要服务器
  • 手机网站微信支付代码在线图片编辑文字
  • 许昌建设网站哪家好免费源码资源站
  • 扬州哪里做网站好在网站上部署淘宝联盟推广代码的推广模式.