搜索
bottom↓
回复: 0
打印 上一主题 下一主题

求助,gd32h7在sdram+tli刷屏时,出现seggerRTT输出异常

[复制链接]

出0入0汤圆

跳转到指定楼层
1楼
发表于 2026-9-21 16:05:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我知道这个分块是stm32,但我没找到gd32...
先说问题:
当gd32h7在启用exmc驱动sdram、启用tli刷屏时,比如刷屏1024*600@rgb565,如果在启动tli之前,通过seggerRTT输出过任何内容,比如调试信息、启动信息、系统状态之类,哪怕只是无意义数据。
在启动tli之后,哪怕是再也不调用任何seggerRTT相关代码,也能在seggerRTT的rtt-viewer中看到之前发送的内容被自动、重复、偶发性、周期不定、长度不定地反复发送。这个过程没有任何代码执行seggerRTT相关函数,是seggerRTT自发地。
在关掉tli后,问题消失;在出现问题后,用一个定时器比如10s后关闭tli,问题在10s后再也不出现;裸机、rtthread-nano、freeRTOS三种环境都能看到这个现象:只要启动tli开始刷屏,那么seggerRTT就会胡乱输出历史内容。
这是裸机代码:
  1. int main(void)
  2. {
  3.     sys_cache_enable();                     /* 使能CPU cache */  
  4.    
  5.     SEGGER_RTT_printf(0, "RTT TEST 0000: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\r\n");
  6.     SEGGER_RTT_printf(0, "RTT TEST 0001: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\r\n");
  7.     SEGGER_RTT_printf(0, "RTT TEST 0002: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\r\n");
  8.     SEGGER_RTT_printf(0, "RTT TEST 0003: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\r\n");
  9.     SEGGER_RTT_printf(0, "RTT TEST 0004: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\r\n");
  10.     SEGGER_RTT_printf(0, "RTT TEST 0005: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\r\n");
  11.     SEGGER_RTT_printf(0, "RTT TEST 0006: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\r\n");
  12.     SEGGER_RTT_printf(0, "RTT TEST 0007: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\r\n");
  13.     SEGGER_RTT_printf(0, "RTT TEST 0008: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\r\n");
  14.     SEGGER_RTT_printf(0, "RTT TEST 0009: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\r\n");
  15.     SEGGER_RTT_printf(0, "RTT TEST 0010: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\r\n");
  16.     SEGGER_RTT_printf(0, "RTT TEST 0011: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\r\n");
  17.     SEGGER_RTT_printf(0, "RTT TEST 0012: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\r\n");
  18.     SEGGER_RTT_printf(0, "RTT TEST 0013: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\r\n");
  19.     SEGGER_RTT_printf(0, "RTT TEST 0014: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\r\n");
  20.     SEGGER_RTT_printf(0, "RTT TEST 0015: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\r\n");
  21.     SEGGER_RTT_printf(0, "RTT TEST 0016: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\r\n");
  22.     SEGGER_RTT_printf(0, "RTT TEST 0017: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\r\n");
  23.     SEGGER_RTT_printf(0, "RTT TEST 0018: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\r\n");
  24.     SEGGER_RTT_printf(0, "RTT TEST 0019: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\r\n");
  25.    
  26.     delay_init(600);                        /* 延时初始化 */
  27.     usart_init(115200);                     /* 初始化串口 */
  28.     usmart_init(300);                              /* 初始化USMART */
  29.    
  30.     led_init();                                                                        /* 初始化LED */   
  31.    
  32.     mpu_memory_protection();                /* 保护相关存储区域 */
  33.     sdram_init(EXMC_SDRAM_DEVICE0);         /* 初始化SDRAM */
  34.     lcd_init();                             /* 初始化LCD */
  35.     key_init();                             /* 初始化按键 */
  36.     tp_dev.init();                          /* 触摸屏初始化 */
  37.     timerx_int_init(10 - 1, 30000 - 1);     /* 300 000 000 / 30000 = 10KHz 10KHz的计数频率,计数10次为1ms */
  38.     my_mem_init(SRAMIN);                    /* 初始化内部SRAM内存池 */
  39.     my_mem_init(SRAMEX);                    /* 初始化外部SDRAM内存池 */
  40.     my_mem_init(SRAMDTCM);                  /* 初始化内部DTCM内存池 */
  41.     my_mem_init(SRAMITCM);                  /* 初始化内部ITCM内存池 */
  42.    
  43.     delay_ms(1000);
  44.    
  45.       
  46.     lv_init();                                                /* lvgl系统初始化 */
  47.     lv_port_disp_init();                    /* lvgl显示接口初始化,放在lv_init()的后面 */
  48.     lv_port_indev_init();                   /* lvgl输入接口初始化,放在lv_init()的后面 */
  49.     lv_demo_benchmark();                       /* lvgl例程 */
  50. //       
  51.           while (1)
  52.     {
  53. //        tp_dev.scan(0);                              /* 触摸扫描 */
  54.         lv_task_handler();                    /* lvgl的事务处理 */
  55.     delay_ms(1);
  56.     }
  57. }
复制代码


这是rtt-viewer看到的结果:
  1. RTT TEST 0000: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  2. RTT TEST 0001: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  3. RTT TEST 0002: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  4. RTT TEST 0003: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  5. RTT TEST 0004: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  6. RTT TEST 0005: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  7. RTT TEST 0006: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  8. RTT TEST 0007: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  9. RTT TEST 0008: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  10. RTT TEST 0009: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  11. RTT TEST 0010: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  12. RTT TEST 0011: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  13. RTT TEST 0012: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  14. RTT TEST 0013: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  15. RTT TEST 0014: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  16. RTT TEST 0015: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  17. RTT TEST 0016: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  18. RTT TEST 0017: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  19. RTT TEST 0018: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  20. RTT TEST 0019: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  21. RTT TEST 0000: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  22. RTT TEST 0001: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  23. RTT TEST 0002: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  24. RTT TEST 0003: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  25. RTT TEST 0004: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  26. RTT TEST 0005: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  27. RTT TEST 0006: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  28. RTT TEST 0007: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  29. RTT TEST 0008: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  30. RTT TEST 0009: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  31. RTT TEST 0010: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  32. RTT TEST 0011: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  33. RTT TEST 0012: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  34. RTT TEST 0013: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  35. RTT TEST 0014: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  36. RTT TEST 0015: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  37. RTT TEST 0016: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  38. RTT TEST 0017: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  39. RTT TEST 0018: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  40. RTT TEST 0019: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  41. mnopqrstuvwxyz
  42. RTT TEST 0004: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  43. RTT TEST 0005: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  44. RTT TEST 0006: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  45. RTT TEST 0007: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  46. RTT TEST 0008: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  47. RTT TEST 0009: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  48. RTT TEST 0010: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  49. RTT TEST 0011: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  50. RTT TEST 0012: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  51. RTT TEST 0013: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  52. RTT TEST 0014: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  53. RTT TEST 0015: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  54. RTT TEST 0016: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  55. RTT TEST 0017: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  56. RTT TEST 0018: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  57. RTT TEST 0019: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  58. RTT TEST 0000: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  59. RTT TEST 0001: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  60. RTT TEST 0002: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  61. RTT TEST 0003: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  62. RTT TEST 0004: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  63. RTT TEST 0005: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  64. RTT TEST 0006: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  65. RTT TEST 0007: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  66. RTT TEST 0008: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  67. RTT TEST 0009: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  68. RTT TEST 0010: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  69. RTT TEST 0011: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  70. RTT TEST 0012: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  71. RTT TEST 0013: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  72. RTT TEST 0014: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  73. RTT TEST 0015: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  74. RTT TEST 0016: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  75. RTT TEST 0017: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  76. RTT TEST 0018: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  77. RTT TEST 0019: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
复制代码


我确认整个过程里mcu只复位1次,没有多次复位。重复内容都是在跑testbench过程里,seggerRTT自己在未经调用前提下,主动发出来的。
我观察有如下现象:我将tli频率从50mhz降低到15mhz,swd频率从6000khz降低到500khz,这个重复输出的问题出现的频率降低,但依然存在。修改axi总显得qos优先级、修改scb_AHBSCR中ahb slave优先级,无效。rtt控制块放进tcm紧耦合内存区,比如定点在0x20000000,无效。
向论坛大佬求助,拜谢!

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

世间万般皆为虚妄,唯有情爱执念最是折磨人心。人心本不可试探,一试便碎;真情更不能考验,一考就断!
回帖提示: 反政府言论将被立即封锁ID 。在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-10-10 13:41

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

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