bulk8888 发表于 2023-7-21 12:01:39

多次读取RAM ROM中的ID号 前后ID号不一致

如题,先上结果,串口助上打印结查如下:


Start...
RAM ID :F7 21 C5 74 10 1F 81
ROM ID :F7 21 C5 74 10 1F 81
RAM ID :F8 11 0D 81 01 17 66
ROM ID :F7 21 C5 74 10 1F 81


代码如下:
        char* ID;
        printf("Start...\r\n");

        ID = (char idata *)0xF1;

        printf("RAM ID :");
        for (i=0; i<7; i++)printf("%02bX ", ID);
        printf("\r\n");       
       
//        ID = (char code *)0x1FF9;                   // STC8G1K08
        ID = (char code *)0x3FF9;                   // STC8G1K16
        printf("ROM ID :");
        for (i=0; i<7; i++)printf("%02bX ", ID);
        printf("\r\n");       
       
        ID = (char idata *)0xF1;
        printf("RAM ID :");
        for (i=0; i<7; i++)printf("%02bX ", ID);
        printf("\r\n");       
       
//        ID = (char code *)0x1FF9;                   // STC8G1K08
        ID = (char code *)0x3FF9;                   // STC8G1K16
        printf("ROM ID :");
        for (i=0; i<7; i++)printf("%02bX ", ID);
        printf("\r\n");       
         

神农鼎 发表于 2023-7-21 16:42:44

具体型号 ? 不同型号不一样的

乘风飞扬 发表于 2023-7-21 18:32:47

RAM里面的ID号存放地址一旦被变量/堆栈占用,修改的话,内容就会改变,所以推荐从ROM里面读取。

bulk8888 发表于 2023-9-13 17:13:18

谢谢回复,问题已解决。
项目中使用了RTX51TNY, 应该是堆栈和RAM_ID 重叠了。
修改了RTX51TNY中的 RAMTOP定义(0FFH改为 0F0H).
页: [1]
查看完整版本: 多次读取RAM ROM中的ID号 前后ID号不一致