打印
[Kinetis]

KL26 KBOOT使用问题

[复制链接]
1950|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hi  我在使用NXP的Kboot,网站上下载的FSL_Kinetis_Bootloader_1_2_0,然后我打开targets\MKL25Z4的bootloader.eww工程,然后编译feedom_bootloader,编译完成后下载到frdm-KL26的板子上,然后修改应用代码:
hello_world.bin的工程是在KSDK_1.3.0\examples\frdmkl26z\demo_apps\hello_world\iar\debug下面生成的,单独下载LED是闪烁的,证明工程没有问题,因为看到bootloader.eww工程中BL_APP_VECTOR_TABLE_ADDRESS 0x8000,顾修改KSDK_1.3.0\platform\devices\MKL26Z4\linker\iar下面的MKL26Z128xxx4_flash.icf,修改内容如下:
/*define symbol m_interrupts_start       = 0x00000000;
define symbol m_interrupts_end         = 0x000000FF;
define symbol m_flash_config_start     = 0x00000400;
define symbol m_flash_config_end       = 0x0000040F;
define symbol m_text_start             = 0x00000410;*/

define symbol m_interrupts_start       = 0x00008000;
define symbol m_interrupts_end         = 0x000080FF;
define symbol m_flash_config_start     = 0x00008400;
define symbol m_flash_config_end       = 0x0000840F;
define symbol m_text_start             = 0x00008410;
define symbol m_text_end               = 0x0001FFFF;

编译完之后生成hello_world.bin
然后执行命令:

blhost -p COM45 -- get-property 1
blhost -p COM45 -- flash-erase-all
blhost -p COM45 -- write-memory 0 hello_world.bin
blhost -p COM45 -- reset


无任何反应,这个是什么问题?

相关帖子

沙发
NXP_TICS_Jeremy| | 2015-12-29 13:27 | 只看该作者
define symbol m_flash_config_start     = 0x00000400;
define symbol m_flash_config_end       = 0x0000040F;
不要修改试试

使用特权

评论回复
板凳
Tennasi| | 2015-12-29 21:01 | 只看该作者
是不是flash的起始地址设置的有问题呢?

使用特权

评论回复
地板
jhf7777777|  楼主 | 2015-12-30 11:37 | 只看该作者
NXP_TICS_Jeremy 发表于 2015-12-29 13:27
define symbol m_flash_config_start     = 0x00000400;
define symbol m_flash_config_end       = 0x0000 ...

不行啊

使用特权

评论回复
5
NXP_TICS_Jeremy| | 2015-12-30 13:37 | 只看该作者

这样啊,你把icf修改后,对FRDM-KL26进行debug,然后看看程序卡在哪一步或者出现什么问题?

使用特权

评论回复
6
jhf7777777|  楼主 | 2015-12-30 13:57 | 只看该作者
NXP_TICS_Jeremy 发表于 2015-12-30 13:37
这样啊,你把icf修改后,对FRDM-KL26进行debug,然后看看程序卡在哪一步或者出现什么问题? ...

如果单独修改,debug是可以的

使用特权

评论回复
7
jhf7777777|  楼主 | 2015-12-30 15:09 | 只看该作者
jhf7777777 发表于 2015-12-30 13:57
如果单独修改,debug是可以的

NXP技术大神,我发现了个现象,如果这样执行是可以的,首先FSL_Kinetis_Bootloader_1_2_0\targets\MKL25Z4下面的bootloader.eww的工程下载,然后执行下面命令:blhost -p COM45 -- get-property 1
blhost -p COM45 -- flash-erase-all
blhost -p COM45 -- write-memory 0 hello_world.bin
blhost -p COM45 -- reset


最终没有运行起来。但是换种方法,首先FSL_Kinetis_Bootloader_1_2_0\targets\MKL25Z4下面的bootloader.eww的工程下载,然后不用blhost -p COM45 -- write-memory 0 hello_world.bin烧写,直接用KSDK_1.3.0\examples\frdmkl26z\demo_apps\hello_world\iar下面的工程烧写,然后复位,马上执行:
blhost -p COM45 -- get-property 1
blhost -p COM45 -- reset


这样就程序是执行起来了。


通过比较,其实bootloader是下载到相应的地方了,也是起作用了,但是通过bootloader去下载bin文件这步出问题,是不是
blhost -p COM45 -- write-memory 0 hello_world.bin这句话执行问题,你们的用户手册是这样写的。

使用特权

评论回复
8
NXP_TICS_Jeremy| | 2015-12-30 15:16 | 只看该作者
jhf7777777 发表于 2015-12-30 13:57
如果单独修改,debug是可以的

你按照如下步骤操作一下,
首先第一步:你将bootloader和application的代码都已经烧录到你的MCU中;
第二:打开你的application 工程,作如下设置

第三:单击如下图所示的按钮进入调试

然后会进入调试界面,跟着你看一下MCU卡在哪一步。


使用特权

评论回复
9
jhf7777777|  楼主 | 2016-1-5 13:40 | 只看该作者
NXP_TICS_Jeremy 发表于 2015-12-30 15:16
你按照如下步骤操作一下,
首先第一步:你将bootloader和application的代码都已经烧录到你的MCU中;
第二 ...

这样试了,但是停留的地方是软件右边的汇编区域,C程序中没有指示停在哪里,你那里可以像我那样操作下吗?

使用特权

评论回复
10
NXP_TICS_Jeremy| | 2016-1-5 16:25 | 只看该作者
jhf7777777 发表于 2016-1-5 13:40
这样试了,但是停留的地方是软件右边的汇编区域,C程序中没有指示停在哪里,你那里可以像我那样操作下吗 ...

你在application 的地方设置一个断点看看,看看能否成功跳转到这里

使用特权

评论回复
11
jhf7777777|  楼主 | 2016-1-13 09:46 | 只看该作者
不行的,其实你那里可以一试就知道了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

29

帖子

0

粉丝