OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
楼主: 八度空间

STM32 DFU升级APP程序

  [复制链接]

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2014-10-29 12:53:38 | 显示全部楼层
回复【50楼】microbai:
---------------------------------
我的就是在WIN 7上用的,8没试过
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
正点原子逻辑分析仪DL16劲爆上市
回复 支持 反对

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2014-11-10 22:46:51 | 显示全部楼层
回复【40楼】microbai:
---------------------------------
你这个现象我没法复制啊,我测试都是成功的,奇了怪了
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2014-7-30
在线时间
0 小时
发表于 2014-11-30 23:29:07 | 显示全部楼层
楼主,你用win7是32位,还是64位,我用的是win64位,一般连着点好几次下载就可以了,运气好一次就成功,很奇怪
回复 支持 反对

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2014-12-1 08:23:17 | 显示全部楼层
回复【53楼】zhenonline:
---------------------------------
win7 32bit旗舰版
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

3

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2014-1-17
在线时间
0 小时
发表于 2015-1-12 19:00:44 | 显示全部楼层
楼主,大赞。
我问一句,我dfu驱动一直安装不了事怎么回事儿?

我插上usb,它任何提示都没
回复 支持 反对

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2015-1-13 12:29:43 | 显示全部楼层
回复【55楼】卧虎藏龙:
---------------------------------
你的什么系统???
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2015-1-13 12:31:32 | 显示全部楼层
回复【55楼】卧虎藏龙:
---------------------------------
按住按键进入BOOT后插入USB有反应啵?
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

3

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2014-1-17
在线时间
0 小时
发表于 2015-1-13 13:31:05 | 显示全部楼层
回复【57楼】八度空间:
---------------------------------
已经解决了,非常感谢
回复 支持 反对

使用道具 举报

3

主题

138

帖子

0

精华

初级会员

Rank: 2

积分
195
金钱
195
注册时间
2014-5-12
在线时间
4 小时
发表于 2015-1-13 22:47:40 | 显示全部楼层
虽然没怎么看懂,但是还是佩服楼主的能力,不知道是怎么想到这个点子的?
回复 支持 反对

使用道具 举报

10

主题

40

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
346
金钱
346
注册时间
2013-12-20
在线时间
94 小时
发表于 2015-1-13 23:02:27 | 显示全部楼层
谢谢楼主,标记一下
回复 支持 反对

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2015-1-14 08:05:44 | 显示全部楼层
回复【59楼】伤剑使者:
---------------------------------
移植过来的,其实没啥能力,呵呵
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2015-1-14 08:05:57 | 显示全部楼层
回复【60楼】crossok:
---------------------------------
谢谢光临!!!
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

48

主题

537

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1367
金钱
1367
注册时间
2014-2-13
在线时间
169 小时
发表于 2015-1-14 08:10:42 | 显示全部楼层
标记下。。。。。
回复 支持 反对

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2015-1-14 08:21:05 | 显示全部楼层
回复【63楼】solo:
---------------------------------
哈哈,你也来了,谢谢光临!!!
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

48

主题

537

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1367
金钱
1367
注册时间
2014-2-13
在线时间
169 小时
发表于 2015-1-14 10:55:08 | 显示全部楼层
回复【64楼】八度空间:
---------------------------------
这个必须顶,正准备要做这一块了。
回复 支持 反对

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2015-1-14 12:47:21 | 显示全部楼层
回复【65楼】solo:
---------------------------------
呵呵
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

3

主题

138

帖子

0

精华

初级会员

Rank: 2

积分
195
金钱
195
注册时间
2014-5-12
在线时间
4 小时
发表于 2015-1-14 21:15:55 | 显示全部楼层
回复【66楼】八度空间:
---------------------------------
这个时间缩短了一大半,省了不少事啊,能力还是杠杠的,不过你是怎么看到能用这个点子下载的?
回复 支持 反对

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2015-1-15 08:05:43 | 显示全部楼层
回复【67楼】伤剑使者:
---------------------------------
官网有这么一个例程,刚好看到了,就弄了,呵呵
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

3

主题

138

帖子

0

精华

初级会员

Rank: 2

积分
195
金钱
195
注册时间
2014-5-12
在线时间
4 小时
发表于 2015-1-16 00:31:02 | 显示全部楼层
额额,看来我想学好还是有很多的路要走啊
回复 支持 反对

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2015-1-16 08:06:54 | 显示全部楼层
回复【69楼】伤剑使者:
---------------------------------
呵呵,慢慢来
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2014-12-25
在线时间
0 小时
发表于 2015-1-22 21:16:27 | 显示全部楼层
回复【40楼】microbai:
---------------------------------
请问你的这个“bad state machine in firmware”是怎么解决的?
回复 支持 反对

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2015-1-23 07:53:08 | 显示全部楼层
回复【71楼】eminem1412:
---------------------------------
能截图看下么?
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2014-12-25
在线时间
0 小时
发表于 2015-1-23 08:48:23 | 显示全部楼层



试了好几次都是这样
回复 支持 反对

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2015-1-23 12:24:25 | 显示全部楼层
回复【73楼】eminem1412:
---------------------------------
代码用楼主位的么?
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2014-12-25
在线时间
0 小时
发表于 2015-1-23 12:26:10 | 显示全部楼层
回复【74楼】八度空间:
---------------------------------
IAP是的,APP代码不是的
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2014-12-25
在线时间
0 小时
发表于 2015-1-23 12:27:35 | 显示全部楼层
回复【74楼】八度空间:
---------------------------------
xp 32位机上可以用,不过也要点upgrade好几次才能成功,
win7 64位机上就不行了
回复 支持 反对

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2015-1-23 12:31:09 | 显示全部楼层
回复【76楼】eminem1412:
---------------------------------
驱动是32bit的,用在64bit上没试过,我的是WIN7 32bit的,直接点击一次就可以了
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2014-12-25
在线时间
0 小时
发表于 2015-1-23 23:31:44 | 显示全部楼层
回复【77楼】八度空间:
---------------------------------
好的,谢谢
回复 支持 反对

使用道具 举报

2

主题

12

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
261
金钱
261
注册时间
2013-12-23
在线时间
38 小时
发表于 2015-1-29 08:52:55 | 显示全部楼层
回复【40楼】microbai:
---------------------------------
我的测试结果跟你一样,也是到最后一步的时候,失败了,求解
回复 支持 反对

使用道具 举报

4

主题

106

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
302
金钱
302
注册时间
2015-7-16
在线时间
29 小时
发表于 2015-7-16 13:47:03 | 显示全部楼层
这是什么情况

回复 支持 反对

使用道具 举报

4

主题

106

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
302
金钱
302
注册时间
2015-7-16
在线时间
29 小时
发表于 2015-7-16 15:34:46 | 显示全部楼层
回复【40楼】microbai:
---------------------------------
我现在也是这种情况,大部分情况下只有0%,枚成功过一次,请问你解决了么
回复 支持 反对

使用道具 举报

4

主题

106

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
302
金钱
302
注册时间
2015-7-16
在线时间
29 小时
发表于 2015-7-21 09:46:10 | 显示全部楼层
问题解决了,是MAL_GETSTATUS函数被大神改成了返回MAL_OK,不能正确返回状态了,而在usb_prop里又调用了这个函数,所以每次升级都失败,改回去就好了
回复 支持 1 反对 0

使用道具 举报

2

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2015-2-2
在线时间
9 小时
发表于 2015-7-23 00:06:16 | 显示全部楼层
用你的代码下载了一个鼠标的程序,但没有被识别为鼠标,还是dfu
.这是什么原因啊
回复 支持 反对

使用道具 举报

4

主题

106

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
302
金钱
302
注册时间
2015-7-16
在线时间
29 小时
发表于 2015-7-29 08:54:52 | 显示全部楼层
回复【83楼】刘源爱电子:
---------------------------------
参考楼主附件4
回复 支持 反对

使用道具 举报

23

主题

83

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
350
金钱
350
注册时间
2015-7-14
在线时间
76 小时
发表于 2015-7-30 09:49:33 | 显示全部楼层
回复【73楼】eminem1412:
---------------------------------
32位 win7出现同样现象,因为用mini,所以修改了部分io,其他没有任何改动。
回复 支持 反对

使用道具 举报

50

主题

385

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1126
金钱
1126
注册时间
2014-8-24
在线时间
146 小时
发表于 2015-7-30 09:59:05 | 显示全部楼层
有用,也一样感觉串口不够方便。
mark留名
找一份喜欢的工作,这样每天工作的8个小时是快乐的。 找一个喜欢的人,这样每天工作之外的16个小时也是快乐的。
回复 支持 反对

使用道具 举报

23

主题

83

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
350
金钱
350
注册时间
2015-7-14
在线时间
76 小时
发表于 2015-7-30 12:08:10 | 显示全部楼层
回复【82楼】兜兜里缺钱:
---------------------------------
可以详细讲一下是什么原因吗?我每次下载也都失败。
回复 支持 反对

使用道具 举报

4

主题

106

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
302
金钱
302
注册时间
2015-7-16
在线时间
29 小时
发表于 2015-7-30 12:59:23 | 显示全部楼层
回复【87楼】Azer:
---------------------------------
我就是把这个函数给改回去了,八度大大是直接返回 malok.
这个函数在dfu_mal.c中

uint16_t MAL_GetStatus(uint32_t SectorAddress , uint8_t Cmd, uint8_t *buffer)
{
  uint8_t x = (SectorAddress  >> 26) & 0x03 ; /* 0x000000000 --> 0 */
  /* 0x640000000 --> 1 */
  /* 0x080000000 --> 2 */

  uint8_t y = Cmd & 0x01;
  SET_POLLING_TIMING(TimingTable[x][y]);  /* x: Erase/Write Timing */
  /* y: Media              */
  return MAL_OK;
}

然后前面删除的那个数组也要加回去
static const uint16_t  TimingTable[5][2] =
  { /*       Sector Erase time,            Sector Program time*/    
    { SPI_FLASH_SECTOR_ERASE_TIME,    SPI_FLASH_SECTOR_WRITE_TIME },    /* SPI Flash */
    { M29W128F_SECTOR_ERASE_TIME,     M29W128F_SECTOR_WRITE_TIME },     /* NOR Flash M29W128F */
    { INTERN_FLASH_SECTOR_ERASE_TIME, INTERN_FLASH_SECTOR_WRITE_TIME }, /* Internal Flash */
    { M29W128G_SECTOR_ERASE_TIME,     M29W128G_SECTOR_WRITE_TIME },     /* NOR Flash M29W128G */
    { S29GL128_SECTOR_ERASE_TIME,     S29GL128_SECTOR_WRITE_TIME }      /* NOR Flash S29GL128 */
  };

回复 支持 3 反对 0

使用道具 举报

23

主题

83

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
350
金钱
350
注册时间
2015-7-14
在线时间
76 小时
发表于 2015-7-30 14:00:10 | 显示全部楼层
回复【88楼】兜兜里缺钱:
---------------------------------
我这个之前改回去了,删除的数组也加了,但是各种未定义的错误,然后我就放弃了。
想了半天觉得可能是代码大小不对,然后我换了一个最最简单的跑马灯程序,成功下载了。
回复 支持 反对

使用道具 举报

23

主题

83

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
350
金钱
350
注册时间
2015-7-14
在线时间
76 小时
发表于 2015-7-30 14:23:05 | 显示全部楼层
回复【88楼】兜兜里缺钱:
---------------------------------
还有一个问题,如何执行APP程序。。
回复 支持 反对

使用道具 举报

4

主题

106

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
302
金钱
302
注册时间
2015-7-16
在线时间
29 小时
发表于 2015-7-30 15:02:54 | 显示全部楼层
回复【90楼】Azer:
---------------------------------
首先,DFU刷进去的APP的中断向量表的偏移地址要设置对,在开机后,有一个判断步骤,如果没有按住KEY_UP,则跳入APP的地址执行程序,如果按下KEY_UP,则进入DFU模式,这种感觉和安卓手机进入RECOVERY模式有点像。
回复 支持 反对

使用道具 举报

4

主题

106

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
302
金钱
302
注册时间
2015-7-16
在线时间
29 小时
发表于 2015-7-30 15:06:23 | 显示全部楼层
回复【89楼】Azer:
---------------------------------
你可以把错误贴出来让大家帮帮忙啊
回复 支持 反对

使用道具 举报

23

主题

83

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
350
金钱
350
注册时间
2015-7-14
在线时间
76 小时
发表于 2015-7-31 10:05:31 | 显示全部楼层
回复【92楼】兜兜里缺钱:
---------------------------------
现在调来调去始终觉得是片上的flash产生的问题。
楼主大神程序的存储首地址是0x0800 0000,大小是 0x0040 0000。我按照编译出来的程序大小将 0x0040 0000 改成了0x0000 7000,结果再编译出错。
然后因为用的是f103rct6,所以把APP程序的起始地址改为0x0800 7000(因为bootloader程序的大小大概0x6000+),bootloader程序中的地址(ApplicationAddress)也改为0x0800 7000,结果无法正常下载。
最后就是关于SCB->VTOR = FLASH_BASE | 0X30000; /* Vector Table Relocation in Internal FLASH. */这句话的作用,还不明确。曾经将0x3 0000改为0x7000,但是并没用什么作用,还是无法正常下载。
回复 支持 反对

使用道具 举报

4

主题

106

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
302
金钱
302
注册时间
2015-7-16
在线时间
29 小时
发表于 2015-7-31 10:33:04 | 显示全部楼层
回复【93楼】Azer:
---------------------------------
        SCB->VTOR =FLASH_BASE|0X30000,这一句就是设置APP的中断向量偏移地址,FLASH_BASE如果你追踪的话应该是0X800 0000,而或上的这个0x30000是不是刚好是BOOTLOADER所占用的大小。所以FLASH上前0x30000是bootloader占用,从这开始才是APP的起始地址。
        你改程序的SIZE后编译出错,是不是提示你还需要多少空间,你加好然后再对齐页就行了,还有你修改usb_desc.c中的uint8_t DFU_StringInterface0[DFU_SIZ_STRING_INTERFACE0] 了么,这个要和你的flash对上。
回复 支持 反对

使用道具 举报

4

主题

106

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
302
金钱
302
注册时间
2015-7-16
在线时间
29 小时
发表于 2015-7-31 10:45:13 | 显示全部楼层
回复【93楼】Azer:
---------------------------------
你所说的这些全部要改成一致,如果你BOOTLOADER占用大小改为0x7000,那么ApplicationAddress要改成 0x800 7000;在APP程序中,起始地址要改成0x800 7000,占用大小不能超过 0x39000,同时要设置SCB->VTOR = FLASH_BASE | 0X7000;还有,如果你的APP是USB相关的例程的话,要修改APP工程中 system_stm32f10x.c中的 system_init函数中最后一行 SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET;将VECT_TAB_OFFSET改成0X7000。 再如果你的例程是原子哥寄存器版本的话,则需要修改sys.c中MYRCC_DeInit函数中的最后一行MY_NVIC_SetVectorTable(0x08000000,0x0);将0x0改为0x7000。
PS:个人觉得改了system_init后就不用加之前的那一句了,感觉重复了。
回复 支持 反对

使用道具 举报

4

主题

106

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
302
金钱
302
注册时间
2015-7-16
在线时间
29 小时
发表于 2015-7-31 11:22:42 | 显示全部楼层
回复【92楼】兜兜里缺钱:
---------------------------------
还有,你需要在Options fo Target中将Device下的芯片型号改为你自己用的那一个。
需要修改uint8_t DFU_StringInterface0[DFU_SIZ_STRING_INTERFACE0]
这个是我给你改好的
uint8_t DFU_StringInterface0[DFU_SIZ_STRING_INTERFACE0] =
  {
    DFU_SIZ_STRING_INTERFACE0,
    0x03,
    // Interface 0: "@Internal Flash   /0x08000000/06*002Ka,122*002Kg"
    '@', 0, 'I', 0, 'n', 0, 't', 0, 'e', 0, 'r', 0, 'n', 0, 'a', 0, 'l', 0,  /* 18 */
    ' ', 0, 'F', 0, 'l', 0, 'a', 0, 's', 0, 'h', 0, ' ', 0, ' ', 0, /* 16 */

    '/', 0, '0', 0, 'x', 0, '0', 0, '8', 0, '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, '0', 0, /* 22 */

    '/', 0, '0', 0, '6', 0, '*', 0, '0', 0, '0', 0, '2', 0, 'K', 0, 'a', 0, /* 18 */
    ',', 0, '1', 0, '2', 0, '2', 0, '*', 0, '0', 0, '0', 0, '2', 0, 'K', 0, 'g', 0, /* 20 */
  };
回复 支持 反对

使用道具 举报

23

主题

83

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
350
金钱
350
注册时间
2015-7-14
在线时间
76 小时
发表于 2015-7-31 14:05:54 | 显示全部楼层
回复【96楼】兜兜里缺钱:
---------------------------------
大神解释的真心详细,万分感谢。

比较遗憾的是如此修改之后程序仍然无法正常下载。
现在还存在几个问题:
1,是否与if(((*(__IO uint32_t*)ApplicationAddress) & 0x2FFE0000 ) == 0x20000000)这个判断有关?这两个数分别有什么意义呢?
2,uint8_t DFU_StringInterface0[DFU_SIZ_STRING_INTERFACE0] 函数的意义是什么
回复 支持 反对

使用道具 举报

23

主题

83

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
350
金钱
350
注册时间
2015-7-14
在线时间
76 小时
发表于 2015-7-31 14:07:37 | 显示全部楼层

错误
回复 支持 反对

使用道具 举报

4

主题

106

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
302
金钱
302
注册时间
2015-7-16
在线时间
29 小时
发表于 2015-7-31 14:44:07 | 显示全部楼层
回复【97楼】Azer:
---------------------------------
if(((*(__IO uint32_t*)ApplicationAddress) & 0x2FFE0000 ) == 0x20000000)
正如注释所说,这句是判断APP起始地址是否正确的,只要你的ram是64K(转换成16进制有惊喜),那么这句话就是对的,你的就是64K,
uint8_t DFU_StringInterface0[DFU_SIZ_STRING_INTERFACE0]这个是表示你的闪存规格的字符串描述符,你那块MCU是256K闪存,我查了下手册,每页是2K,一共0~127,共128页。
看这段注释// Interface 0: "@Internal Flash   /0x08000000/06*002Ka,122*002Kg" ,表示接口0,片内闪存,起始地址0x800 0000;前六页(0~5)可读不可写,后122页(6~127)可读可写。这个都是没问题的
回复 支持 反对

使用道具 举报

23

主题

83

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
350
金钱
350
注册时间
2015-7-14
在线时间
76 小时
发表于 2015-7-31 15:04:27 | 显示全部楼层
回复【99楼】兜兜里缺钱:
---------------------------------
为什么前6页不可写呢?bootloader的起始地址是0x0800 0000.
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 19:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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