楼主: zsltx

[已解决] k64 串口远程升级

[复制链接]

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24876
最后登录
2025-7-18
发表于 2017-10-16 09:57:06 | 显示全部楼层
zsltx 发表于 2017-10-12 14:21
1.今天把之前的jlink opensda 刷成 PEopensda,按照文档把towerloader.bin放到USBMSD U盘中,通过blhost与 ...

楼主你好!K64没有片上ROM bootloader,所以你用的uart bootloader,其实也是直接下载到flash里面的。这样就需要你先把flash bootloader下载到芯片里,然后就可以实现使用UART 直接更新应用程序。
也就是第一次需要下载下bootloader,后面的应用程序完全可以用串口bootloader
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2016-12-16 15:24
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    12

    主题

    61

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    272
    最后登录
    2018-1-24
     楼主| 发表于 2017-10-16 18:06:26 | 显示全部楼层
    小恩GG 发表于 2017-10-16 09:57
    楼主你好!K64没有片上ROM bootloader,所以你用的uart bootloader,其实也是直接下载到flash里面的。这 ...

    好的,谢谢,我现在用的是TOWER_BOOTLOADER,我自己产品上用的串口是uart3,我该怎么修改下图中所示的文件,把uart3添加上去,
    1111.jpg


    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24876
    最后登录
    2025-7-18
    发表于 2017-10-17 09:18:55 | 显示全部楼层
    zsltx 发表于 2017-10-16 18:06
    好的,谢谢,我现在用的是TOWER_BOOTLOADER,我自己产品上用的串口是uart3,我该怎么修改下图中所示的文件 ...

    楼主你好!
    主要修改peripherals_pinmux.h文件中:
    #if defined(TOWER)
    #define BL_ENABLE_PINMUX_UART1 (BL_CONFIG_SCUART)
    #else
    #define BL_ENABLE_PINMUX_UART0 (BL_CONFIG_SCUART)
    #endif

    //! UART pinmux configurations
    #if defined(TOWER) // TWR board and tower_bootloader
    #define UART1_RX_PORT_BASE PORTC
    #define UART1_RX_GPIO_BASE PTC
    #define UART1_RX_GPIO_PIN_NUM 3                // PTC3
    #define UART1_RX_FUNC_ALT_MODE kPORT_MuxAlt3   // ALT mode for UART1 RX functionality
    #define UART1_RX_GPIO_ALT_MODE kPORT_MuxAsGpio // ALT mdoe for GPIO functionality
    #define UART1_RX_GPIO_IRQn PORTC_IRQn
    #define UART1_RX_GPIO_IRQHandler PORTC_IRQHandler
    #define UART1_TX_PORT_BASE PORTC
    #define UART1_TX_GPIO_PIN_NUM 4              // PTC4
    #define UART1_TX_FUNC_ALT_MODE kPORT_MuxAlt3 // ALT mode for UART1 TX functionality

    #else // flashloader and FRDM_bootloader
    #define UART0_RX_PORT_BASE PORTB
    #define UART0_RX_GPIO_BASE PTB
    #define UART0_RX_GPIO_PIN_NUM 16               // PTB16
    #define UART0_RX_FUNC_ALT_MODE kPORT_MuxAlt3   // ALT mode for UART1 RX functionality
    #define UART0_RX_GPIO_ALT_MODE kPORT_MuxAsGpio // ALT mdoe for GPIO functionality
    #define UART0_RX_GPIO_IRQn PORTB_IRQn
    #define UART0_RX_GPIO_IRQHandler PORTB_IRQHandler
    #define UART0_TX_PORT_BASE PORTB
    #define UART0_TX_GPIO_PIN_NUM 17             // PTB17
    #define UART0_TX_FUNC_ALT_MODE kPORT_MuxAlt3 // ALT mode for UART1 TX functionality
    #endif

    另外查看下pinmux_utility_common.c文件中uart_pinmux_config函数,
    如果要用UART3,你需要在peripherals_pinmux.h文件中
    定义
    #define BL_ENABLE_PINMUX_UART3 (BL_CONFIG_SCUART)
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-12-16 15:24
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    12

    主题

    61

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    272
    最后登录
    2018-1-24
     楼主| 发表于 2017-10-18 15:25:40 | 显示全部楼层
    小恩GG 发表于 2017-10-17 09:18
    楼主你好!
    主要修改peripherals_pinmux.h文件中:
    #if defined(TOWER)

    按照你说的,做了如下添加:编译通过JLINK烧录后,通过KinetisFlashTool,串口依然连接不上,有没有相关的修改文档我参考下
    1.png 21.png
    3.jpg
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24876
    最后登录
    2025-7-18
    发表于 2017-10-18 17:13:47 | 显示全部楼层
    zsltx 发表于 2017-10-18 15:25
    按照你说的,做了如下添加:编译通过JLINK烧录后,通过KinetisFlashTool,串口依然连接不上,有没有相关的 ...

    KBOOT2.0里面的doc就有。
    Kinetis Bootloader v2.0.0 Reference Manual.pdf
    NXP_Kinetis_Bootloader_2_0_0\doc
    我觉得你改了之后,可以直接使用UART3发送点数据出来看看,是否正确。
    如果不正确,可能哪里还有遗漏。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-12-16 15:24
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    12

    主题

    61

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    272
    最后登录
    2018-1-24
     楼主| 发表于 2017-10-19 09:19:25 | 显示全部楼层
    小恩GG 发表于 2017-10-18 17:13
    KBOOT2.0里面的doc就有。
    Kinetis Bootloader v2.0.0 Reference Manual.pdf
    NXP_Kinetis_Bootloader_2_0_ ...

    bootloader是从这个main函数执行的吗

    1.png
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24876
    最后登录
    2025-7-18
    发表于 2017-10-19 13:55:08 | 显示全部楼层
    zsltx 发表于 2017-10-19 09:19
    bootloader是从这个main函数执行的吗

    对的,不要用Printf,printf可能固定了某个UART,你可以直接用UART的发送程序发送出来。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-12-16 15:24
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    12

    主题

    61

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    272
    最后登录
    2018-1-24
     楼主| 发表于 2017-10-19 17:49:22 | 显示全部楼层
    小恩GG 发表于 2017-10-19 13:55
    对的,不要用Printf,printf可能固定了某个UART,你可以直接用UART的发送程序发送出来。 ...

    已修改成功,可以通过uart3与官方提供的blhost和kinetFLASHtool连接成功,感激不尽,接下里就是改变app了,有问题在继续请教
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24876
    最后登录
    2025-7-18
    发表于 2017-10-20 10:34:14 | 显示全部楼层
    zsltx 发表于 2017-10-19 17:49
    已修改成功,可以通过uart3与官方提供的blhost和kinetFLASHtool连接成功,感激不尽,接下里就是改变app了 ...

    非常好!
    后面你又修改了哪些地方才成功的?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-12-16 15:24
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    12

    主题

    61

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    272
    最后登录
    2018-1-24
     楼主| 发表于 2017-10-20 11:35:06 | 显示全部楼层
    小恩GG 发表于 2017-10-20 10:34
    非常好!
    后面你又修改了哪些地方才成功的?


    在peripherals_MK64F12.c 文件中修改如下,将.instance = 1改为自己用的uart口,另外我想问一下现在是依靠官方提供的KinetisFlashTool更新app。我想知道这个软件和mcu的通信协议哪里可以找到,后期我要脱离这个工具,不然我也没法实现远程给产品升级
    33.PNG



    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-20 11:53 , Processed in 0.112589 second(s), 31 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表