BL长跳转指令在电能表程序中的应用与分析
需积分: 9 50 浏览量
更新于2024-08-05
收藏 396KB DOCX 举报
"BL长跳转指令在电能表程序中的应用与分析"
本文档主要讨论了BL长跳转指令在电能表程序中的具体运用,特别是在执行InF_ADC_Action_Message()函数时的控制流程。在正常情况下,程序从执行PF_CopyDataBytes()函数开始,通过BL指令跳转到该函数的地址0x2b5f0。这个过程涉及到32位指令的处理,尽管Thumb指令通常为16位,但长跳转由两条16位跳转指令组成,通过高五位掩码来确定目标地址。
在程序的异常表中,跳转地址被调整为0x2b5c5,对应于PF_HextoBCDBytes函数。作者详细解释了如何通过机器码(如0xf7d3和0xffab)计算跳转地址,这涉及到将11位地址偏移值(off0和off1)组合并进行适当的调整。例如,正常表的偏移中间量offmid1是0x3e9fab,通过计算变为实际跳转地址0x2b5f0。
对于异常表,计算过程略有不同,offmid1变为0x2c0aa,最终实际跳转地址变为0x2b5c5。文档还提到了程序的调试过程,包括程序汇编调试窗口的观察和烧录bin文件的测试,这些步骤有助于理解和验证BL长跳转指令的正确执行。
总结来说,本资源深入剖析了BL长跳转指令在电能表程序设计中的使用,强调了地址计算和异常处理的重要性,对于理解汇编编程和电能表程序控制逻辑具有很高的参考价值。
2024-08-01 上传
GOMeter
- 粉丝: 7
- 资源: 1
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍