芯启航 发表于 2025-1-14 11:02:32

timer0 无法开启的问题

帮客户咨询:

芯片型号为:STC8A8K64D4
uart 接收数据,写入isp 区和ap 区,执行了 eeprom 后,使用ISP_EraseSector(i);   后面,timer0 就不能开启了,请问是什么原因呢?
请各位大神帮忙看看,还需要提供什么资料呢?

AI-32位8051 发表于 2025-1-14 11:30:34





深圳国芯人工智能有限公司-工具软件https://www.stcai.com/gjrj

AI-32位8051 发表于 2025-1-14 13:48:44



demon 发表于 2025-1-14 14:08:14

可以试试把TIMER0优先级开高一点

Lkck8210 发表于 2025-1-14 14:19:56

STC8A8K64D4是IAP芯片
要问问客户下载时设置的EEPROM有多大
过大,有机会在擦除时把代码区数据也擦掉

zxy123889095 发表于 2025-1-14 15:10:09

分析测试发现:ISP代码区除了 启动地址 之外。还有02 E7 0902 EA 10 这些是否就是ISP代码区 的中断向量表。 除了启动地址外,我清除了这个区域,程序timer0 就异常了。

这个0区域数据是否可以调整到指定的位置?

Ayb_ice 发表于 2025-1-14 15:11:47

是不是BOOT也使用了T0(退出后没有清理初始化),APP需要完整初始化

zxy123889095 发表于 2025-1-14 15:42:55

LINK MAP OF MODULE:.\obj\ISP_Last4K (ISP_STC8G_STC8H)


            TYPE    BASE      LENGTH    RELOCATION   SEGMENT NAME
            -----------------------------------------------------

            * * * * * * *   D A T A   M E M O R Y   * * * * * * *
            REG   0000H   0008H   ABSOLUTE   "REG BANK 0"
                  0008H   0018H                  *** GAP ***
            BIT   0020H.0   0000H.7   UNIT         ?BI?UART_USER
                  0020H.7   0000H.1                *** GAP ***
            IDATA   0021H   0001H   UNIT         ?STACK

            * * * * * * *X D A T A   M E M O R Y* * * * * * *
            XDATA   0000H   0004H   ABSOLUTE   
            XDATA   0004H   0463H   UNIT         ?XD?ISP_STC8G_STC8H
            XDATA   0467H   0139H   UNIT         ?XD?UART_USER
            XDATA   05A0H   00CAH   UNIT         _XDATA_GROUP_
            XDATA   066AH   000CH   UNIT         ?XD?_TX_DEC_U16?ISP_STC8G_STC8H
            XDATA   0676H   000AH   UNIT         ?XD?_TX_HEX_U16?ISP_STC8G_STC8H
            XDATA   0680H   0006H   UNIT         ?XD?_UART1_CONFIG?ISP_STC8G_STC8H
            XDATA   0686H   0006H   UNIT         ?XD?_STR2INT?ISP_STC8G_STC8H
            XDATA   068CH   0006H   UNIT         ?XD?_DELAY_MS?ISP_STC8G_STC8H
                  0692H   195EH                  *** GAP ***
            XDATA   1FF0H   0004H   ABSOLUTE   
                  1FF4H   0008H                  *** GAP ***
            XDATA   1FFCH   0004H   ABSOLUTE   
BL51 BANKED LINKER/LOCATER V6.22                                                      01/13/202517:38:33PAGE 2



            * * * * * * *   C O D E   M E M O R Y   * * * * * * *
            CODE    0000H   0003H   ABSOLUTE   
                  0003H   0008H                  *** GAP ***
            CODE    000BH   0003H   ABSOLUTE   
                  000EH   0005H                  *** GAP ***
            CODE    0013H   0003H   ABSOLUTE   
                  0016H   CFEAH                  *** GAP ***
            CODE    D000H   034CH   UNIT         ?C?LIB_CODE
            CODE    D34CH   0289H   UNIT         ?PR?_XMODEMUARTPROG?ISP_STC8G_STC8H
            CODE    D5D5H   0232H   UNIT         ?CO?ISP_STC8G_STC8H
            CODE    D807H   01CFH   UNIT         ?PR?MAIN?ISP_STC8G_STC8H
            CODE    D9D6H   01A3H   UNIT         ?PR?FSLMAINPROCESS?ISP_STC8G_STC8H
            CODE    DB79H   019CH   UNIT         ?PR?_WRITEDATATOFLASH?ISP_STC8G_STC8H
            CODE    DD15H   0194H   UNIT         ?PR?WRITE3BYTEBOOTCODE?ISP_STC8G_STC8H
            CODE    DEA9H   016FH   UNIT         ?PR?WRITECHECKSUM?ISP_STC8G_STC8H
            CODE    E018H   00D8H   UNIT         ?PR?_UART1_CONFIG?ISP_STC8G_STC8H
            CODE    E0F0H   00BEH   UNIT         ?PR?JUMPTOAPPLICATION?ISP_STC8G_STC8H
            CODE    E1AEH   008CH   UNIT         ?C_C51STARTUP

我如何 可以把0 区域的数据(除开启动地址外) 挪走?

DebugLab 发表于 2025-1-14 16:39:07

可能是擦除了重映射的中断向量
提供完整工程文件

Lkck8210 发表于 2025-1-15 10:01:25

都说了 EEPROM 范围不能设太大
过大,有机会在擦除时把代码区数据也擦掉
你还直接设到64k

页: [1] 2
查看完整版本: timer0 无法开启的问题