OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4496|回复: 10

iap实验遇到问题

[复制链接]

4

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2015-11-11
在线时间
21 小时
发表于 2015-11-12 16:49:02 | 显示全部楼层 |阅读模式
5金钱
原子哥你好,我在做IAP实验时遇到一个很奇怪的现象,两块板子都是stm32f103zet6的芯片,开发板能下载bootloader,通过iap更新用户程序,但另一块板子却不可以,而且(*(vu32*)(FLASH_APP1_ADDR+4))得到的是0xffffffff,不知道是怎么回事

最佳答案

热爱电子 热爱生活
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2015-11-11
在线时间
21 小时
 楼主| 发表于 2015-11-12 16:49:03 | 显示全部楼层
颜渊 发表于 2016-2-19 15:26
你的问题解决了吗?可否说下经验

已经解决了
热爱电子 热爱生活
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-11-13 21:05:53 | 显示全部楼层
再换个板子试试。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

4

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2015-11-11
在线时间
21 小时
 楼主| 发表于 2015-11-16 20:10:13 | 显示全部楼层
感谢原子大哥的回复,我后来完全按照战舰的例子改了一遍,现在可以运行,但是不知道什么原因,我仅仅是例化添加了另外一个串口,printf("%#x\r\n",(*(vu32*)(0X20001000+4))); 得到的却是0x31080106,另外printf("%#x\r\n",(*(vu32*)(FLASH_APP1_ADDR+4)));执行后打印的是0xffffffff,下面是源文件,原子哥百忙之中帮我看看吗

主控板.zip

2.89 MB, 下载次数: 82

热爱电子 热爱生活
回复

使用道具 举报

4

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2015-11-11
在线时间
21 小时
 楼主| 发表于 2015-11-16 20:12:33 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
其他文件都没变,就是在usart.c文件里面添加了串口3的定义,打印也用串口3打印,然后在主函数里面调用了,程序就完全运行错误,不明白是什么原因
热爱电子 热爱生活
回复

使用道具 举报

4

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2015-11-11
在线时间
21 小时
 楼主| 发表于 2015-11-16 20:23:01 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
我很奇怪的是我只要稍微改动程序,printf("%#x\r\n",(*(vu32*)(0X20001000+4))); 打印出来的数据就不是0x08xxxxxx,不知道是什么原因导致的
热爱电子 热爱生活
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-11-17 23:11:47 | 显示全部楼层
回复【5楼】ttttttttt:
---------------------------------
先赋值给变量,再打印变量值。
方便找问题。
要学会见招拆招啊。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

4

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2015-11-11
在线时间
21 小时
 楼主| 发表于 2015-11-18 10:01:14 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
原子哥,我找到了问题了,就是在bootloader里面定义另一个串口没问题,但只要使用另一个串口向电脑发送消息或打印,printf("%#x\r\n",(*(vu32*)(0X20001000+4)))还是对的,得到的printf("%#x\r\n",(*(vu32*)(FLASH_APP1_ADDR+4)))就不对,而且得到的数据都是0x8035486和0x8035486?,用同一个接收串口打印一点问题也没有,意思就是bootloader里面不能同时使用两个串口,很奇怪的问题
热爱电子 热爱生活
回复

使用道具 举报

4

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2015-11-11
在线时间
21 小时
 楼主| 发表于 2015-11-18 10:05:45 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
你在开发板上能试试吗,不明白为什么会有这样的问题,折腾了2天还是一样,bootloader里面同时使用2个串口得到",(*(vu32*)(0X20001000+4)))和",(*(vu32*)(FLASH_APP1_ADDR+4)))数据很像,但后面的数据比前面多一个问号,也就是跳转语句根本没有执行
热爱电子 热爱生活
回复

使用道具 举报

50

主题

134

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
358
金钱
358
注册时间
2014-5-21
在线时间
84 小时
发表于 2016-2-19 15:26:36 | 显示全部楼层
ttttttttt 发表于 2015-11-18 10:05
回复【6楼】正点原子:
---------------------------------
你在开发板上能试试吗,不明白为什么会有这样的 ...

你的问题解决了吗?可否说下经验
回复

使用道具 举报

4

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2015-11-11
在线时间
21 小时
 楼主| 发表于 2016-2-22 09:22:24 | 显示全部楼层
颜渊 发表于 2016-2-19 15:26
你的问题解决了吗?可否说下经验

已经解决了,我没有完全按原子的范例来,我将数组地址为0X20001000那句去掉就好了,那句可以不用管
热爱电子 热爱生活
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-20 22:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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