This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

28335 FLASH扇区拷贝请教

Other Parts Discussed in Thread: UNIFLASH

您好,我准备用2个扇区存放程序,有没有方法可以将flashA扇区的内容直接复制到flashC扇区?我尝试用自带的API.Flash_Program(),将FLASHB放到buf地址,复制过来全是0.。。只能自己读取到ram然后再重新写下去吗?

  • 我记得没有直接复制的函数,一般都是读取到ram然后再重新写下去

  • 在等回复的时候我运行了Flash_Program(A扇区起始地址,B扇区起始地址,长度,ST),搬运过来全是0,然后没有反应过来就掉电重启了,FLASH这么被锁是不是再也解不了了?
  • 很抱歉,漏掉了您的回复。

    请问您现在情况如何?
  • 我尝试各种姿势没能连接解锁。仿真器还是完全连接不上,到不了解锁密码那一步,然后更换了片子。。是为什么?

    翻阅之前帖子,从boot到sci启动可以连上去尝试解锁密码,但是我改boot电阻后,依然到不了debug,连接仿真器总是失败。
  • “连接仿真器总是失败”

    请问您现在使用的是CCS还是uniflash独立软件?仿真器使用的是哪一款?

    有什么具体的错误提示吗?请提供完整的错误信息

    一般来说如果设备被锁定,则程序/擦除/等将报告(错误提示)该设备已被锁定,无法对其进行编程/擦除。

    若是算法超时等错误提示的话,意味着CCS认为该算法已下载并启动,但代码没有返回(设备并没有lock)。因为闪存编程是通过CPU在设备上执行代码来完成的。
  • 您好,用的是ccs5.4,仿真器是研旭的XDS100V3,被锁后连接时会出现low-power模式,退出一直失败,重新再在debug窗口连接仿真器后会提示:“C28xx: GEL Output: ADC Calibration not complete, check if device is unlocked and recalibrate.”,并跳到非正常地址"0x3ff9ce" 。点击unlock后又是“error executing flash operation”
  • 看起来像是f28335.gel文件中出现了问题 (默认路径 C:\ti\ccs1000\ccs\ccs_base\emulation\gel)

    /********************************************************************/
    /* Load the ADC Calibration values from TI OTP                      */
    /********************************************************************/
    menuitem "ADC Calibration"
    hotmenu ADC_Cal()
    {
        /* Perform dummy reads of the password locations */
        XAR0 = *0x33FFF8;
        XAR0 = *0x33FFF9;
        XAR0 = *0x33FFFA;
        XAR0 = *0x33FFFB;
        XAR0 = *0x33FFFC;
        XAR0 = *0x33FFFD;
        XAR0 = *0x33FFFE;
        XAR0 = *0x33FFFF;
    
    
        if(((*0x0AEF) & 0x0001) == 0)
        {
            XAR0 = *0x701C;
            *0x701C |= 0x0008;
         *0x711C = *0x380083;
            *0x711D = *0x380085;
            *0x701C = XAR0;
         XAR0 = 0;
    
        }
        else
        {
            GEL_TextOut("\nADC Calibration not complete, check if device is unlocked and recalibrate.");
        }
    }

    ADC_CAL()在启动过程中会去flash查询CSM密码

    您是否可以使用uniflash来连接?若是可以的话,请您使用uniflash从密码位置读取数据0x33 FFF8-0x33 FFFF这些位置为多少?若是为0x0,则很有可能设备已锁定。如果您尚未对密码位置进行编程,则可能是由于.out中的某些错误或由于闪存操作期间的中断而发生的。要找出.out文件中的问题,请检查您的映射文件,以查看闪存中的密码位置是否映射了任何内容。如果在密码位置找到了其他值,则您应该能够使用该值来解锁设备。否则,设备将无法恢复,需要更换。

  • 您好,我下载了uniflash,读取如图:

    是不是基本上我的这个片子就废了。。。

    还想咨询下,如果我给烧写带flash_api的程序,当密码都是0时,是否可以通过内部已存在程序去擦除A扇区来清除密码? 实在是不敢轻易尝试了。。。

  • 1 若是您没有在程序或者uniflash设置密码的话,可以找一下您的map文件内的CSM_PWL是否有填充数据,若是可以找到的话,可以使用uniflash的unlock功能填入密码来解锁芯片。

    2 您现在芯片是锁定的状态,应该是不能进行编程/烧写操作的,也就无法来擦除A扇区的密码