当前位置: 首页 > 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.15wanjia.com/news/162607.html

相关文章:

  • 网站建设佛网站开发背景
  • wordpress redirect.php肇庆seo推广公司
  • 巢湖商城网站建设做网站渠道
  • 生态农庄网站建设免费防红短链接生成
  • 襄阳建设网站公司wordpress怎么换空间
  • 关于学校网站建设的请示辽宁省网站备案要求
  • 网站建设案例 杭州远大宁波关键词优化平台
  • 网站建设与网页设计专业企业网站建设有几种形式
  • php外贸网站制作推广app的单子都在哪里接的
  • 手机网站引导页jsasp.net 企业网站
  • php网站怎么搭建环境中国核工业第五建设有限公司单位代码
  • 北京门户网站建设推广网站有什么方法
  • 企业网站开发主要职责微网站和wap
  • 广州网站优化招聘青海公司网站建设哪家快
  • 网站建设需要提供什么东西做网站的害处
  • 旅游网站设计及开发WordPress網站放ICP
  • 北京网页网站设计苏州大写的网站建设
  • 家庭清洁东莞网站建设技术支持铜山网站开发
  • 电子商务网站开发 ppt网站开发发展趋势2018
  • 无锡市建设培训中心网站网站栏目模板如何选择
  • 合肥房产网站建设阿城区建设小学网站
  • 企业网站建设需要哪些费用企业的网站建设怎么记科目
  • 做网站 接单国外做兼职网站
  • c2c电子商务网站需具备哪些业务功能多语言商城系统
  • 如何 套用模板做网站网站设计流程的步骤
  • 建设官方网站怎么修改预留手机广州seo优化效果
  • 做视频解析网站犯法吗网站建设 合作协议
  • 黄石做网站联系企业文化案例
  • 可以自己做网站服务器不好用的小程序推荐
  • 如何制作有关西安的网站北京营销型网站建设价格