请选择 进入手机版 | 继续访问电脑版
查看: 37|回复: 3

[求助] LPC4337程序升级

[复制链接]

该用户从未签到

2

主题

3

帖子

0

金豆

新手上路

Rank: 1

积分
18
最后登录
2019-9-17
发表于 2019-9-9 22:37:47 | 显示全部楼层 |阅读模式
无所不能的大神们,
  最近使用LPC4337单片机,想写一个boot程序。发现最后在程序跳转时会出错。具体如下,
我利用boot程序将应用程序搬移到0x10000000 - 0x10008000区间,然后进行跳转操作
(((void)(*)(void))(0x10000000 + 4))();
发现程序会跑飞,参考相关代码后,将其改成
(((void)(*)(void))(0x10000000 + 129))();
运行OK。那么问题来了,
从启动代码分析,其复位向量所在的位置就应该为 0x10000004 所在的位置,为甚么执行该操作不成功,而要执行
(0x10000000 + 129)呢??

求大神赐教,如果有相应的demo更好不过。。



                                      谢谢谢谢!!!

我知道答案 目前已有3人回答
回复

使用道具 举报

  • TA的每日心情
    擦汗
    12 小时前
  • 签到天数: 50 天

    [LV.5]常住居民I

    1

    主题

    83

    帖子

    0

    金豆

    中级会员

    Rank: 3Rank: 3

    积分
    298
    最后登录
    2019-9-20
    发表于 2019-9-10 10:42:49 | 显示全部楼层
    1. typedef void (*USER_ENTRY_PFN)(void);

    2. static void RunApp(void)
    3. {
    4.   
    5.         SYSTICK_IntCmd(DISABLE);

    6.         __disable_irq();

    7.         /* set sp */
    8.         __set_MSP(*(uint32_t *)APP_ADDR);

    9.         /* set pc and goto pc */
    10.         user_entry = (USER_ENTRY_PFN) *((uint32_t*)(APP_ADDR + 4));

    11.         /*程序跳转到 实际运行程序 */
    12.         user_entry();
    13. }
    复制代码


    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-9-9 19:33
  • 签到天数: 777 天

    [LV.10]以坛为家III

    58

    主题

    4773

    帖子

    64

    金豆

    金牌会员

    Rank: 6Rank: 6

    积分
    4809
    最后登录
    2019-9-20
    发表于 2019-9-10 10:59:42 | 显示全部楼层
    参考这个

    LPC4337BootLoaderRev0.0..zip

    8.52 MB, 下载次数: 4, 下载积分: 威望 1

    开心
    回复

    使用道具 举报

    该用户从未签到

    2

    主题

    3

    帖子

    0

    金豆

    新手上路

    Rank: 1

    积分
    18
    最后登录
    2019-9-17
     楼主| 发表于 2019-9-11 21:50:13 | 显示全部楼层
    感谢,感谢,完美解决
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

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

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

    GMT+8, 2019-9-20 22:51 , Processed in 0.108103 second(s), 18 queries , MemCache On.

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

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