查看: 5995|回复: 22

[求助] K64下载程序

[复制链接]
  • TA的每日心情
    开心
    2017-6-8 14:49
  • 签到天数: 8 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    28

    主题

    263

    帖子

    0

    高级会员

    Rank: 4

    积分
    853
    最后登录
    2018-5-18
    发表于 2016-1-8 09:57:51 | 显示全部楼层 |阅读模式
    大侠们,现在要用串口和USB下载程序,我用的片子是飞思卡尔的K64,这两种方法具体怎么操作呢,有代码吗,没有做过,不知道怎么下手,有做过的朋友能帮忙分享下吗,我的邮箱hzq890@163.com
    我知道答案 目前已有22人回答
    哈哈哈哈
    回复

    使用道具 举报

    该用户从未签到

    124

    主题

    3600

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5781
    最后登录
    1970-1-1
    发表于 2016-1-8 12:22:26 | 显示全部楼层
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-6-8 14:49
  • 签到天数: 8 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    28

    主题

    263

    帖子

    0

    高级会员

    Rank: 4

    积分
    853
    最后登录
    2018-5-18
     楼主| 发表于 2016-1-12 16:05:26 | 显示全部楼层
    FSL_TICS_ZP 发表于 2016-1-8 12:22
    可以参考FRDM-K64F120
    http://www.nxp.com/zh-Hans/products/software-and-tools/hardware-development-too ...

    你好,你发的内容没有串口下载程序啊
    哈哈哈哈
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    124

    主题

    3600

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5781
    最后登录
    1970-1-1
    发表于 2016-1-12 16:09:10 | 显示全部楼层
    hzq890 发表于 2016-1-12 16:05
    你好,你发的内容没有串口下载程序啊

    你说串口下载是要用bootloader吗?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-6-8 14:49
  • 签到天数: 8 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    28

    主题

    263

    帖子

    0

    高级会员

    Rank: 4

    积分
    853
    最后登录
    2018-5-18
     楼主| 发表于 2016-1-20 16:09:48 | 显示全部楼层
    FSL_TICS_ZP 发表于 2016-1-12 16:09
    你说串口下载是要用bootloader吗?

    版主好,我用FSL_Kinetis_Bootloader_1_2_0,我的芯片是K64FX512,我用例程调通了,先JLINK烧写bootloader,然后再用串口,上位机用KinetisUpdater.exe,程序下载进去了,
    但是不知道我的MQX的文件怎么操作呢,修改了icf文件,怎么都不行,
    现在是如果要下载MQX的SREC文件,bootloader.c要重新做,还是就用例程的就行,
    如果用例程的就行,那mqx下的icf文件怎么修改呢,我用的icf文件是E:\Freescale_MQX_4_1\lib\twrk64f120m.iar\debug\bsp下的intflash.icf
    哈哈哈哈
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    124

    主题

    3600

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5781
    最后登录
    1970-1-1
    发表于 2016-1-20 16:34:55 | 显示全部楼层
    hzq890 发表于 2016-1-20 16:09
    版主好,我用FSL_Kinetis_Bootloader_1_2_0,我的芯片是K64FX512,我用例程调通了,先JLINK烧写bootloade ...

    你现在完成的bootloader是正常工作的话,如果需要向Flash 中下载MQX工程的代码,你是需要修改工程的icf的,不然的话无法正确完成跳转,只有icf如何修改呢,你可以参考此贴介绍:
    https://www.nxpic.org.cn/module/forum/thread-592663-1-1.html
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-6-8 14:49
  • 签到天数: 8 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    28

    主题

    263

    帖子

    0

    高级会员

    Rank: 4

    积分
    853
    最后登录
    2018-5-18
     楼主| 发表于 2016-1-20 17:10:11 | 显示全部楼层
    版主好,我用的不是AN2295的bootloader,用的是FSL_Kinetis_Bootloader_1_2_0下的那个,修改方法相同吗
    哈哈哈哈
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-6-8 14:49
  • 签到天数: 8 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    28

    主题

    263

    帖子

    0

    高级会员

    Rank: 4

    积分
    853
    最后登录
    2018-5-18
     楼主| 发表于 2016-1-20 17:22:02 | 显示全部楼层
    FSL_TICS_ZP 发表于 2016-1-20 16:34
    你现在完成的bootloader是正常工作的话,如果需要向Flash 中下载MQX工程的代码,你是需要修改工程的icf的 ...

    你好版主 ,下面是我的icf文件的全部内容
    /*###ICF### Section handled by ICF editor, don't touch! ****/
    /*-Editor annotation file-*/
    /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */
    /*-Specials-*/
    define symbol __ICFEDIT_intvec_start__ = 0x0000A000;
    /*-Memory Regions-*/
    define symbol __ICFEDIT_region_ROM_start__   = 0x0000A000;
    define symbol __ICFEDIT_region_ROM_end__     = 0x000FFFFF;
    define symbol __ICFEDIT_region_RAM_start__   = 0x1FFF0000;
    define symbol __ICFEDIT_region_RAM_end__     = 0x2002FFF0;
    /*-Sizes-*/
    define symbol __ICFEDIT_size_cstack__ = (1*1024) + 0x0000A000;//define symbol __ICFEDIT_size_cstack__   = 0;
    define symbol __ICFEDIT_size_heap__     = 0;
    /**** End of ICF editor section. ###ICF###*/

    define exported symbol __EXTERNAL_MRAM_ROM_BASE = 0x60000000;
    define exported symbol __EXTERNAL_MRAM_ROM_SIZE = 0x00000000;
    define exported symbol __EXTERNAL_MRAM_RAM_BASE = 0x60000000;
    define exported symbol __EXTERNAL_MRAM_RAM_SIZE = 0x00080000;

    define exported symbol __EXTERNAL_LCD_BASE      = 0x60000000;
    define exported symbol __EXTERNAL_LCD_SIZE      = 0x1FFFF;
    define exported symbol __EXTERNAL_LCD_DC_BASE   = 0x60010000;
    define exported symbol __INTERNAL_FLASH_BASE    = 0x0000A000;
    define exported symbol __INTERNAL_FLASH_SIZE    = 0x00100000;
    define exported symbol __INTERNAL_SRAM_BASE     = 0x1FFF0000;
    define exported symbol __INTERNAL_SRAM_SIZE     = 0x00040000;
    define exported symbol __SRAM_POOL              = 0x1FFF0000;

    define exported symbol __INTERNAL_FLEXNVM_BASE = 0;
    define exported symbol __INTERNAL_FLEXNVM_SIZE = 0;

    define exported symbol __VECTOR_TABLE_ROM_START = 0x0000A000;
    define exported symbol __VECTOR_TABLE_RAM_START = __ICFEDIT_region_RAM_start__;

    define exported symbol __DEFAULT_PROCESSOR_NUMBER = 1;
    define exported symbol __DEFAULT_INTERRUPT_STACK_SIZE = 1024;

    /* mem_init writes a storeblock_struct at the end of kernel data, max size 32 bytes, so use 0x100 offset */
    define exported symbol __BOOT_STACK_ADDRESS = __ICFEDIT_region_RAM_end__ - 0x100;


    define exported symbol __KERNEL_DATA_END = __ICFEDIT_region_RAM_end__;

    define memory mem with size = 4G;
    define region ROM_region   = mem:[from __ICFEDIT_region_ROM_start__   to __ICFEDIT_region_ROM_end__];
    define region RAM_region   = mem:[from __ICFEDIT_region_RAM_start__   to __ICFEDIT_region_RAM_end__];

    define block KERNEL_DATA with alignment = 8 { section .kernel_data };

    define exported symbol __FLASHX_SECT_SIZE = 0x1000;
    define exported symbol __FLASHX_END_ADDR = __INTERNAL_FLASH_BASE + __INTERNAL_FLASH_SIZE;

    define block CFMPROTROM with size = 20 { section .cfmconfig };
    define block FLASHX_POOL with alignment = __FLASHX_SECT_SIZE { section .flashx };
    define block TEXTSECTION with alignment = 4 { section .text };
    keep { section .cfmconfig };
    keep { section .flashx };

    initialize by copy { readwrite };
    do not initialize  { section .noinit };
    do not initialize  { section .kernel_data };
    do not initialize  { section .flashx };

    place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec, block CFMPROTROM };
    place in ROM_region { first block TEXTSECTION, readonly,  last block FLASHX_POOL };

    place at address mem:__ICFEDIT_region_RAM_start__ { readwrite section .vectors_ram };

    /* each block/segment must be in one line (association to region) because I need kernel data start after other datas */
    place in RAM_region   { readwrite, last block KERNEL_DATA };

    有4处从0X00000000改为了0x0000A000,程序都没有跳转到我的程序
    哈哈哈哈
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    124

    主题

    3600

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5781
    最后登录
    1970-1-1
    发表于 2016-1-21 10:05:12 | 显示全部楼层
    那就可以试试这个以下的步骤调试,看看代码跑执行到哪个地方了:1. 先将bootloader和application代码分别烧录到MCU中;
    2. 然后设置Attach to running Target
    2016-01-21_9-59-53.jpg
    3. 跟着单击debug,这样代码会从0地址开始执行,暂停执行,就可以观看到代码执行到哪一行就停止了
    2016-01-21_10-00-43.jpg
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-6-8 14:49
  • 签到天数: 8 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    28

    主题

    263

    帖子

    0

    高级会员

    Rank: 4

    积分
    853
    最后登录
    2018-5-18
     楼主| 发表于 2016-1-21 10:41:47 | 显示全部楼层
    FSL_TICS_ZP 发表于 2016-1-20 16:34
    你现在完成的bootloader是正常工作的话,如果需要向Flash 中下载MQX工程的代码,你是需要修改工程的icf的 ...

    你好版主,能帮我看下啊啊 我的ICF文件问题可能出现在哪里,我用的是MK64FX512
    哈哈哈哈
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-23 04:52 , Processed in 0.112342 second(s), 30 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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