利用串口升级用户程序

2019-07-30 16:04发布

看到有串口升级用户程序时有将中断向量表映射出去,而bl程序中也没有用中断  这样映射有必要吗?求大神指导。
    ASEG
    ORG 0xFC00  ;place at the bottom of Segment 1

Int_Priority_0: mov.w  &0xFBE0, PC
Int_Priority_1: mov.w  &0xFBE2, PC
Int_Priority_2: mov.w  &0xFBE4, PC
Int_Priority_3: mov.w  &0xFBE6, PC
Int_Priority_4: mov.w  &0xFBE8, PC
Int_Priority_5: mov.w  &0xFBEA, PC
Int_Priority_6: mov.w  &0xFBEC, PC
Int_Priority_7: mov.w  &0xFBEE, PC
Int_Priority_8: mov.w  &0xFBF0, PC
Int_Priority_9: mov.w  &0xFBF2, PC
Int_Priority_A: mov.w  &0xFBF4, PC
Int_Priority_B: mov.w  &0xFBF6, PC
Int_Priority_C: mov.w  &0xFBF8, PC
Int_Priority_D: mov.w  &0xFBFA, PC
Int_Priority_E: mov.w  &0xFBFC, PC
User_Reset:     mov.w  &0xFBFE, PC

       ASEGN INTVEC: CODE, 0xFFE0

      DW  Int_Priority_0  ;FFE0
      DW  Int_Priority_1  ;FFE2
      DW  Int_Priority_2  ;FFE4
      DW  Int_Priority_3  ;FFE6
      DW  Int_Priority_4  ;FFE8
      DW  Int_Priority_5  ;FFEA
      DW  Int_Priority_6  ;FFEC
      DW  Int_Priority_7  ;FFEE
      DW  Int_Priority_8  ;FFF0
      DW  Int_Priority_9  ;FFF2
      DW  Int_Priority_A  ;FFF4
      DW  Int_Priority_B  ;FFF6
      DW  Int_Priority_C  ;FFF8
      DW  Int_Priority_D  ;FFFA
      DW  Int_Priority_E  ;FFFC

      ASEGN RESET: CODE, 0xFFFE
      DW  Reset
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
dirtwillfly
1楼-- · 2019-07-30 21:11
没必要映射出去的。当然,这个也要看你的mcu的flash分配情况
happyjing
2楼-- · 2019-07-31 00:17
dirtwillfly 发表于 2015-3-16 17:52
没必要映射出去的。当然,这个也要看你的mcu的flash分配情况

谢谢
dirtwillfly
3楼-- · 2019-07-31 02:44
本帖最后由 dirtwillfly 于 2015-3-16 21:03 编辑
happyjing 发表于 2015-3-16 20:54
谢谢

这里有个用串口升级详细的介绍:http://www.21ic.com/app/mcu/201111/96887_2.htm
使用的映射中断向量表。一般都是这样用。

说真的,如果不映射中断向量表不知道能否正确操作,我没实验过。
但没查到资料说不映射,就不能成功
dirtwillfly
4楼-- · 2019-07-31 06:37
好像也有人使用跳转指令来完成串口升级
happyjing
5楼-- · 2019-07-31 10:34
 精彩回答 2  元偷偷看……
dirtwillfly
6楼-- · 2019-07-31 16:14
happyjing 发表于 2015-3-18 08:24
感觉在主程序中放一个MOV.W #MONITOR_START, PC
在bl程序中放一个MOV.W #UMEM_START, PC
应该可以实现来 ...

一般不用自己写的。有些串口调试软件可以利用

一周热门 更多>