找回密码
 立即注册
查看: 1373|回复: 9

笑死, STC8H的双DPTR仿真问题折腾三天,绝望的发帖前30秒解决...

[复制链接]
  • TA的每日心情
    开心
    11 小时前
  • 签到天数: 137 天

    [LV.7]常住居民III

    37

    主题

    873

    回帖

    3990

    积分

    荣誉版主

    积分
    3990
    发表于 2023-2-25 04:31:06 | 显示全部楼层 |阅读模式
    声明: 本贴框架格式系抄袭网友hyperma之贴, 版权系网友hyperma所有~~~

    我真的快疯了,无论淘宝上买的STC8H8K64U(模块),还是 STC官方送的板子,把规划中的改写的使用双DPTR指针的

    函数strcmp,strncmp,strcpy,strncpy,memcmp,memcpy,memccpy,memmove,

    都用STC8H的大ROM装进去,但没想到在这个STC8H超强双DPTR面前踢了铁板。


    由于我是从中颖51叛变过来的,对双DPTR一向自认很有信心,用官方库函数+自编库函数,已经玩得不能再熟练了。

    上机调试出错, 那很正常, 单步+断点跟踪调试, 查找原因, 就是发现第二个DPTR指针不工作啊!

    更改 DPS寄存器没用, 更改直接地址(0xE3)可行, 但就是第二个DPTR指针死活不工作啊!


    单步调试跟踪,出现了奇怪的事情,就是发现第一个DPTR指针始终在工作, 第二个DPTR指针永远不工作啊!怎么折腾都这样,

    于是我折腾了三天。足足三天啊!换STC8H8K64U板子、重装STC8H8K64U仿真驱动、重装Keil, 重启电脑,都不成……。


    实在不行了,凌晨想上来发帖子求救……。唉,揉揉已经通红的眼睛看会儿帖子吧,偶然看到了以前自已发的帖子里, 回网友的疑问?

    在数组数据交换过程中, 用DMA传输快? 还是用软件模拟传输快? 自已编写了测试程序, 两者之间的传输速率当然会复杂一肯步些PK,

    结果 软件模拟传输飞快 完胜 DMA传输, 在软件模拟传输中, 我成功应用了STC8H8K64U的双DPTR功能啊!我……

    然后调出该软件模拟传输测试程序, 编译运行一下看数据,正常了……。这是为什么啊!为什么啊!真心向版主求教,是否说STC8H的仿真及软件是有问题的?



    回复 送花

    使用道具 举报

  • TA的每日心情
    开心
    11 小时前
  • 签到天数: 137 天

    [LV.7]常住居民III

    37

    主题

    873

    回帖

    3990

    积分

    荣誉版主

    积分
    3990
     楼主| 发表于 2023-2-25 04:31:47 | 显示全部楼层
    后记:

    我随意设断点, 单步或连续跟踪调试,发现该软件模拟传输测试程序不稳定, 时好时坏(查看数组, 传输的结果错误), 经不断更改断点位置, 单步或连续跟踪.


    得出以下结论:

    STC8H的仿真, 不支持第二个DPTR指针, 无论是单步, 还是连续, 只要在使用第二个DPTR指针过程中有停留(停顿), 就会出错, 永远停止第二个DPTR指针的工作!!!

    像前面我调试 函数strcmp,strncmp,strcpy,strncpy,memcmp,memcpy,memccpy,memmove,就是在 双DPTR指针应用中, 加了断点, 造成STC8H的仿真过程中,

    在第二个DPTR指针执行过程中有了停顿, 而产生第二个DPTR指针不工作的结果!
  • TA的每日心情
    开心
    11 小时前
  • 签到天数: 137 天

    [LV.7]常住居民III

    37

    主题

    873

    回帖

    3990

    积分

    荣誉版主

    积分
    3990
     楼主| 发表于 2023-2-25 17:21:49 | 显示全部楼层
    仿真时还发现一个问题. 就是断点没法全部一键清除, 需一个一个清除.

    这个问题, 我在 stc32仿真时就发现, 已提.

    现在  stc32仿真 这一 bug 已修正, 请官方有空的时候, 把 stc51仿真 这一 bug , 也修正一下.
  • TA的每日心情
    开心
    2023-12-18 09:20
  • 签到天数: 1 天

    [LV.1]初来乍到

    11

    主题

    88

    回帖

    214

    积分

    中级会员

    积分
    214
    发表于 2023-2-25 19:15:16 | 显示全部楼层
    是的,51断点清除很麻烦,并且自己还会跑,很多时候清楚还自己回来。

    所以能用串口打印调试的情形,一般不用仿真,最多加个LA跟踪下程序执行时间。
  • TA的每日心情
    开心
    11 小时前
  • 签到天数: 137 天

    [LV.7]常住居民III

    37

    主题

    873

    回帖

    3990

    积分

    荣誉版主

    积分
    3990
     楼主| 发表于 2023-2-26 10:41:51 | 显示全部楼层
    xhbwork 发表于 2023-2-25 19:15
    是的,51断点清除很麻烦,并且自己还会跑,很多时候清楚还自己回来。

    所以能用串口打印调试的情形,一般不 ...

    这是 STC51监控软件问题, 事实上这种 简易仿真器, 仅利用片内FLASH及串口通讯, 并且没有专用的单字节TRAP调试指令(用长跳转或长调用指令代替), 很容易出问题, 进入死机或FLASH破坏(未能正确恢复现场).

    像用 sst89E516制作的仿真器, 就存在这种问题, 尽管国内有人对此作了改进和完善, 但有于先天不足, 多多少少都会存在一点问题.

    用 STC8H仿真, 我就碰到多次 断点不见, 有时就自动回来的现像, 以及进入死循环或程序飞了.

    一般我都是通过重新烧录一下 STC8H仿真监控解决的.

  • TA的每日心情
    开心
    2024-4-24 09:28
  • 签到天数: 90 天

    [LV.6]常住居民II

    68

    主题

    569

    回帖

    1854

    积分

    超级版主

    积分
    1854
    QQ
    发表于 2023-3-13 13:09:11 | 显示全部楼层
    STC8H8K64U的双数据指针用汇编语言操作,可以将功能全部发挥出来
    ===C语言暂时KEIL C51支持不了,就不要管了,
    ===STC8H同频的速度是普通8051的13.2倍以上,还有DMA、MDU16来减轻CPU压力,估计快20倍以上
    ===主频能到45MHz, 不是传统的12MHz/24MHz

    一,STC8H8K64U不用仿真功能,直接裸机运行时
    1, 对 XRAM 读出/写入, STC8H8K64U的 双DPTR指针[DPTR0,DPTR1], 完全正确, 工作正常.
    2, 对程序区的 CODE 读出, STC8H8K64U的 双DPTR指针[DPTR0,DPTR1], 完全正确, 工作正常.

    二,STC8H8K64U用仿真功能时
    1, 对 XRAM 读出/写入, STC8H8K64U的 双DPTR指针[DPTR0,DPTR1], 完全正确, 工作正常.

    2, 对程序区的 CODE 读出, STC8H8K64U的双 DPTR指针[DPTR0,DPTR1], 访问code程序区
    ===第一指针 DPTR0 支持对 CODE 读出, 完全正确, 工作正常.
    ===第二指针 DPTR1 不支持对 CODE 读出,仿真系统没考量到这,请仿真时注意,后续会改进
    热线19952583534
    www.STCAI.com
  • TA的每日心情
    开心
    2024-4-24 09:44
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    3

    主题

    14

    回帖

    323

    积分

    中级会员

    积分
    323
    发表于 2023-5-19 08:56:50 | 显示全部楼层
    国学芯用 发表于 2023-3-13 13:09
    STC8H8K64U的双数据指针用汇编语言操作,可以将功能全部发挥出来
    ===C语言暂时KEIL C51支持不了,就不要管 ...

    您说的仿真系统没考量到这,请仿真时注意,后续会改进,请问是改stc-isp软件还是改stc8h8k芯片呢?

    点评

    STC-ISP 更新一下 目前最新的是6.91Phttps://www.stcaimcu.com/forum.php?mod=viewthread&tid=2277  详情 回复 发表于 2023-5-19 09:13
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-24 09:28
  • 签到天数: 90 天

    [LV.6]常住居民II

    68

    主题

    569

    回帖

    1854

    积分

    超级版主

    积分
    1854
    QQ
    发表于 2023-5-19 09:13:35 | 显示全部楼层
    bwang 发表于 2023-5-19 08:56
    您说的仿真系统没考量到这,请仿真时注意,后续会改进,请问是改stc-isp软件还是改stc8h8k芯片呢? ...

    STC-ISP 更新一下  目前最新的是6.91Phttps://www.stcaimcu.com/forum.php?mod=viewthread&tid=2277
    热线19952583534
    www.STCAI.com
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-24 09:44
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    3

    主题

    14

    回帖

    323

    积分

    中级会员

    积分
    323
    发表于 2023-5-19 14:34:04 | 显示全部楼层
    国学芯用 发表于 2023-5-19 09:13
    STC-ISP 更新一下  目前最新的是6.91Phttps://www.stcaimcu.com/forum.php?mod=viewthread&tid=2277 ...

    好的
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-2 15:38
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    2

    主题

    22

    回帖

    86

    积分

    注册会员

    积分
    86
    发表于 2024-2-26 18:15:52 | 显示全部楼层
    请问大家接触过用STC8H8K64U与ESP32进行IIC通讯吗?
    我尝试用ESP32作为IIC 主机,STC8H8K64U作为IIC从机。主机发送的数据  Wire.write(1);   ,从机能接收到,但是打印的结果是Read123=-10136
    不清楚是哪里出现了问题,求教!
    回复 支持 反对 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-3 14:41 , Processed in 0.072479 second(s), 70 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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