Keaz 1284 bootloader upgrade is not successful

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Keaz 1284 bootloader upgrade is not successful

3,926件の閲覧回数
tianshenglin
Contributor II

Keil development environment files generated by S19 file,use keaz 1284 bootloader upgrade is not successful .

How to solve this problem?

Thanks!

0 件の賞賛
返信
5 返答(返信)

3,681件の閲覧回数
jeremyzhou
NXP Employee
NXP Employee

Hi,

I will appreciate a lot if you can explain your issue in details, like as what bootloader demo, S19 file generating, bootloader upgrade tool, etc.
Have a great day,
Ping

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 件の賞賛
返信

3,681件の閲覧回数
tianshenglin
Contributor II

您好,

是这样的,我目前在搞KEAZ1284 CAN BUS bootloader 升级,由于工作原因(需要与其他同事对接再加上cw已经过期)我把官方bootloader移植到了keil的环境下,因为我们的开发APP程序也是在keil环境中。bootloader和APP都是用的官方库文件。bootloader是移植好了,但调转不到APP 里面。

1、我的bootloader程序是从0x00000000-0x00004000 共16KB空间。

我的跳转是这么定义的:

typedef void(*JumpToPtr)(void);

uint32_t *pNewAppEntry = (uint32_t*)0x00004004;

JumpToPtrpJumpTo;

pJumpTo = ((JumpToPtr)(*pNewAppEntry));

pJumpTo();

2、我的APP程序是从0x00004000-0x00020000空间。

如下是我的APP程序生成的S19文件,部分赋值如下:

S3150000400078F8FF1F97410000658100006581000078

S315000040106581000065810000658100006581000002

S3150000402065810000658100006581000065810000F2

S3150000403065810000658100006581000065810000E2

S3150000404065810000658100006581000065810000D2

S3150000405065810000658100006581000065810000C2

S31500004060FD64000065810000658100006581000037

S3150000407021760000357600004976000021430000D5

S31500004080658100006581000065810000355C0000E7

S31500004090F96C000065810000916C0000AD6C0000B9

S315000040A039660000616600006581000065810000D8

S315000040B06581000065810000C16A00005D6B00003B

由此可以看出我的APP程序地址已经跳转到了0x00004000这个地方开始,但bootloader升级下载完后为什么不能运行呢?

目前我已经尝试了好多种地址跳转的方法,未能成功。请freescale工程师分析分析。不胜感激。

0 件の賞賛
返信

3,681件の閲覧回数
jeremyzhou
NXP Employee
NXP Employee

Hi,
调试方法步骤:

在你把bootloader和application代码下载到MCU中对应的flash后,在application工程中,先对Flash download进行如下的设置,然后单击debug按钮,

这样程序会从flash起始0地址运行,然后你可以暂定运行,看看代码执行到哪一个位置以后卡住了。

2016-01-18_16-12-52.jpg


Have a great day,
Ping

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 件の賞賛
返信

3,681件の閲覧回数
tianshenglin
Contributor II

Dear,

按照你的建议我先把bootloader和APP烧写到MCU中,然后按照你的图片设置,在APP里面单步仿真,程序动不了,

开始debug一进来如下图:

一进来就卡死.png

按下stop按钮如下图:

按下stop.png

接着按下运行按钮如下图:

按下运行按钮.png

再按下复位按钮如下图:

按下复位键.png

我把APP程序作了如下修改:

#ifdef KEIL

const vector_entry  __vector_table[] __attribute__((at(0x4000))) =

依然未能bootloader还是未能跳进来。

0 件の賞賛
返信

3,679件の閲覧回数
tianshenglin
Contributor II

Dear,

附件是基于demo板子keil工程的bootloader 和APP程序,你帮我分析调试一下。

非常感谢。

0 件の賞賛
返信