搜索
bottom↓
回复: 4

B52 (BigSam-8052 模拟器) 源码在 Debug 的时候 BUG 满天飞

[复制链接]

出280入168汤圆

发表于 2021-3-26 08:40:04 | 显示全部楼层 |阅读模式
本帖最后由 chunjiu 于 2021-3-26 09:58 编辑

当然这是意料之中的事情,要做到物理上的时序同步,有好多细节在之前写代码时没有注意到,例如:

1、串口 SBUF 的两次写入问题,即第一个还没有发送完,就写入了第二个数据,导致发送混乱。

处理方案是在第一个字节数据没发送完时,第二个写入的数据会被直接抛弃,B52 给出一个警告提示。

2、串口接收中,用户的代码忽然清除了 REN 位,或设置了 RI,导致不可预知的歧义。

处理方案是立即停止接收并清除缓冲后进入闲置,等 REN 和 RI 信号重新归位。这里假设是用户想主动中止接收操作,但 B52 会发出一个警告提示。

3、对串口模式 0 的时序进行了纠正,原先的设计是将同步信号发出后,就假设数据已经准备好,立即进行读取操作。但这和标准的 8052 不一样,若外设来不及准备好就会收到错误数据。

处理方案是将一个“读取/发送”周期拆分成前后半周,前半周修改同步信号,后半周“读取/发送”数据位,与标准的 8052 保持了正确的兼容。

4、将单个的密集型运算任务做了拆分,即本来的单线程代码运行流程改成 “假的多线程” ,一个大任务被拆分成几个小任务,在循环调度中依次执行(状态机)。

这么做的好处是对每个系统周期内的运算量做了均衡,因为单个密集型运算任务是提高 B52 系统主频的瓶颈,拆分均衡后有望在 STM32 上得到更高的模拟主频。

5、然后在删除大量冗余代码和美化排版时,搞乱了代码间的依赖关系,导致编译老出错。

这个没办法,慢慢找,慢慢改。

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2021-3-26 08:42:47 来自手机 | 显示全部楼层
前排观望,不明觉厉

出0入8汤圆

发表于 2021-3-26 10:54:40 来自手机 | 显示全部楼层
本帖最后由 canspider 于 2021-3-26 10:57 编辑

老51是固定指令周期,新的cortex指令周期随条件变化,如果老51代码用指令周期来做延时,新的cortex怎么来处理这这类情况
还有中断处理,老51进入中断时间是可控的,新cortex怎么来应对
比如有的51程序做上升沿检测,通过计算得出上升沿到中断要4个指令周期,这样在中断中补偿这4个指令周期就行了,如果这样的程序移植到你这个上面,还能正常工作吗?

出280入168汤圆

 楼主| 发表于 2021-3-26 11:15:31 | 显示全部楼层
本帖最后由 chunjiu 于 2021-3-26 11:24 编辑
canspider 发表于 2021-3-26 10:54
老51是固定指令周期,新的cortex指令周期随条件变化,如果老51代码用指令周期来做延时,新的cortex怎么来处 ...


B52 模拟器的 ALU 部分早就完成了,只要不涉及到硬件时序上的操作就可以完美运行用户程序。

目前对代码进行修正的也正是硬件时序上问题,暂时改用 “硬件滴答令牌” 的方式,对指令周期和中断响应采用了状态机的处理方式。

只要时钟周期和时序的部分修正完成了,应该会和真实的 8052 一样完美,指令的延时计算和中断响应时间不会出现误差。

PS:

真的会等待像你比喻的那样:实时的、物理性的 4 个指令周期时间。

出280入168汤圆

 楼主| 发表于 2021-3-26 17:27:12 | 显示全部楼层
终于编译成功了,不过添加了滴答令牌之后,运行效率下降了 30% 多

现在继续除 bug,代码调整后还有些冗余部分没找到,不过下周应该能整理完。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-24 06:21

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表