关于离线烧录器烧录的程序与串口程序在线烧录的程序不一致的问题



  • #define RFID_Flash_Address1 0xFF0000

    在0xFF0000位置存储MAC地址数据

    。。。

    if(char3data[0]==0xEE && char3data[1]==0x01) //接收到蓝牙发送的数据
    {
    for(i=0;i<20;i++) //6----20
    {
    flashdata[i] = char3data[i];
    }
    flash_write(RFID_Flash_Address1,20,flashdata);
    char3data[0] = 0;
    char3data[1] = 0;
    }

    开机启动后在
    void user_custom_parameters(void)
    {
    //----- 设置本地设备MAC地址 ----
    uint8_t RFID_MAC[6]={0x0A,0xDD};
    flash_read(RFID_Flash_Address1,6,RFID_MAC);
    __jump_table.addr.addr[0] = RFID_MAC[5];
    __jump_table.addr.addr[1] = RFID_MAC[4];
    __jump_table.addr.addr[2] = RFID_MAC[3];
    __jump_table.addr.addr[3] = RFID_MAC[2];
    if(RFID_MAC[1]==0xFF && RFID_MAC[0] == 0xFF) //MAC地址全部0xFF会连接失败
    { __jump_table.addr.addr[4] = 0xDD;
    __jump_table.addr.addr[5] = 0x0A;
    }
    else
    { __jump_table.addr.addr[4] = RFID_MAC[1];
    __jump_table.addr.addr[5] = RFID_MAC[0];
    }
    。。。

    读取写入的数据作为MAC地址进行运行

    串口下载程序到设备,设备运行正常,功能测试正常。

    但是!!!!!
    使用离线烧录器,下载同一个程序,功能部分测试都正常。flash存储部分,设备的MAC地址不能改变!不能改变!不能改变!
    一直为0x0ADD FFFFFFFF !!!
    离线烧录器也换了两个,程序也换过几个,设备也换过好几个,都一样!!!
    项目程序有三种,都是串口下载可以修改MAC地址存储数据正常,离线烧录器就是不行!不行!不行!
    这是为什么???????



  • @cai896695039关于离线烧录器烧录的程序与串口程序在线烧录的程序不一致的问题 中说:

    #define RFID_Flash_Address1 0xFF0000

    #define RFID_Flash_Address1 0xFF0000 怀疑超flash 的最大地址了导致的异常



  • @cai896695039 你好,请问你用的离线烧录器是哪种?