以前做2808的BootLoader,接收到升级命令之后,直接跳转到0x3FFB50然后芯片复位(但不会清零RAM)进入内核代码控制flash升级烧写。
现在用28075,发现手册里找不到这个复位地址,直接用看门狗复位之后,RAM区又全被清零了。
Seven Han:
芯片复位后会到0x3FFFC0去复位向量,您说的2808的BootLoader在手册SPRU722C
C2000 Piccolo系列上电引导请参考帖子:http://www.deyisupport.com/question_answer/microcontrollers/c2000/f/56/t/22790.aspx
以前做2808的BootLoader,接收到升级命令之后,直接跳转到0x3FFB50然后芯片复位(但不会清零RAM)进入内核代码控制flash升级烧写。
现在用28075,发现手册里找不到这个复位地址,直接用看门狗复位之后,RAM区又全被清零了。
工业测控:
回复 Seven Han:
在28075的数据手册中还是没有找到0x3FFFC0这个复位向量的描述,现在我App代码接收到升级命令之后,跳转到0x3FFFC0,然后挂仿真器看芯片就跑到0x8c9eb这个flsh地址了,但是这个0x8c9eb地址里面,我并没有代码汇编到这里,所以芯片就没反应了。
尝试直接跳转到0x3FF75C,芯片也是跑到0x8c9eb这个flsh地址,这是什么原因?要跳转到什么地址,芯片才能引导到main()的入口地址0x80000。
另外想问一下2808中的0x3FFFC0地址与0x3FFB50这个地址是什么关系,为什么跳转到0x3FFB50后芯片复位进入在线升级内核代码的main()看到RAM区没有被清零,还是跳转前赋的值。
以前做2808的BootLoader,接收到升级命令之后,直接跳转到0x3FFB50然后芯片复位(但不会清零RAM)进入内核代码控制flash升级烧写。
现在用28075,发现手册里找不到这个复位地址,直接用看门狗复位之后,RAM区又全被清零了。
Eric Ma:
回复 工业测控:
在28075的数据手册中还是没有找到0x3FFFC0这个复位向量的描述,现在我App代码接收到升级命令之后,跳转到0x3FFFC0,然后挂仿真器看芯片就跑到0x8c9eb这个flsh地址了,但是这个0x8c9eb地址里面,我并没有代码汇编到这里,所以芯片就没反应了。
尝试直接跳转到0x3FF75C,芯片也是跑到0x8c9eb这个flsh地址,这是什么原因?要跳转到什么地址,芯片才能引导到main()的入口地址0x80000。
另外想问一下2808中的0x3FFFC0地址与0x3FFB50这个地址是什么关系,为什么跳转到0x3FFB50后芯片复位进入在线升级内核代码的main()看到RAM区没有被清零,还是跳转前赋的值。
ERIC:文档spruhm9B 2.4.6 Vector Tables 章。
你APP收到升级指令后,为何要跳转到复位向量啊,你应该要跳转到对应的bootloader升级代码里面才对。