查看: 2655|回复: 9

[求助] KL26Z, 开发boot前,做跳转实验,一直失败,急等回复!

[复制链接]

该用户从未签到

9

主题

52

帖子

1

注册会员

Rank: 2

积分
138
最后登录
2018-11-29
发表于 2015-7-6 14:14:58 | 显示全部楼层 |阅读模式
用官方demo中的两个LED工程分别充当BOOT和APP,
红色蓝色交替闪亮的作为boot,红色绿色闪亮的作为APP,

计划, APP偏移22K,

然后,我在boot中的跳转代码为:
typedef void ( *JumpLocation )(void);

。。。。。。。
JumpLocation funJump;

delay 10s;

。。。。。。。
//偏移22K, 0x5800
funJump = ( JumpLocation )(0x5800+4);
__set_MSP(0x5800+4);
funJump();


然后,APP中修改ICF文件,
/*-Memory Regions-*/
define symbol __ICFEDIT_region_ROM_start__ = 0x5800; //0;                                                //0x5800;                                                                                      //offset=22k;  //0x0;
define symbol __ICFEDIT_region_ROM_end__   = 0x0001ffff;//__ICFEDIT_region_ROM_start__ + ((128-22)*1024);//(128*1024);        //((128-22)*1024);      //********
define symbol __ICFEDIT_region_RAM_end__   = 0x20000000;
define symbol __ICFEDIT_region_RAM_start__ = __ICFEDIT_region_RAM_end__ - (16*1024)/4 + 0x410;   //********
/*-Specials-*/
define symbol __ICFEDIT_intvec_start__ = 0x5800;//__ICFEDIT_region_ROM_start__;

/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = (1*1024);   //********
define symbol __ICFEDIT_size_heap__   = (2*1024);   //********
/**** End of ICF editor section. ###ICF###*/

define symbol __region_RAM2_start__        = 0x20000000;
define symbol __region_RAM2_end__          = __region_RAM2_start__ + ((16*1024)*3)/4;//********

define exported symbol __VECTOR_TABLE      = 0x00005800;//0x00000000;
define exported symbol __VECTOR_RAM        = 0x00005800;//0x00000000;//__ICFEDIT_region_RAM_start__ - 0x410;

define exported symbol __BOOT_STACK_ADDRESS = __region_RAM2_end__ - 8;

define symbol __code_start__ = 0x00000410+__ICFEDIT_region_ROM_start__;//********

。。。。。。。。。。


然后两边都出Bin,按照22K偏移,拼成一个bin,JLINK烧下去,
运行结果,,只有boot在跑,10秒后,似乎有一个跳转动作,但最终还是红蓝闪亮,没出现期望中的红绿闪亮。
我知道答案 目前已有9人回答

BootDemo.zip

2.73 MB, 下载次数: 0, 下载积分: 威望 1

回复

使用道具 举报

  • TA的每日心情

    2018-10-30 22:37
  • 签到天数: 28 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    9

    主题

    435

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1107
    最后登录
    2020-8-28
    发表于 2015-7-6 15:22:56 | 显示全部楼层
    MSP                                             
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9

    主题

    52

    帖子

    1

    注册会员

    Rank: 2

    积分
    138
    最后登录
    2018-11-29
     楼主| 发表于 2015-7-6 15:24:58 | 显示全部楼层
    请明示,烧纸兄
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2018-10-30 22:37
  • 签到天数: 28 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    9

    主题

    435

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1107
    最后登录
    2020-8-28
    发表于 2015-7-6 15:56:38 | 显示全部楼层
    你还是去 ctrl+c  kboot 里面那个 jump**() 吧
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9

    主题

    52

    帖子

    1

    注册会员

    Rank: 2

    积分
    138
    最后登录
    2018-11-29
     楼主| 发表于 2015-7-6 18:14:48 | 显示全部楼层
    试过了,没用
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    13

    帖子

    0

    新手上路

    Rank: 1

    积分
    46
    最后登录
    1970-1-1
    发表于 2015-7-7 14:08:04 | 显示全部楼层
    不论LZ的icf是否正确,暂且分析下LZ boot代码:
    funJump = ( JumpLocation )(0x5800+4);
    __set_MSP(0x5800+4);
    //上面2句是设置跳转的PC和SP,APP vector起始地址为0x5800,但LZ并没有获得有效PC和SP值,应改为如下语句
    funJump = ( JumpLocation )(*(uint32 *)(0x5800+4));
    __set_MSP(*(uint32 *)0x5800);
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    13

    帖子

    0

    新手上路

    Rank: 1

    积分
    46
    最后登录
    1970-1-1
    发表于 2015-7-7 14:15:19 | 显示全部楼层
    如果LZ的APP有用到中断,还得重定向SCB->VTOR指向APP vector地址
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9

    主题

    52

    帖子

    1

    注册会员

    Rank: 2

    积分
    138
    最后登录
    2018-11-29
     楼主| 发表于 2015-7-7 17:47:37 | 显示全部楼层
    谢谢 henjay724!

    今天上午 River  (深圳的FAE) 已经帮我解决,,其中,,有您提到的这部分,,还有时钟模式,,谢谢!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-7-7 17:21
  • 签到天数: 16 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    13

    主题

    82

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    251
    最后登录
    1970-1-1
    发表于 2017-5-22 14:35:55 | 显示全部楼层
    yangzhengyong 发表于 2015-7-7 17:47
    谢谢 henjay724!

    今天上午 River  (深圳的FAE) 已经帮我解决,,其中,,有您提到的这部分,,还有时钟 ...

    请问时钟模式这部分是什么意思?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2021-1-28 20:09
  • 签到天数: 317 天

    连续签到: 1 天

    [LV.8]以坛为家I

    61

    主题

    1582

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    9270
    最后登录
    2022-5-12
    发表于 2017-5-25 10:21:26 | 显示全部楼层
    学习了
    好好
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-19 16:12 , Processed in 0.108603 second(s), 31 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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