5267|17

3238

帖子

5

TA的资源

五彩晶圆(中级)

楼主
 

有关msp30f149bootloader若干疑问 [复制链接]

由于最新项目需要使用到了MSP430F149芯片,需要弄一个远程升级功能,对于bootloader有几个疑问,希望了解的朋友解答下:


1:对于串口接受到的ASCII格式字符,请问下flash写时是不是仅仅根据@地址来写入数据呢?比如如下的app.txt





@1100

31 40 00 0A 3C 40 00 02 3D 40 04 00 B0 12 80 11

B0 12 18 11 B0 12 9C 11 0A 12 0A 43 B2 40 80 5A

20 01 32 C2 03 43 B0 12 50 11 32 D2 F2 D0 03 00

36 00 F2 F0 FC 00 35 00 0A 43 01 3C 1A 53 3A 90

50 C3 FC 2B 0A 43 3A 90 50 C3 F3 2F 1A 53 FB 3F

0F 43 F2 C0 80 00 57 00 F2 40 88 00 58 00 E2 C3

02 00 3F 40 FF 00 01 3C 3F 53 0F 93 FD 23 E2 B3

02 00 F5 2F E2 C3 02 00 F2 40 88 00 58 00 30 41

0F 4C 0F 5D 03 3C CC 43 00 00 1C 53 0C 9F FB 23

30 41 92 53 00 02 82 63 02 02 00 13 30 40 A0 11

30 40 A4 11 FF 3F

@F7EC

92 11

@F7FE

00 11

q




我接受到@字符时,就将flash地址弄成1100一直将31等数据写到FF 3F,在遇到@F7EC时,直接切换地址,写0x1192 ,在遇到@F7FE时写入0x1100,遇到q,直接停止flash写操作,不知道我理解的对否?



第二个问题是对于app的中断向量二次映射,请问下我仅仅在app xcl文件里面修改下地址就行嘛?比如如下:


//-Z(CODE)INTVEC=FFE0-FFFF

//-Z(CODE)RESET=FFFE-FFFF

-Z(CODE)INTVEC=F7E0-F7FF //作为用户自己虚拟的中断向量地址与bootloader中相对应

-Z(CODE)RESET=F7FE-F7FF  //用户自己虚拟的程序复位地址


我看有些bootloader代码里面还加入了下面的中断向量映射代码:


/中断向量表重映射

//振荡器故障

#pragma vector=NMI_VECTOR

__interrupt void NMI_ISR(void)

{

    asm("br &0xF7FC");

}

//TIMER1_A3

#pragma vector=TIMERB0_VECTOR

__interrupt void TIMER1A0_ISR(void)

{

    asm("br &0xF7FA");

}

#pragma vector=TIMERB1_VECTOR

__interrupt void TIMER1A1_ISR(void)

{

    asm("br &0xF7F8");

}

#pragma vector=COMPARATORA_VECTOR

__interrupt void COMPARATORA_ISR(void)

{

    asm("br &0xF7F6");

}

#pragma vector=WDT_VECTOR

__interrupt void WDT_ISR(void)

{

    asm("br &0xF7F4");

}









最新回复

现在问题是,bootloader里也要用到这个串口中断,那么究竟是执行跳转指令(去执行app的串口中断)还是执行bootloader的串口中断程序,怎么判断呢,是不是可以用一个变量来选择?  详情 回复 发表于 2016-4-27 22:15
 
点赞 关注(2)
个人签名淘宝:https://viiot.taobao.com/Q群243090717
多年专业物联网行业经验,个人承接各类物联网外包项目

回复
举报

1976

帖子

1

TA的资源

五彩晶圆(初级)

沙发
 
对bootloda不是很了解,但是为什么要将中断向量重新映射呢?

点评

因为中断向量就是一套,所以需要重新映射  详情 回复 发表于 2015-6-13 09:42
 
 

回复

3238

帖子

5

TA的资源

五彩晶圆(中级)

板凳
 
bobde163 发表于 2015-6-6 23:32
对bootloda不是很了解,但是为什么要将中断向量重新映射呢?

因为中断向量就是一套,所以需要重新映射
 
个人签名淘宝:https://viiot.taobao.com/Q群243090717
多年专业物联网行业经验,个人承接各类物联网外包项目
 
 

回复

3238

帖子

5

TA的资源

五彩晶圆(中级)

4
 
自我结贴,boot已经成功,我上面的猜测经过验证都是正确的。
 
个人签名淘宝:https://viiot.taobao.com/Q群243090717
多年专业物联网行业经验,个人承接各类物联网外包项目
 
 

回复

136

帖子

3

TA的资源

一粒金砂(中级)

5
 
最近也在研究这个149的升级问题,楼主可以说的再详细些吗,或者可以把升级文件给我发一份吗han20140806@163.com

点评

这个需要你自己去弄,其实很简单,把几个核心的问题想明白了,就可以搞定。其实你把txt文件烧录到flash后,将PC跳转到APP虚拟的复位中断地址,就成功了。  详情 回复 发表于 2015-6-13 11:16
 
 
 

回复

3238

帖子

5

TA的资源

五彩晶圆(中级)

6
 
hanwenli123 发表于 2015-6-13 10:33
最近也在研究这个149的升级问题,楼主可以说的再详细些吗,或者可以把升级文件给我发一份吗

这个需要你自己去弄,其实很简单,把几个核心的问题想明白了,就可以搞定。其实你把txt文件烧录到flash后,将PC跳转到APP虚拟的复位中断地址,就成功了。
 
个人签名淘宝:https://viiot.taobao.com/Q群243090717
多年专业物联网行业经验,个人承接各类物联网外包项目
 
 

回复

136

帖子

3

TA的资源

一粒金砂(中级)

7
 
第一个就不明白flash地址的问题,不知道怎么确定地址,怎么修改.XCL文件

点评

我上面已经解答过了  详情 回复 发表于 2016-2-26 21:11
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

8
 
你好,关于bootloader有个疑问,你的中断重映射是一开始就有的吗,如果不用串口中断接受更新,应该是判断寄存器从缓存拿数据来更新吧,那就会导致每次串口数据发送过来都会进入串口中断从而导致跳转到你指定的那个app的中断向量地址里面,我的程序每次跳转过去之后就会复位,导致我在主程序接受更新无法继续进行

点评

你是不是地址映射哪里搞错了呢?  详情 回复 发表于 2016-2-26 21:14
建议重新开贴提问!  详情 回复 发表于 2015-9-23 10:33
 
 
 

回复

6066

帖子

90

TA的资源

裸片初长成(初级)

9
 
muluoyesui 发表于 2015-9-23 10:26
你好,关于bootloader有个疑问,你的中断重映射是一开始就有的吗,如果不用串口中断接受更新,应该是判断寄 ...

建议重新开贴提问!
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

10
 
你好,最近在做430串口程序升级,能把你的程序发给我一份吗,不胜感激,531334045@qq.com
 
 
 

回复

3238

帖子

5

TA的资源

五彩晶圆(中级)

11
 
hanwenli123 发表于 2015-6-13 11:36
第一个就不明白flash地址的问题,不知道怎么确定地址,怎么修改.XCL文件

我上面已经解答过了
 
个人签名淘宝:https://viiot.taobao.com/Q群243090717
多年专业物联网行业经验,个人承接各类物联网外包项目
 
 

回复

3238

帖子

5

TA的资源

五彩晶圆(中级)

12
 
muluoyesui 发表于 2015-9-23 10:26
你好,关于bootloader有个疑问,你的中断重映射是一开始就有的吗,如果不用串口中断接受更新,应该是判断寄 ...

你是不是地址映射哪里搞错了呢?
 
个人签名淘宝:https://viiot.taobao.com/Q群243090717
多年专业物联网行业经验,个人承接各类物联网外包项目
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

13
 
请问楼主,如果要复用中断向量怎么办呢,因为bootloader里也需要用到中断。

点评

我没试过  详情 回复 发表于 2016-4-27 17:32
 
 
 

回复

3238

帖子

5

TA的资源

五彩晶圆(中级)

14
 
anring 发表于 2016-4-27 15:56
请问楼主,如果要复用中断向量怎么办呢,因为bootloader里也需要用到中断。

我没试过
 
个人签名淘宝:https://viiot.taobao.com/Q群243090717
多年专业物联网行业经验,个人承接各类物联网外包项目
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

15
 
请问楼主,将PC跳转到APP虚拟的复位中断地址后,那我bootloader里面自身的中断怎么进去呢?

点评

物理中断向量地址就一套,每次来了中断都会到物理中断向量地址,再通过你的跳转指令到你虚拟的中断向量地址里面  详情 回复 发表于 2016-4-27 21:12
 
 
 

回复

3238

帖子

5

TA的资源

五彩晶圆(中级)

16
 
anring 发表于 2016-4-27 20:58
请问楼主,将PC跳转到APP虚拟的复位中断地址后,那我bootloader里面自身的中断怎么进去呢?

物理中断向量地址就一套,每次来了中断都会到物理中断向量地址,再通过你的跳转指令到你虚拟的中断向量地址里面

点评

现在问题是,bootloader里也要用到这个串口中断,那么究竟是执行跳转指令(去执行app的串口中断)还是执行bootloader的串口中断程序,怎么判断呢,是不是可以用一个变量来选择?  详情 回复 发表于 2016-4-27 22:15
 
个人签名淘宝:https://viiot.taobao.com/Q群243090717
多年专业物联网行业经验,个人承接各类物联网外包项目
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

17
 
wateras1 发表于 2016-4-27 21:12
物理中断向量地址就一套,每次来了中断都会到物理中断向量地址,再通过你的跳转指令到你虚拟的中断向量地 ...

现在问题是,bootloader里也要用到这个串口中断,那么究竟是执行跳转指令(去执行app的串口中断)还是执行bootloader的串口中断程序,怎么判断呢,是不是可以用一个变量来选择?

点评

串口最好用轮训方式接受数据,我没有用中断。  详情 回复 发表于 2016-4-27 22:57
 
 
 

回复

3238

帖子

5

TA的资源

五彩晶圆(中级)

18
 
anring 发表于 2016-4-27 22:15
现在问题是,bootloader里也要用到这个串口中断,那么究竟是执行跳转指令(去执行app的串口中断)还是执 ...

串口最好用轮训方式接受数据,我没有用中断。
 
个人签名淘宝:https://viiot.taobao.com/Q群243090717
多年专业物联网行业经验,个人承接各类物联网外包项目
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表