ISP所下载程序不可以用中断?

[复制链接]
6549|22
 楼主| lbzzyh 发表于 2008-4-1 11:22 | 显示全部楼层 |阅读模式
是么?
郁闷!
香水城 发表于 2008-4-1 11:27 | 显示全部楼层

ISP所下载程序当然可以用中断,否则ISP还有什么意义

你下载的是什么程序?
 楼主| lbzzyh 发表于 2008-4-1 12:31 | 显示全部楼层

自己做的程序啊

带串口中断
 楼主| lbzzyh 发表于 2008-4-1 12:32 | 显示全部楼层

用JTAG下载没问题


用ISP就有问题
香水城 发表于 2008-4-1 13:20 | 显示全部楼层

请问JTAG和ISP下载的是同一个具有相同后缀的文件吗?

 楼主| lbzzyh 发表于 2008-4-3 10:42 | 显示全部楼层

是的

是的
 楼主| lbzzyh 发表于 2008-4-3 10:46 | 显示全部楼层

是的

是不是因为ISP程序本身占了0x8000000地址,而从0x8000000开始存放中断向量。
应用程序是从0x8002000开始,它的中断向量存在0x8002000,所以即使产生中断也跳不到应用程序的中断程序。
我这么理解对么?
香水城 发表于 2008-4-3 11:04 | 显示全部楼层

请说明使用的是什么芯片,什么程序?什么工具?

ST有很多产品。
 楼主| lbzzyh 发表于 2008-4-3 11:44 | 显示全部楼层

STM32F101VBT6

STM32F101VBT6
香水城 发表于 2008-4-3 12:00 | 显示全部楼层

什么程序?什么工具?

12分 发表于 2008-4-5 20:48 | 显示全部楼层

????

jackbao 发表于 2008-4-7 10:16 | 显示全部楼层

这个问题要顶

我觉得程序就是简单的带有一个中断的程序,工具iar  
  我也遇到过  就是下载后中断程序不再执行
armtft 发表于 2008-4-7 10:27 | 显示全部楼层

唉,给你一个例子吧 === ISP 下载后,串口可中断

  USART_StructInit(&USART_InitStructure);
  USART_Init(USART1, &USART_InitStructure);
  USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
  /* Enable the USART1 */
  USART_Cmd(USART1, ENABLE);

USART1_IRQHandler
里面写程序,就可以了!


armtft 发表于 2008-4-7 10:49 | 显示全部楼层

to: lbzzyh 问题所在!!!

lbzzyh 发表于 2008-4-1 12:32 ST MCU ←返回版面    

4楼: 用JTAG下载没问题 


用ISP就有问题
 
 


======  根本就是 两码事!
你非要混为一谈............  郁闷一下:

-DROMSTART=0x8002000
 才能  ISP


-DROMSTART=0x8000000
就可以 JTAG



基地址,设置成 ROM地址,就好了。


呵呵,上一贴 没看仔细。
不好以西。 ^_^

这个帖子,应该解决了你的问题。

jackbao 发表于 2008-4-7 13:55 | 显示全部楼层

????????????

armtft 发表于 2008-4-7 14:57 | 显示全部楼层

香水城 开始迷糊么 呵呵 ISP & IAP

所谓 楼主 所说的  ISP
======  其实就是  先通过 JTAG,把IAP程序烧入FLASH 。正常开机执行。

IAP程序 通过串口, 把“ISP程序”烧入FLASH后边。


“ISP程序” 没有正常执行。
与BOOT 0 1 设置 无关。



“ISP程序” 由于 基地址 并不是 8000,所以 需要更改
-DROMSTART=0x8002000


==============================ST没有提供 上述完整 例子! 似乎仅提供了IAP部分,ISP部分及相应设置,没提供吧? ====
呵呵,是这样吧?



香水城 发表于 2008-4-7 17:39 | 显示全部楼层

又是名词惹的祸:请楼主说明一下你的所谓ISP是一个什么程

我的理解是:ISP = In System Programming   IAP = In Application Programming

在系统中编程(ISP)表示芯片中的程序是在芯片焊到电路板上之后烧进去的,这是为了区别于先烧录好芯片中的程序再把芯片焊到电路板的做法。

在应用中编程(IAP)表示用户程序运行过程中,再次烧录或更新芯片中的程序;所谓用户程序是指所有由用户自己写到芯片中的程序,或所有在0x0800 0000开始的Flash区域中的程序。


不知道楼主到底说的是哪一种操作?
wuxi_stl 发表于 2008-4-7 19:30 | 显示全部楼层
 楼主| lbzzyh 发表于 2008-4-9 13:47 | 显示全部楼层

找到问题了

地址在0x8000000的程序与在0x8002000的程序不完全一样
 楼主| lbzzyh 发表于 2008-4-9 13:49 | 显示全部楼层

程序不兼容

用JTAG下载能够运行的程序 通过IAP下载是不能够运行的。
同理反之,不过我测试的几个程序竟然有一个可以运行,不太理解。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

23

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部