5837|17

67

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

IAP搞不定,请教大家 [复制链接]

IAP 程序使用例程中自带的,只修改了按键对应的端口。

用户程序已经把xcl里的 Vector Table 和 ROM Start 地址都改成了0x08002000,
stm32f10x_nvic.h文件里对于Vector Table的定义也做了修改 :

#define NVIC_VectTab_FLASH           ((u32)0x08002000)

把 IAP 程序通过 H-JTAG 下载进去之后,执行,到这一步,如下图,就没反应了,过一会儿弹出一个对话框:远程系统没有响应,那个文件发送窗口也随之自动关闭了。是我哪里设置的不对吗?请教大家。

此帖出自stm32/stm8论坛

最新回复

                                 lut1lut,好同志!   详情 回复 发表于 2009-5-7 12:36
点赞 关注
 

回复
举报

98

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

像是没有解除写保护之类的

                                 你一点点地设置断点,看看哪里出的问题。
此帖出自stm32/stm8论坛
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

请问你下面的内容是你自己改的么?

"stm32f10x_nvic.h文件里对于Vector Table的定义也做了修改 :
#define NVIC_VectTab_FLASH           ((u32)0x08002000)"

请你改回到
#define NVIC_VectTab_FLASH           ((u32)0x08000000)
此帖出自stm32/stm8论坛
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

4
 

回 ST_RAM

                                 改回去是什么意思?用户程序的中断向量表不是应该从0x08002000 开始吗?
此帖出自stm32/stm8论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

5
 

本质一样的咯

在NVIC_Configuration()这个函数中:

若是
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);   

#define NVIC_VectTab_FLASH           ((u32)0x08002000)

若是
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x2000);  
则是
#define NVIC_VectTab_FLASH           ((u32)0x08000000)


此帖出自stm32/stm8论坛
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

6
 

这个我清楚

                                 lut1lut 你的意思我明白,但是我不明白 ST_RAM 的意思。
此帖出自stm32/stm8论坛
 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

7
 

请搜索我以前回答其他网友关于这个问题的帖子

                                 里面有详细的讲解。
此帖出自stm32/stm8论坛
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

8
 

回 ST_RAM

之前都有几个人问过类似我这样的问题,一直没有人指点。那个说明文档也看了不是一两遍了,就是找不着问题。ST_RAM 如果知道,麻烦指点。

这有一个:https://bbs.eeworld.com.cn/club/bbs/list.asp?boardid=49&t=3288450&tp=iap%u5347%u7EA7%u5931%u8D25
此帖出自stm32/stm8论坛
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

9
 

晕,呵呵

https://bbs.eeworld.com.cn/club/bbs/list.asp?boardid=49&t=3288450&tp=iap%u5347%u7EA7%u5931%u8D25
这个事我问的问题,一直没有解决?
此帖出自stm32/stm8论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

10
 

missyou198

                                 楼上问题解决了吗?
此帖出自stm32/stm8论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

11
 

没有

                                 很遗憾,到现在也没有解决
此帖出自stm32/stm8论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

12
 

调试过没有

alz26 & missyou198 :

你们有没有在代码中设置断点,能够把你们所说的“文件发送窗口也随之自动关闭”这个现象给定位一下,代码走到哪一步出现的这个现象咯。

此帖出自stm32/stm8论坛
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

13
 

多谢 lut1lut

                                 真是见鬼了,今天又试了几遍,居然能下载了,哈哈!
此帖出自stm32/stm8论坛
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

14
 

不好的时候用AccessPort看看

                                 串口上跑了什么数据死掉了。
此帖出自stm32/stm8论坛
 
 
 

回复

96

帖子

0

TA的资源

一粒金砂(初级)

15
 

找着问题了

不好意思,改来该去都忘了改了什么了。

记得以前调试的时候就有堆栈错误的提示,以为是别的问题,没当回事,
今天灵光一现把堆栈 CSTACK 大小改了一下,默认的是 0x400,我把它改成了 0x800,
就可以下载了。

另外又明白点东西,用户程序中 main.c 中的 NVIC_SetVectorTable();
以及 stm32f10x_nvic.h 文件中的 #define NVIC_VectTab_FLASH 
二者只需要修改其中任一个就可以了。即要么在 main.c 中的 NVIC_SetVectorTable
函数中定义偏移量,要么在 stm32f10x_nvic.h 文件中直接定义向量表地址。
同时需要把xcl里的 Vector Table 和 ROM Start 地址都改成 0x08002000。
此帖出自stm32/stm8论坛
 
 
 

回复

57

帖子

0

TA的资源

一粒金砂(初级)

16
 

堆栈CSTACK 大小应该是0x800

在ST的例程里,CSTACK的大小为0x800。
可能有些用户在使用时没有将例程里的的ICF文件一并拿来用。

为什么是0x800?

因为IAR软件将函数中的临时变量放在堆栈区,如果某个函数中的变量(例如:数组)特别大,设置堆栈的空间不够,系统就会出错。

在本例程ymodem.c中的s32 Ymodem_Receive (u8 *buf)函数里使用的变量占用的空间达到1056个字节(0x420),超出堆栈的空间(堆栈的大小为0x400)。
此帖出自stm32/stm8论坛
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

17
 

终于真相大白啦

正如16楼ST_ARM所说,堆栈出错了,跳到了HardFaultException()。这个ISR处理是个while(1)的死循环。

PC等了半天没有数据响应,于是取消了传输,自动关闭窗口。

alz26 & missyou198 : 不要再遗憾了哦。
此帖出自stm32/stm8论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

18
 

多谢 lut1lut

                                 lut1lut,好同志!
此帖出自stm32/stm8论坛
 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表