查看: 3214|回复: 8

[其他] 求做BootLoader的大神指点下!感激不尽

[复制链接]

该用户从未签到

5

主题

16

帖子

0

注册会员

Rank: 2

积分
77
最后登录
2018-1-14
发表于 2017-5-11 17:25:41 | 显示全部楼层 |阅读模式
         我使用的芯片都是HCS12(X)系列的芯片,有MC9S12DP512、MC9S12P64、MC9S12XET256,其中P64芯片最熟悉。         使用BootLoader导入新的应用程序时,总会遇到中断向量表的问题,据我了解,可以擦除芯片默认的中断向量表,或者是开辟新的中断向量表,现在我这2方面都遇到了问题,希望有大神能够指导下。
1、若擦除芯片原来的中断向量表,这部分区域应该是保护状态的,我怎么都擦除不成功。我以前采用Block eraser的方式擦除成功过,但block eraser之后BootLoader也不运行了(我的BootLoader是放在RAM里运行的),现在觉得block eraser这种大规模的擦除不好,还是觉得采用sector eraser的方式。用P64的芯片我设置了FLASH保护寄存器相关标志位的,如下所示:
             FPROT_FPOPEN=1;
             FPROT_FPHDIS=1;
             FPROT_FPLDIS=1; //设置FLASH无保护区域

但仍然擦除不了中断向量表所在的那个sector(0xFDFF-0xFFFF,512字节)。是还需要设置其他寄存器吗?

2、重新开辟中断向量表我没做过,谁能告诉我需要看芯片手册的哪一部分?
我知道答案 目前已有8人回答
回复

使用道具 举报

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

    连续签到: 1 天

    [LV.4]偶尔看看III

    13

    主题

    82

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    251
    最后登录
    1970-1-1
    发表于 2017-5-12 09:12:56 | 显示全部楼层
    我们做的bootloader程序是没有使用到中断的,所以bootloader和application是共用同一个中断向量表的。但是复位执行地址0xFFFE存放的是bootloader的入口地址。
    中断向量表重映射的话需要中断向量表的偏移操作吧,可以参考stm32的http://www.openedv.com/posts/list/11494.htm
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5

    主题

    16

    帖子

    0

    注册会员

    Rank: 2

    积分
    77
    最后登录
    2018-1-14
     楼主| 发表于 2017-5-23 11:22:06 | 显示全部楼层
    fj1161 发表于 2017-5-12 09:12
    我们做的bootloader程序是没有使用到中断的,所以bootloader和application是共用同一个中断向量表的。但是 ...

    多谢,我找到关键所在了。看芯片手册的S12SINTV1模块,找IVBR寄存器
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.4]偶尔看看III

    13

    主题

    82

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    251
    最后登录
    1970-1-1
    发表于 2017-5-23 13:49:50 | 显示全部楼层
    武汉-winds 发表于 2017-5-23 11:22
    多谢,我找到关键所在了。看芯片手册的S12SINTV1模块,找IVBR寄存器

    问下,您的中断向量表是放在flash中的还是ram中的呢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5

    主题

    16

    帖子

    0

    注册会员

    Rank: 2

    积分
    77
    最后登录
    2018-1-14
     楼主| 发表于 2017-5-23 20:18:34 | 显示全部楼层
    fj1161 发表于 2017-5-23 13:49
    问下,您的中断向量表是放在flash中的还是ram中的呢

    我还没做到这里,后面会做的,但应该是整体移位,不会放在RAM里,等我完全做完了再在这个帖子里回复你吧
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.4]偶尔看看III

    13

    主题

    82

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    251
    最后登录
    1970-1-1
    发表于 2017-5-24 09:47:32 | 显示全部楼层
    武汉-winds 发表于 2017-5-23 20:18
    我还没做到这里,后面会做的,但应该是整体移位,不会放在RAM里,等我完全做完了再在这个帖子里回复你吧 ...

    好的,我遇到个问题,就是boot跳转到app的时候,已进入到main函数就死了。顺便问下,boot和app的入口函数名可以一样吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5

    主题

    16

    帖子

    0

    注册会员

    Rank: 2

    积分
    77
    最后登录
    2018-1-14
     楼主| 发表于 2017-11-18 09:32:23 | 显示全部楼层
    fj1161 发表于 2017-5-24 09:47
    好的,我遇到个问题,就是boot跳转到app的时候,已进入到main函数就死了。顺便问下,boot和app的入口函数 ...

    boot的入口地址是S19文件里倒数第2行里显示的复位中断向量表里的地址
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5

    主题

    16

    帖子

    0

    注册会员

    Rank: 2

    积分
    77
    最后登录
    2018-1-14
     楼主| 发表于 2017-11-18 09:32:25 | 显示全部楼层
    fj1161 发表于 2017-5-24 09:47
    好的,我遇到个问题,就是boot跳转到app的时候,已进入到main函数就死了。顺便问下,boot和app的入口函数 ...

    boot的入口地址是S19文件里倒数第2行里显示的复位中断向量表里的地址
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    4

    帖子

    0

    新手上路

    Rank: 1

    积分
    19
    最后登录
    2017-11-24
    发表于 2017-11-22 15:20:03 | 显示全部楼层
    楼主的问题解决了吗,我现在在BOOT中用can中断没问题,但是一旦加入定时器中断,接收的数据没有问题,跳到APP中,却不能正常执行
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

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

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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