楼主: tianchaic

[已解决] MKL25Z128的MCU,bootloader的问题--求指导-已解决

[复制链接]

该用户从未签到

34

主题

101

帖子

0

新手上路

Rank: 1

积分
293
最后登录
1970-1-1
发表于 2013-8-22 18:38:20 | 显示全部楼层 |阅读模式
我的Code分为2部分,一部分是Bootloader,另外一部分是AP。
1.我的AP的ld文件设置如下:
MEMORY
{
  m_interrupts  (rx) : ORIGIN = 0x00000000,      LENGTH = 0xC0
  m_cfmprotrom  (rx) : ORIGIN = 0x00000400,  LENGTH = 0x10
  m_text    (rx) :  ORIGIN = 0x0000A800,              LENGTH = 128K - 0xA800
  m_data          (rwx) :  ORIGIN = 0x1FFFF000,   LENGTH = 4K    /* Lower SRAM */
  m_data2    (rwx) :  ORIGIN = 0x200000C0,      LENGTH = 12K - 0x4C0 /* Upper SRAM */
  m_ram_func  (rx)  :  ORIGIN = 0x20002C00,   LENGTH = 0x400       /* Contain functions run from RAM */
}
 
2.在AP的Main函数里面,会将中断向量表拷贝到Sram中:

 // Copy Application Stored Interrupt Vector table to RAM 
 pdst=(uint_32*)0x1FFFF000; 
 psrc=(uint_32*)0x0000A000;  
 for (i=0;i
我知道答案 目前已有9人回答
回复

使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2013-8-23 11:25:44 | 显示全部楼层

    RE:MKL25Z128的MCU,bootloader的问题--求指导

    你确认你的用户APP跳转的地址是0xa000吗?可以看一下他默认的启动地址。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    34

    主题

    101

    帖子

    0

    新手上路

    Rank: 1

    积分
    293
    最后登录
    1970-1-1
     楼主| 发表于 2013-8-23 11:58:08 | 显示全部楼层

    RE:MKL25Z128的MCU,bootloader的问题--求指导

    默认的启动地址在哪里看?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    178

    帖子

    0

    高级会员

    Rank: 4

    积分
    825
    最后登录
    1970-1-1
    发表于 2013-8-23 15:18:54 | 显示全部楼层

    RE:MKL25Z128的MCU,bootloader的问题--求指导

    AP的SRAM中断向量表占用了m_data          (rwx) :  ORIGIN = 0x1FFFF000,   LENGTH = 4K    /* Lower SRAM */的一部分空间。建议改为:
    m_data          (rwx) :  ORIGIN = 0x1FFFF400,   LENGTH = 4K-0x400    /* Lower SRAM */
    另外m_text是从0x0000a800开始的,你跳转到0xa000做什么?正确的做法是从0xa000和0xa004读取PC和SP,然后跳转。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    6

    帖子

    0

    新手上路

    Rank: 1

    积分
    29
    最后登录
    1970-1-1
    发表于 2013-8-24 15:44:00 | 显示全部楼层

    RE:MKL25Z128的MCU,bootloader的问题--求指导

    楼主解决了没有,我也碰到同样的问题,我是在IAR的环境下编的,现在应用程序下进去跑起来。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    34

    主题

    101

    帖子

    0

    新手上路

    Rank: 1

    积分
    293
    最后登录
    1970-1-1
     楼主| 发表于 2013-8-26 08:47:24 | 显示全部楼层

    RE:MKL25Z128的MCU,bootloader的问题--求指导

    没有解决,跳不过去。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10

    主题

    459

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    303
    最后登录
    2024-10-24
    发表于 2013-8-26 15:07:26 | 显示全部楼层

    回复:MKL25Z128的MCU,bootloader的问题--求指导-已解决

    以下几个部分都设置对吗?
    需要配置AP的LCF文件,AP程序设置三个部分(具体地址只是示意,需要根据自己情况设置)。
    define symbol __ICFEDIT_region_ROM_start__ = 0xC00;给Bootloader留出3K Flash空间。
    define exported symbol __VECTOR_TABLE = 0x00000C00;设置AP中断向量表的起始地址
    define symbol __code_start__ = 0x00001010;AP程序的起始地址
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10

    主题

    459

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    303
    最后登录
    2024-10-24
    发表于 2013-8-26 15:09:37 | 显示全部楼层

    回复:MKL25Z128的MCU,bootloader的问题--求指导-已解决

    以下几个部分都设置对吗?
    需要配置AP的LCF文件,AP程序设置三个部分(具体地址只是示意,需要根据自己情况设置)。
    define symbol __ICFEDIT_region_ROM_start__ = 0xC00;给Bootloader留出3K Flash空间。
    define exported symbol __VECTOR_TABLE = 0x00000C00;设置AP中断向量表的起始地址
    define symbol __code_start__ = 0x00001010;AP程序的起始地址
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    34

    主题

    101

    帖子

    0

    新手上路

    Rank: 1

    积分
    293
    最后登录
    1970-1-1
     楼主| 发表于 2013-8-26 15:15:26 | 显示全部楼层

    回复:MKL25Z128的MCU,bootloader的问题--求指导-已解决

    回复第 8 楼 于2013-08-26 15:09:37发表:
    以下几个部分都设置对吗?
    需要配置AP的LCF文件,AP程序设置三个部分(具体地址只是示意,需要根据自己情况设置)。
    define symbol __ICFEDIT_region_ROM_start__ = 0xC00;给Bootloader留出3K Flash空间。
    define exported symbol __VECTOR_TABLE = 0x00000C00;设置AP中断向量表的起始地址
    define symbol __code_start__ = 0x00001010;AP程序的起始地址 

    我这里只有Ld文件,没有lcf文件。。这2种文件有什么区别呢?
    MEMORY {
      m_interrupts (RX) :   ORIGIN = 0x00010000,   LENGTH = 0x000000C0
      m_text      (RX) :    ORIGIN = 0x00010410,   LENGTH = 0x00020000-0x10410
      m_data_1FFFF000 (RW) :  ORIGIN = 0x1FFFF400,   LENGTH = 4K-0x400
      m_data      (RW) :   ORIGIN = 0x20000000,   LENGTH = 0x00003000-0x400
      m_cfmprotrom  (RX) :  ORIGIN = 0x00010400,   LENGTH = 0x00000010
      m_ram_func  (rx)  :  ORIGIN = 0x20002C00,  LENGTH = 0x400       /* Contain functions run from RAM */
    }
    AP中断向量表的起始地址有设置:m_interrupts (RX) : ORIGIN = 0x00010000, LENGTH = 0x000000C0
    AP的起始地址: m_text (RX) : ORIGIN = 0x00010410, LENGTH = 0x00020000-0x10410
    MKL25有128K的Flash,我前面64K留给Bootloader,后面64K留给APP。
    但这个我不知道有没有设置错。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10

    主题

    459

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    303
    最后登录
    2024-10-24
    发表于 2013-8-26 16:05:21 | 显示全部楼层

    回复:MKL25Z128的MCU,bootloader的问题--求指导-已解决

    LD文件是CW里的配置格式,LCF是IAR的配置文件格式。
    m_cfmprotrom  (RX) :  ORIGIN = 0x00010400,   LENGTH = 0x00000010这一段的ORIGIN区域应该不能改变的吧,只能是400到410的16个字节。你可以仔细参看一下AN2295的33页对配置文件的描述!祝你好运!
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-20 15:08 , Processed in 0.102836 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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