查看: 6307|回复: 12

[S12] 关于MC9S12XE100的bootloader官方例程的疑惑,求解~~~

[复制链接]
  • TA的每日心情
    郁闷
    2016-10-20 09:42
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    3

    主题

    243

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    218
    最后登录
    2019-3-14
    发表于 2016-7-4 10:54:10 | 显示全部楼层 |阅读模式
    本帖最后由 萌-图 于 2016-7-6 17:53 编辑

    关于MC9S12XE100的bootloader官方例程的疑惑,求解~~~

      在官网上下载了这个例程后,做了一些调试,有一些不懂得地方,希望大家指点一下,谢谢~~~


      上传了截屏图片和官方例程下载的链接http://www.nxp.com/zh-Hans/produ ... umentation_Tab#nogo  这里下载AN4258。



    在前两张图的中:

      ldd AppResetVect

      cpd #$effe

      beq GoBoot  是我自己注释掉的,原因是按照官方的说明,在程序复位时,应该执行App程序,而不是Boot,如果不注释掉,这里就一直进入Boot程序,所以注释掉了,但我自己不太确定是否这里这么写,别有深意,望各位指点一下。


    第三张图片中:

    VECTOR  0 _BootStart

    VECTOR  1 _BootStart

    VECTOR  2 _BootStart

    这三行都是同时定义了一个函数,而这个函数却是在启动文件里面的函数,在第一张截屏图里可以看到整个函数,也是我上一个问题中修改了的函数。这里的问题是,1、不知道为什么要定义该向量,2、为什么这里三个都同样定义了一个函数。


    file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\975661339\QQ\WinTemp\RichOle\K2EA8Z0I4)0K6~SF988MRTL.png


    我知道答案 目前已有12人回答

    启动文件代码1

    启动文件代码1

    启动文件代码2

    启动文件代码2

    .Prm文件里面关于中断的设置

    .Prm文件里面关于中断的设置
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2016-10-20 09:42
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    3

    主题

    243

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    218
    最后登录
    2019-3-14
     楼主| 发表于 2016-7-4 10:57:40 | 显示全部楼层
    这里是网上找到的关于向量的说明,各位可以参考一下。

    关于向量设置的说明

    关于向量设置的说明
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-2-13 08:29
  • 签到天数: 20 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    531

    主题

    2048

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    210
    最后登录
    2018-8-14
    发表于 2016-7-4 11:04:40 | 显示全部楼层
    帮顶
    签到 签到
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2016-10-20 09:42
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    3

    主题

    243

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    218
    最后登录
    2019-3-14
     楼主| 发表于 2016-7-4 11:08:07 | 显示全部楼层
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2016-10-20 09:42
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    3

    主题

    243

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    218
    最后登录
    2019-3-14
     楼主| 发表于 2016-7-4 14:07:29 | 显示全部楼层
    人工置顶
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2016-10-20 09:42
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    3

    主题

    243

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    218
    最后登录
    2019-3-14
     楼主| 发表于 2016-7-4 15:02:12 | 显示全部楼层
      之前两个问题都解决了,有位大神解答了我的疑惑,这里把原因贴出来,给大家参考:

      第一个问题,上面说的三行,确实是可以注释掉,在注释掉后,才能够实现官方例程上面的启动时判断进入bootloader或者AppResetVect,这里大概是为了方便下载程序的调试,所以才有这段程序的吧,要实现完整的功能,必须注释掉这三行。(如有错误,还请各位指正。)
      第二个问题,那三个中断的发生条件都是复位相关的中断,具体见下图,这三个中断情况下本来就是应该跳入启动程序,判断执行bootloader或者AppResetVect程序。

    中断向量表

    中断向量表
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2016-10-20 09:42
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    3

    主题

    243

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    218
    最后登录
    2019-3-14
     楼主| 发表于 2016-7-6 17:49:19 | 显示全部楼层
    萌-图 发表于 2016-7-4 15:02
    之前两个问题都解决了,有位大神解答了我的疑惑,这里把原因贴出来,给大家参考:

      第一个问题,上面说 ...

    上面有个错误,就是注释掉那三行的说法是错误的,不知道什么原因,现在不注释掉那三行,也能实现功能~~所以,如果调试时没有遇见我调试时的问题的话,那么还是别注释了~~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    8

    帖子

    0

    注册会员

    Rank: 2

    积分
    59
    最后登录
    2016-12-14
    发表于 2016-7-18 08:51:34 | 显示全部楼层
    萌-图 发表于 2016-7-6 17:49
    上面有个错误,就是注释掉那三行的说法是错误的,不知道什么原因,现在不注释掉那三行,也能实现功能~~所 ...

    请问prm文件里的ENTRY—END这块区域怎么理解~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    8

    帖子

    0

    注册会员

    Rank: 2

    积分
    59
    最后登录
    2016-12-14
    发表于 2016-7-21 08:24:33 | 显示全部楼层
    萌-图 发表于 2016-7-6 17:49
    上面有个错误,就是注释掉那三行的说法是错误的,不知道什么原因,现在不注释掉那三行,也能实现功能~~所 ...

    请问里面RAM_CODE_SEG  = READ_ONLY     0xFD00 TO   0xFEFF RELOCATE_TO 0x3D00;的意思是将FD00-FEFF复制到3D00,但是在prm文件里并没有关于3D00-3EFF的说明,为什么说这个区域就是RAM空间~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2016-10-20 09:42
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    3

    主题

    243

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    218
    最后登录
    2019-3-14
     楼主| 发表于 2016-7-26 19:57:06 | 显示全部楼层
    易关建 发表于 2016-7-21 08:24
    请问里面RAM_CODE_SEG  = READ_ONLY     0xFD00 TO   0xFEFF RELOCATE_TO 0x3D00;的意思是将FD00-FEFF复 ...

    我传一个相关说明的附件,你看就明白了
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-22 06:07 , Processed in 0.110103 second(s), 31 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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