我们选择了KL17作为公司主用芯片,目前有5个产品都是用这颗在做开发。
产品需要实现无线远距离更新程序。
现在问题描述如下:
通过无线模块,把需要更新的MCU程序(APP B)接收并保存进外置flash中。且更新了flash中的标志位。
之前发邮件问过工程师。工程师建议参考KBOOT的KL25例程,但KL25的startup.s文件和KL17的startup.s文件差别比较大。
不知道有没有KL17的例程可以参考?或者有尽量具体一些的操作步骤建议?
非常感谢
你好,
KL17芯片自带ROM Bootloader,客户可以在KL17应用代码中调用ROM Bootloader进行固件升级。
等升级结束后,调用软件复位代码运行新固件。
关于如何调用ROM Bootloader可以参考这篇文章。
Have a great day,
Mike
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
你好,
多谢回复!
自带的ROM Bootloader可以读取外部flash的程序内容吗?
你好,
KL17自带的ROM Bootloader是不能读取外部SPI Flash里面内容的。
所以,还是需要KL17烧入支持读片外spi flash 的bootloader,其实你往片外Flash中写入的固件文件可以是bin文件,这样KL17 就可以讲代码直接读取并烧写到片内Flash中。
Have a great day,
Mike
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Mike,
是的,我写入片外flash中的固件文件就是bin文件。
我也写了支持读取片外spi flash的bootloader。但写的不对,主要是:
1. 我写的bootloader的scf文件要如何配置?
2. 存在片外flash中的固件bin文件的,编译时的scf文件又要如何配置?
3. bootloader将代码从片外flash中读取并烧写到片内flash后,要如何跳转到新的固件并运行?
我现在尝试先用KBOOT中的KL25例程在板子上运行,然后在这个基础上来修改我自己的代码。但KL25的例程在我的板子上运行不正常(已经选择了device为MKL17Z128VLH4,修改了IO配置来闪烁LED)。
非常感谢。
Hi,
1. 请访问MCUBOOT网址,选择下载【MKL28Z512xxx7】芯片带MCUBOOT的SDK软件包。
你可以在 ..\boards\frdmkl28z\bootloader_examples\freedom_bootloader\mdk文件夹中找到<MKL28Z512xxx7_application_0x0000.scf>文件作为参考。
2. 应用代码scf文件可以参考<MKL28Z512xxx7_application_0xa000.scf>文件,位于..\boards\frdmkl28z\bootloader_examples\demo_apps\led_demo_freedom_a000\mdk文件夹中。
3. 通常调用jump_to_application()函数跳转到应用代码。
Have a great day,
Mike
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------