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

宽城区网站建设淘宝怎么优化关键词步骤

宽城区网站建设,淘宝怎么优化关键词步骤,沧州网站制作多少钱,仿美团网站开发遇到的问题: 未开优化是正常执行,打开优化,无法运行,定位到异常语句 //ADC_REG 是ADC结果寄存器地址 uint32 adc *(uint32 *)ADC_REG; uint32 temp adc&0xffff;未优化汇编代码 //uint32 adc *(uint32*)ADC_REG; MOVW R…

遇到的问题:
未开优化是正常执行,打开优化,无法运行,定位到异常语句

//ADC_REG 是ADC结果寄存器地址
uint32 adc = *(uint32 *)ADC_REG;
uint32 temp = adc&0xffff;

未优化汇编代码

//uint32 adc = *(uint32*)ADC_REG;
MOVW	 	R8 ,	#0X0824					//加载高16位地址
MOVT		R8 ,	#4090					//加载低16位地址
LDR.W		R0,		[R8]					//读取32位数据
//uint32 temp = adc&0xffff;
UBFX 		R2 , 	R0,		#0,		#16		进行与运算

优化汇编代码

//uint32 adc = *(uint32 *)ADC_REG;
//uint32 temp = adc&0xffff;
MOVW	 	R8 ,	#0X0824					//加载高16位地址
MOVT		R8 ,	#4090					//加载低16位地址
LDRH		R0,		[R8]					//半字节数据读取数据到R0

问题就在 LDRH指令;由于通用寄存器读取外设寄存器需要按照32位读取,并且需要使用的数据刚好就是半字,编译器优化后就使用LDRH指令进行半字读取,从功能上是等效的,但是由于内核寄存器对外设寄寄存器需要使用32位读取即LDR.W指令,编译器优化使用16位读取即LDRH,故此出现 busfault 。解决办法,即在读取时添加volatile,不使用用编译器优化。

volatile优化汇编代码

//uint32 adc = *(volatile uint32*)ADC_REG;
MOVW	 	R8 ,	#0X0824					//加载高16位地址
MOVT		R8 ,	#4090					//加载低16位地址
LDR.W		R0,		[R8]					//读取32位数据
UBFX 		R0, 	R0,		#0,		#16		//进行与运算
http://www.sczhlp.com/news/41019/

相关文章:

  • 巨鹿网站建设如何推广普通话
  • 南京市招办南京网站设计168推广网
  • 免费注册微信网站b2b平台排名
  • 做阿里巴巴网站需要哪些资料aso优化渠道
  • 全国企业信用信息公示系统河南百度seo排名优化软件
  • 网站后端做留言板功能厦门seo厦门起梦
  • 网络服务器忙请稍后重试怎么办上海网络seo优化公司
  • 手机网站怎么做才适合优化微网站建站平台
  • Codeforces round 1043 Div 3 A-C
  • 在线营销单页网站制作网站seo教程
  • wordpress获取网址seo数据统计分析工具有哪些
  • wordpress免费建站吗推广引流方法有哪些?
  • 坂田做网站建设好的网络公司steam交易链接是什么
  • java做网站要学什么广州疫情防控措施
  • 题解:B4377 [蓝桥杯青少年组省赛 2025] 平衡奇偶位置的字符交换
  • 网络是怎样诞生的?——简介 OSI 七层模型TCP/IP 四(五)层模型
  • time.NewTicker(x秒)定时器
  • 如何做视频网站流程百度口碑网
  • 织梦cms发布侵权网站清单外链发布的平台最好是
  • 展会网站建设怎样进入12345的公众号
  • 安徽六安有哪些区县关键词优化价格表
  • wordpress主题会员功能梧州网站seo
  • 招聘网有哪些网站比较好seo外包上海
  • 廊坊营销网站团队优化设计三年级下册数学答案
  • 哪些网站是专做合租的网站制作策划
  • 有没有做生鲜配送的网站1688seo优化是什么
  • 徐州铜山区建设局网站营销策划
  • 怎样做网站安全测试做销售找客户渠道
  • 服务专业建设seo技术顾问阿亮
  • P2257 YY的GCD 题解