专家您好:
我通过SCI口把升级程序代码传输存储到ram里面,然后调用API函数把代码烧写到flash里面,现在擦除正常了,可是当把升级程序代码传输到ram过程中的时候,花了近十分钟还没结束,感觉像是死了,但dsp上的接收信号灯是亮的。我结束程序运行时发现程序停在了 3FF8CD 6F00 SB 0, UNC。不知道怎么回事,我是照着F2812的一个采用SCIA引导模式通过两级引导把升级代码烧到flash的历程来的。这个升级程序代码是由 out 转换成.hex,再转换成.bin文件,通过虚拟串口下发给dsp的。转换过程也是按照2812那个例程中AppCode的转换过程进行的。不知道我的问题出在哪里了
jingjingyaju:
补充:我刚才通过JTAG在线调试了下,发现我通过串口接收到的数据已经烧得指定的ram里,是0x3f8000—0x3f8800,但是我程序里是边接收边往flash里烧写的,可flash里全是0xFFFF,根本没烧写进去。
专家您好:
我通过SCI口把升级程序代码传输存储到ram里面,然后调用API函数把代码烧写到flash里面,现在擦除正常了,可是当把升级程序代码传输到ram过程中的时候,花了近十分钟还没结束,感觉像是死了,但dsp上的接收信号灯是亮的。我结束程序运行时发现程序停在了 3FF8CD 6F00 SB 0, UNC。不知道怎么回事,我是照着F2812的一个采用SCIA引导模式通过两级引导把升级代码烧到flash的历程来的。这个升级程序代码是由 out 转换成.hex,再转换成.bin文件,通过虚拟串口下发给dsp的。转换过程也是按照2812那个例程中AppCode的转换过程进行的。不知道我的问题出在哪里了
Johnson Chen1:
回复 jingjingyaju:
楼主你好!
0x3f8000—0x3f8800为FLASH区间,并非RAM空间啊。
专家您好:
我通过SCI口把升级程序代码传输存储到ram里面,然后调用API函数把代码烧写到flash里面,现在擦除正常了,可是当把升级程序代码传输到ram过程中的时候,花了近十分钟还没结束,感觉像是死了,但dsp上的接收信号灯是亮的。我结束程序运行时发现程序停在了 3FF8CD 6F00 SB 0, UNC。不知道怎么回事,我是照着F2812的一个采用SCIA引导模式通过两级引导把升级代码烧到flash的历程来的。这个升级程序代码是由 out 转换成.hex,再转换成.bin文件,通过虚拟串口下发给dsp的。转换过程也是按照2812那个例程中AppCode的转换过程进行的。不知道我的问题出在哪里了
jingjingyaju:
回复 Johnson Chen1:
我查了28035的数据手册,0x3f8000—0x3f87fff是ram区间啊。
专家您好:
我通过SCI口把升级程序代码传输存储到ram里面,然后调用API函数把代码烧写到flash里面,现在擦除正常了,可是当把升级程序代码传输到ram过程中的时候,花了近十分钟还没结束,感觉像是死了,但dsp上的接收信号灯是亮的。我结束程序运行时发现程序停在了 3FF8CD 6F00 SB 0, UNC。不知道怎么回事,我是照着F2812的一个采用SCIA引导模式通过两级引导把升级代码烧到flash的历程来的。这个升级程序代码是由 out 转换成.hex,再转换成.bin文件,通过虚拟串口下发给dsp的。转换过程也是按照2812那个例程中AppCode的转换过程进行的。不知道我的问题出在哪里了
Jones Chen:
回复 jingjingyaju:
楼主
首先,3F8000是RAML0区域没错,请问是否加密了?如果加密需要解密才能使用 L0的RAM区域。
再者,看到应该已经成功烧写到RAM区域了,楼主单步调试一下,看看Flash Program API是否已经执行,返回的结果是否正确? 楼主可以参考 下面这个历程,搜索关键字为:
sprab69,
专家您好:
我通过SCI口把升级程序代码传输存储到ram里面,然后调用API函数把代码烧写到flash里面,现在擦除正常了,可是当把升级程序代码传输到ram过程中的时候,花了近十分钟还没结束,感觉像是死了,但dsp上的接收信号灯是亮的。我结束程序运行时发现程序停在了 3FF8CD 6F00 SB 0, UNC。不知道怎么回事,我是照着F2812的一个采用SCIA引导模式通过两级引导把升级代码烧到flash的历程来的。这个升级程序代码是由 out 转换成.hex,再转换成.bin文件,通过虚拟串口下发给dsp的。转换过程也是按照2812那个例程中AppCode的转换过程进行的。不知道我的问题出在哪里了
jingjingyaju:
回复 jingjingyaju:
请问 Flash_CallbackPtr函数怎么用呀?我照着28035调用API例程的要求步骤设置了,可是我调程序的时候发现程序把buffer【1】接收满了后,就往flash里烧了相应的数据,根本没有调用Flash_CallbackPtr这个函数,导致FIFORX溢出了。我的这部分程序放在附件里面了,麻烦你帮我看看。谢谢了。
专家您好:
我通过SCI口把升级程序代码传输存储到ram里面,然后调用API函数把代码烧写到flash里面,现在擦除正常了,可是当把升级程序代码传输到ram过程中的时候,花了近十分钟还没结束,感觉像是死了,但dsp上的接收信号灯是亮的。我结束程序运行时发现程序停在了 3FF8CD 6F00 SB 0, UNC。不知道怎么回事,我是照着F2812的一个采用SCIA引导模式通过两级引导把升级代码烧到flash的历程来的。这个升级程序代码是由 out 转换成.hex,再转换成.bin文件,通过虚拟串口下发给dsp的。转换过程也是按照2812那个例程中AppCode的转换过程进行的。不知道我的问题出在哪里了
jingjingyaju:
回复 Jones Chen:
我再调用API函数之前已经解锁了。单步调试,当API烧写的时候可以单步调试吗?不是不能中断什么的吗?
专家您好:
我通过SCI口把升级程序代码传输存储到ram里面,然后调用API函数把代码烧写到flash里面,现在擦除正常了,可是当把升级程序代码传输到ram过程中的时候,花了近十分钟还没结束,感觉像是死了,但dsp上的接收信号灯是亮的。我结束程序运行时发现程序停在了 3FF8CD 6F00 SB 0, UNC。不知道怎么回事,我是照着F2812的一个采用SCIA引导模式通过两级引导把升级代码烧到flash的历程来的。这个升级程序代码是由 out 转换成.hex,再转换成.bin文件,通过虚拟串口下发给dsp的。转换过程也是按照2812那个例程中AppCode的转换过程进行的。不知道我的问题出在哪里了
Jones Chen:
回复 jingjingyaju:
不能中断,但函数执行完成之后可以中断,您可以参考一下我刚才给你的历程,上面是把Flash的一个Section当成EEPROM来使用,上面有详细的代码,您可以下载参考一下。
专家您好:
我通过SCI口把升级程序代码传输存储到ram里面,然后调用API函数把代码烧写到flash里面,现在擦除正常了,可是当把升级程序代码传输到ram过程中的时候,花了近十分钟还没结束,感觉像是死了,但dsp上的接收信号灯是亮的。我结束程序运行时发现程序停在了 3FF8CD 6F00 SB 0, UNC。不知道怎么回事,我是照着F2812的一个采用SCIA引导模式通过两级引导把升级代码烧到flash的历程来的。这个升级程序代码是由 out 转换成.hex,再转换成.bin文件,通过虚拟串口下发给dsp的。转换过程也是按照2812那个例程中AppCode的转换过程进行的。不知道我的问题出在哪里了
jingjingyaju:
回复 Jones Chen:
嗯,谢谢啦。我下载看看
专家您好:
我通过SCI口把升级程序代码传输存储到ram里面,然后调用API函数把代码烧写到flash里面,现在擦除正常了,可是当把升级程序代码传输到ram过程中的时候,花了近十分钟还没结束,感觉像是死了,但dsp上的接收信号灯是亮的。我结束程序运行时发现程序停在了 3FF8CD 6F00 SB 0, UNC。不知道怎么回事,我是照着F2812的一个采用SCIA引导模式通过两级引导把升级代码烧到flash的历程来的。这个升级程序代码是由 out 转换成.hex,再转换成.bin文件,通过虚拟串口下发给dsp的。转换过程也是按照2812那个例程中AppCode的转换过程进行的。不知道我的问题出在哪里了
Jones Chen:
回复 jingjingyaju:
不客气,有问题接着讨论。
专家您好:
我通过SCI口把升级程序代码传输存储到ram里面,然后调用API函数把代码烧写到flash里面,现在擦除正常了,可是当把升级程序代码传输到ram过程中的时候,花了近十分钟还没结束,感觉像是死了,但dsp上的接收信号灯是亮的。我结束程序运行时发现程序停在了 3FF8CD 6F00 SB 0, UNC。不知道怎么回事,我是照着F2812的一个采用SCIA引导模式通过两级引导把升级代码烧到flash的历程来的。这个升级程序代码是由 out 转换成.hex,再转换成.bin文件,通过虚拟串口下发给dsp的。转换过程也是按照2812那个例程中AppCode的转换过程进行的。不知道我的问题出在哪里了
jingjingyaju:
回复 Jones Chen:
对了,请问我把升级的代码转换成二进制文件通过串口发给dsp,我怎么可以知道我要升级的代码的大小是多少呀?我想在DSP调用API函数的时候知道升级代码什么时候接受完毕?