查看: 5196|回复: 4

[讨论] KEA128 BOOTLOADER中断向量重映射问题?

[复制链接]

该用户从未签到

2

主题

3

帖子

0

注册会员

Rank: 2

积分
63
最后登录
2019-2-23
发表于 2018-3-22 21:58:43 | 显示全部楼层 |阅读模式
大家好!
        在论坛里下载了KEA128的bootloader,看了之后,有一个疑问???


       在boot跳转app时,使用了下面一段程序进行跳转,
        appStack = *(uint32_t*)APP_IMAGE_START;
        appEntry = *(uint32_t*)(APP_IMAGE_START + 4);
        JumpToUserApplication(*((unsigned long*)APP_IMAGE_START), *((unsigned long*)(APP_IMAGE_START+4)));


        可是整个程序怎么没有看到中断向量重映射的地方???


        对于KEA这款芯片,请问如何把APP前面的向量表映射到BOOT区,或者把APP前面的向量表映射到ARM区???


         __asm("msr msp, r0");
         __asm("msr psp, r0");

         // Jump to PC (r1)
        __asm("mov pc, r1");
        这几句汇编是否有重映射的概念?



        
回复

使用道具 举报

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24903
最后登录
2025-7-22
发表于 2018-3-23 09:33:30 | 显示全部楼层
上面只有跳转,你看看是SCB->VTOR 的设置情况
回复 支持 反对

使用道具 举报

该用户从未签到

2

主题

3

帖子

0

注册会员

Rank: 2

积分
63
最后登录
2019-2-23
 楼主| 发表于 2018-3-23 15:05:49 | 显示全部楼层
小恩GG 发表于 2018-3-23 09:33
上面只有跳转,你看看是SCB->VTOR 的设置情况

感谢你的回复!
没有找到对应的SC->VTOR的配置,请问怎么配置的?有没有对应的参考例程,谢谢!
回复 支持 反对

使用道具 举报

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24903
最后登录
2025-7-22
发表于 2018-3-23 15:27:38 | 显示全部楼层
s05812229 发表于 2018-3-23 15:05
感谢你的回复!
没有找到对应的SC->VTOR的配置,请问怎么配置的?有没有对应的参考例程,谢谢! ...

你可要参考UART Boot Loader Design on Kinetis® E Series - Application Note 的代码,里面有对应的程序
http://www.nxp.com/docs/en/application-note/AN4767.pdf
http://www.nxp.com/docs/en/application-note-software/AN4775SW.zip
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2020-8-5 09:59
  • 签到天数: 80 天

    连续签到: 1 天

    [LV.6]常住居民II

    19

    主题

    173

    帖子

    2

    中级会员

    Rank: 3Rank: 3

    积分
    498
    最后登录
    2020-9-3
    发表于 2018-3-28 10:35:12 | 显示全部楼层
    找到这个函数了吗?在kinetis_sysinit.c文件
    void __init_hardware()
    {
            SCB_VTOR = (uint32_t)__vector_table; /* Set the interrupt vector table position */
           
            /* Disable the Watchdog because it may reset the core before entering main(). */
           
    //        WDOG_TOVAL = 0xE803; // setting timeout value
    //        WDOG_CS2 = WDOG_CS2_CLK_MASK; // setting 1-kHz clock source
    //        WDOG_CS1 = 0x23; // Watchdog disabled,
                                             // Watchdog interrupts are disabled. Watchdog resets are not delayed,
                                             // Updates allowed. Software can modify the watchdog configuration registers within 128 bus clocks after performing the unlock write sequence,
                                             // Watchdog test mode disabled,
                                             // Watchdog disabled in chip debug mode,
                                             // Watchdog enabled in chip wait mode,
                                             // Watchdog enabled in chip stop mode.
    }
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-22 19:53 , Processed in 0.088181 second(s), 23 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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