前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于CAN的bootloader在KEAZ系列上的移植

基于CAN的bootloader在KEAZ系列上的移植

作者头像
用户1605515
发布2019-08-06 17:41:28
1.1K0
发布2019-08-06 17:41:28
举报
文章被收录于专栏:嵌入式程序猿嵌入式程序猿

在实际的工程和产品开发中,我们需要更新产品的程序,这时候就需要产品具备bootloader引导程序功能,而嵌入式中常用的接口有基于UART,CAN,IIC,SPI, 以太网等,今天我们来看看使用广泛的基于CAN的bootloader在NXP汽车控制器S9KEAZ系列上的移植。

首先因为我们使用上位机PC来下载程序而上位机不能直接连接CAN总线,所以还需要一个转接板将CAN通讯转成串口通讯接入上位机PC,PC和转接板之间使用XMODEM文件传输协议。

S9KEAZ64同KE06是一样的资源和手册,只是应用的温度范围不同,可以使用KE06的SDK快速建立工程,官网也提供一个AN4874和AN5219以及AN2295参考笔记,可以是一个很好的起步和参考,但是这个比较简单,实际的工业产品还要加一些自己的东西。

整体的结构和硬件连接

因为我实际的板子使用的是内部时钟,和freedom不同,所以要修改时钟

为FEI模式

注释掉OSC

根据Flash分配设置应用程序运行的起始地址

在应用程序中的icf文件中要跟这个设置地址配置一致,否则应用程序不能正常运行。其他位速率等的设置根据自己的需求配置,保持和转接板一致的设置。

应用程序中icf文件修改,

其实我们将中断向量表从0地址,重新定位到了0x5000,我们可以使用NXP官网提供的工具将bootloader的程序和应用程序合成,这个工具支持使用Srec文件合同,我们也可以配置IDE生成bin文件使用其他支持的工具合bin文件。

IAR中生成bin文件需要设置成如下模式

将合成后的文件下载到自己的硬件板件,准备几个不同的应用程序bin文件,来测试我们移植好的bootloader,测试上位机使用tera term,tera term是免费开源的虚拟终端,支持网口和串口,且内置很多协议,设置串口为115200,N8,1, 然后如果板子进入下载模式,选择下载的文件

等待下载完成,根据自己应用程序的需求测试看是否通过,我自己使用的两个测试bin文件会输出不同的CAN消息,且操作不同的继电器。我们也可以将J1939程序加入,完成基于J1939的bootloader。NXP官网还提供了MCUBOOT2.0.0的下载包,但是目前还不支持KE06和S9KEAZ系列,需要自己动手移植,且移植工作量比较大但是是比较标准和量产正式的bootloader供用户使用。而且支持的芯片的bootloader已经集成进SDK供用户使用,也很方便,如果能支持全系列就更好了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 嵌入式程序猿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档