OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子新作:阿波罗STM32F767&F429&探索者STM32F4开发板&赶快来下载资料哦。

楼主: 229382777@qq.co

分享我的项目必需品:IAP+YMODEM+CRC16+AES256+PC端软件+hex合并

  [复制链接]

  离线 

0

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
104
金钱
104
注册时间
2017-7-7
在线时间
14 小时
发表于 2017-8-6 21:23:17 | 显示全部楼层
正点原子公众号
本帖最后由 Eatun 于 2017-8-11 15:01 编辑
Eatun 发表于 2017-8-5 09:22
你好,那个超级终端可以发单个字符吗?

我用串口助手发送两个1后进入bin文件接收状态,串口助手会接收C ...

发送的问题解决了

回复 支持 反对

使用道具 举报

  离线 

6

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2017-6-1
在线时间
18 小时
发表于 2017-8-14 11:36:29 | 显示全部楼层
楼主真实大大滴良心,不顶不是人
回复 支持 反对

使用道具 举报

  离线 

6

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2017-6-1
在线时间
18 小时
发表于 2017-8-14 16:41:27 | 显示全部楼层
楼主,你的这两个表放哪了?我怎么找不到
unsigned char *sBox; //!< Final location of s-box.
unsigned char *sBoxInv; //!< Final location of inverse s-box.
回复 支持 反对

使用道具 举报

  离线 

119

主题

439

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1184
金钱
1184
注册时间
2015-9-18
在线时间
422 小时
发表于 2017-8-17 12:00:05 | 显示全部楼层
最近在看ymodem,ymodem.c,Receive_Packet函数,有个疑问,希望得到阁下指点。

000.png

如何理解CA帧和ABORT1帧/ABORT2帧的区别?

ABORT1帧/ABORT2帧强调是发送者取消发送。CA帧跟它们有什么区别呢?

恳请指教,感谢。
电子爱好者
回复 支持 反对

使用道具 举报

  离线 

1

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2012-11-13
在线时间
16 小时
发表于 2017-8-18 18:03:58 | 显示全部楼层
正点原子公众号
最近也在研究STM32 IAP,多谢分享!
回复 支持 反对

使用道具 举报

  离线 

1

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2017-8-21
在线时间
16 小时
发表于 2017-8-21 11:25:55 | 显示全部楼层
真的很不错
回复 支持 反对

使用道具 举报

  离线 

1

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2017-8-21
在线时间
16 小时
发表于 2017-8-21 11:44:25 | 显示全部楼层
真的很不错
回复 支持 反对

使用道具 举报

  离线 

16

主题

103

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
468
金钱
468
注册时间
2014-6-20
在线时间
126 小时
发表于 2017-9-6 10:55:40 | 显示全部楼层
为啥一年前没看到,大赞楼主!
回复 支持 反对

使用道具 举报

  离线 

10

主题

63

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
476
金钱
476
注册时间
2015-9-9
在线时间
50 小时
发表于 2017-9-6 11:11:42 | 显示全部楼层
顶一下                  
毕业两年才学STM32...
这些都没关系,重点是自己到底成长了没有
回复 支持 反对

使用道具 举报

  离线 

6

主题

39

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
251
金钱
251
注册时间
2017-7-25
在线时间
75 小时
发表于 2017-9-15 11:23:51 来自手机 | 显示全部楼层
Eatun 发表于 2017-7-18 20:43
在程序中我使用的升级方式是通过串口发送字符‘1’(可自行修改),串口收到字符‘1’后,向指定的地址写入0x ...

应该是在AAP程序里面
回复 支持 反对

使用道具 举报

  离线 

7

主题

196

帖子

0

精华

高级会员

Rank: 4

积分
586
金钱
586
注册时间
2017-8-17
在线时间
119 小时
发表于 2017-9-16 16:28:04 | 显示全部楼层
已收藏,楼主威武
回复 支持 反对

使用道具 举报

  离线 

6

主题

39

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
251
金钱
251
注册时间
2017-7-25
在线时间
75 小时
发表于 2017-9-18 20:05:56 来自手机 | 显示全部楼层
不加密生成的bin文件能接收到吗,比如用MDK自带的生成bin文件,你的ymodem.c里面接收的时候有解密代码,所以想问下没有加密的bin文件可不可以用您的源码接收到?
回复 支持 反对

使用道具 举报

  离线 

6

主题

39

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
251
金钱
251
注册时间
2017-7-25
在线时间
75 小时
发表于 2017-9-18 20:12:06 来自手机 | 显示全部楼层
Eatun 发表于 2017-8-6 21:23
发送的问题解决了

你用超级终端做IAP升级使用ymodem协议发送能成功吗?是正点原子的板子么。。
回复 支持 反对

使用道具 举报

  离线 

13

主题

774

帖子

3

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2292
金钱
2292
注册时间
2015-7-26
在线时间
586 小时
 楼主| 发表于 2017-9-19 08:45:51 | 显示全部楼层
年华七堇 发表于 2017-9-18 20:05
不加密生成的bin文件能接收到吗,比如用MDK自带的生成bin文件,你的ymodem.c里面接收的时候有解密代码,所 ...

把解密代码去掉即可
我的博客:http://blog.csdn.net/itdo_just
回复 支持 反对

使用道具 举报

  离线 

6

主题

39

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
251
金钱
251
注册时间
2017-7-25
在线时间
75 小时
发表于 2017-9-19 10:17:46 来自手机 | 显示全部楼层
229382777@qq.co 发表于 2017-9-19 08:45
把解密代码去掉即可

去掉了,发送的时候一直这样子不会动了
IMG_20170919_101455.jpg
回复 支持 反对

使用道具 举报

  离线 

6

主题

39

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
251
金钱
251
注册时间
2017-7-25
在线时间
75 小时
发表于 2017-9-19 10:25:13 | 显示全部楼层
年华七堇 发表于 2017-9-19 10:17
去掉了,发送的时候一直这样子不会动了

清晰一点的

清晰一点的

清晰一点的
回复 支持 反对

使用道具 举报

  离线 

6

主题

39

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
251
金钱
251
注册时间
2017-7-25
在线时间
75 小时
发表于 2017-9-19 10:34:52 | 显示全部楼层
229382777@qq.co 发表于 2017-9-19 08:45
把解密代码去掉即可

用超级终端发送的问题,因为原子的板子有一键下载,所以把代码改成直接在死循环里面等待接收文件,屏幕会一直打印“C”,然后直接发送了bin文件,就出错了
捕获.PNG
捕获1.PNG
回复 支持 反对

使用道具 举报

  离线 

13

主题

774

帖子

3

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2292
金钱
2292
注册时间
2015-7-26
在线时间
586 小时
 楼主| 发表于 2017-9-19 12:50:06 | 显示全部楼层
年华七堇 发表于 2017-9-19 10:34
用超级终端发送的问题,因为原子的板子有一键下载,所以把代码改成直接在死循环里面等待接收文件,屏幕会 ...

你再参考我代码看一下吧,能收到C说明数据传输应该是问题了,我太久没接触这段代码了
我的博客:http://blog.csdn.net/itdo_just
回复 支持 反对

使用道具 举报

  离线 

6

主题

39

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
251
金钱
251
注册时间
2017-7-25
在线时间
75 小时
发表于 2017-9-21 19:46:47 | 显示全部楼层
229382777@qq.co 发表于 2017-9-19 12:50
你再参考我代码看一下吧,能收到C说明数据传输应该是问题了,我太久没接触这段代码了

IAP 超级终端用ymodem发送成功了 原子的MINI板 主要是地址的设置不正确  谢谢你的分享
回复 支持 反对

使用道具 举报

  离线 

4

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
162
金钱
162
注册时间
2016-11-25
在线时间
34 小时
发表于 2017-9-22 22:34:17 | 显示全部楼层
感谢分享,学习了!
回复 支持 反对

使用道具 举报

  离线 

6

主题

39

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
251
金钱
251
注册时间
2017-7-25
在线时间
75 小时
发表于 2017-9-23 16:46:40 来自手机 | 显示全部楼层
请教个问题,按照你的步骤修改了PC加密软件,运行时还是报错,我的电脑是基于x64的WIN10系统,想问下这个步骤跟电脑系统有没有关系的?
回复 支持 反对

使用道具 举报

  离线 

6

主题

39

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
251
金钱
251
注册时间
2017-7-25
在线时间
75 小时
发表于 2017-9-23 16:47:34 来自手机 | 显示全部楼层
用的VS2013
回复 支持 反对

使用道具 举报

  离线 

6

主题

39

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
251
金钱
251
注册时间
2017-7-25
在线时间
75 小时
发表于 2017-9-24 14:12:11 | 显示全部楼层
年华七堇 发表于 2017-9-23 16:46
请教个问题,按照你的步骤修改了PC加密软件,运行时还是报错,我的电脑是基于x64的WIN10系统,想问下这个步 ...

解决方法见图,VS2013  WIN10

改这个

改这个
回复 支持 反对

使用道具 举报

  离线 

12

主题

67

帖子

0

精华

初级会员

Rank: 2

积分
122
金钱
122
注册时间
2016-9-20
在线时间
44 小时
发表于 2017-10-13 09:57:48 | 显示全部楼层
神仙打架啊、、收藏了
回复 支持 反对

使用道具 举报

  离线 

6

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
216
金钱
216
注册时间
2017-8-21
在线时间
35 小时
发表于 2017-10-13 10:48:12 | 显示全部楼层
顶~~~~~~~
回复 支持 反对

使用道具 举报

  离线 

0

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2017-3-20
在线时间
57 小时
发表于 2017-10-13 17:58:05 | 显示全部楼层
学习学习
回复 支持 反对

使用道具 举报

  离线 

12

主题

67

帖子

0

精华

初级会员

Rank: 2

积分
122
金钱
122
注册时间
2016-9-20
在线时间
44 小时
发表于 2017-10-18 13:53:50 | 显示全部楼层
你好,updata_byte = STMFLASH_ReadHalfWord(0x8004A38);//读取指定地址的值     这里指定地址有什么讲究么?还有我看你程序里都没有找到你往这个地址里写数据。
回复 支持 反对

使用道具 举报

  离线 

6

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
106
金钱
106
注册时间
2017-7-18
在线时间
38 小时
发表于 2017-10-22 22:33:46 | 显示全部楼层
大佬想问一下,这个加密解密是一次16位进行的,但是最后一点数据不足十六位会怎么补足啊?我这边加密成功之后解密出来前面都对最后多出来的四位不对。。。文件大小也跟MDK自动生成的bin一样大但是最后多出来的就是不一样。。。
回复 支持 反对

使用道具 举报

  离线 

1

主题

5

帖子

0

精华

新手入门

积分
32
金钱
32
注册时间
2017-10-20
在线时间
8 小时
发表于 2017-10-24 11:29:19 | 显示全部楼层
很详细,谢谢楼主的教导  哈哈哈
回复 支持 反对

使用道具 举报

  离线 

1

主题

16

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
272
金钱
272
注册时间
2012-12-21
在线时间
53 小时
发表于 2017-10-24 17:09:54 | 显示全部楼层
移植成功了,很不错,感谢
回复 支持 反对

使用道具 举报

  离线 

1

主题

5

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2014-8-5
在线时间
7 小时
发表于 2017-10-24 23:48:09 | 显示全部楼层
mark!!!!!!!!!
回复 支持 反对

使用道具 举报

  离线 

15

主题

252

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1257
金钱
1257
注册时间
2017-7-6
在线时间
184 小时
发表于 2017-11-17 15:29:57 | 显示全部楼层
楼主 64位WIN7的PC可以用超级终端或则secureCRT吗
回复 支持 反对

使用道具 举报

  离线 

13

主题

774

帖子

3

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2292
金钱
2292
注册时间
2015-7-26
在线时间
586 小时
 楼主| 发表于 2017-11-18 08:50:03 | 显示全部楼层
1547674987 发表于 2017-11-17 15:29
楼主 64位WIN7的PC可以用超级终端或则secureCRT吗

超级终端有win7版本,其他软件支持ymodem也行
我的博客:http://blog.csdn.net/itdo_just
回复 支持 反对

使用道具 举报

  离线 

15

主题

252

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1257
金钱
1257
注册时间
2017-7-6
在线时间
184 小时
发表于 2017-11-20 08:51:13 | 显示全部楼层
229382777@qq.co 发表于 2017-11-18 08:50
超级终端有win7版本,其他软件支持ymodem也行

好的,谢谢 我去找找
回复 支持 反对

使用道具 举报

  离线 

17

主题

165

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
314
金钱
314
注册时间
2017-7-26
在线时间
83 小时
发表于 2017-11-20 19:55:01 | 显示全部楼层
Xy201207 发表于 2017-1-11 16:17
固件不是经过BOOTLOADER解密后再写进FLSH里面的吗? 如果我在读出,应该就是没有加密的吧

未解密的数据传输到mcu,mcu解密烧写进自身flash。这个过程有办法读出吗?
或者加个加密芯片,app开头验证密钥,这样就算他们把程序读出来了
没有加密芯片的密钥也没用。
回复 支持 反对

使用道具 举报

  离线 

17

主题

165

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
314
金钱
314
注册时间
2017-7-26
在线时间
83 小时
发表于 2017-11-20 20:01:11 | 显示全部楼层
229382777@qq.co 发表于 2017-7-29 13:24
第一次烧的是hex;需要转成bin的只有app程序;无论任何情况下,只要复位了都会先运行bootloader再跳转到A ...

楼主,其实会不会弄一个类似刷机的开机模式比较好。就像安卓机按音量键开机时刷机模式。
感觉用标志位不太靠谱
回复 支持 反对

使用道具 举报

  离线 

15

主题

252

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1257
金钱
1257
注册时间
2017-7-6
在线时间
184 小时
发表于 2017-11-21 17:54:27 | 显示全部楼层
楼主你代码里面是用的ymodem还是ymodem-G协议?另外我在发送文件的时候失败,准备仿真Ymodem_Receive() ,给个建议呗
回复 支持 反对

使用道具 举报

  离线 

15

主题

252

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1257
金钱
1257
注册时间
2017-7-6
在线时间
184 小时
发表于 2017-11-22 16:47:17 | 显示全部楼层
楼主,我用超级终端给F103发BIN文件,为啥就收到了第一个数据包,后面死活收不到数据了
回复 支持 反对

使用道具 举报

  离线 

13

主题

774

帖子

3

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2292
金钱
2292
注册时间
2015-7-26
在线时间
586 小时
 楼主| 发表于 2017-11-22 19:17:20 | 显示全部楼层
1547674987 发表于 2017-11-22 16:47
楼主,我用超级终端给F103发BIN文件,为啥就收到了第一个数据包,后面死活收不到数据了

你的问题我没遇到过,代码是可以使用没问题的,前面也有几个网友移植成功
我的博客:http://blog.csdn.net/itdo_just
回复 支持 反对

使用道具 举报

  离线 

15

主题

252

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1257
金钱
1257
注册时间
2017-7-6
在线时间
184 小时
发表于 2017-11-22 22:57:33 | 显示全部楼层
229382777@qq.co 发表于 2017-11-22 19:17
你的问题我没遇到过,代码是可以使用没问题的,前面也有几个网友移植成功

好了,我用自己开发板能跑了,估计我公司串口有点问题
回复 支持 反对

使用道具 举报

  离线 

15

主题

252

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1257
金钱
1257
注册时间
2017-7-6
在线时间
184 小时
发表于 2017-12-1 12:07:55 | 显示全部楼层
楼主,你有没有试过不用超级终端,用ymodem的发送协议来完成一个单片机给另外一个单片机升级
回复 支持 反对

使用道具 举报

  离线 

13

主题

774

帖子

3

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2292
金钱
2292
注册时间
2015-7-26
在线时间
586 小时
 楼主| 发表于 2017-12-1 12:15:16 | 显示全部楼层
1547674987 发表于 2017-12-1 12:07
楼主,你有没有试过不用超级终端,用ymodem的发送协议来完成一个单片机给另外一个单片机升级

一样的,把ymodem移植进去就行了
我的博客:http://blog.csdn.net/itdo_just
回复 支持 反对

使用道具 举报

  离线 

15

主题

252

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1257
金钱
1257
注册时间
2017-7-6
在线时间
184 小时
发表于 2017-12-1 13:30:40 | 显示全部楼层
229382777@qq.co 发表于 2017-12-1 12:15
一样的,把ymodem移植进去就行了

遇到点问题,发送失败,我正在仿真排坑中。源码原封不动 肯定不行的
回复 支持 反对

使用道具 举报

  离线 

2

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2017-5-16
在线时间
14 小时
发表于 2017-12-4 17:32:07 | 显示全部楼层
mark  !!!
回复 支持 反对

使用道具 举报

  离线 

0

主题

1

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2015-8-5
在线时间
12 小时
发表于 2017-12-27 11:22:09 | 显示全部楼层
非常感谢,正好全部能用上。
回复 支持 反对

使用道具 举报

  离线 

2

主题

13

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2017-9-13
在线时间
18 小时
发表于 2017-12-28 10:17:25 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

  离线 

0

主题

5

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2014-3-12
在线时间
1 小时
发表于 2018-1-24 09:45:55 | 显示全部楼层
HEX2BIN 程序是有问题的,加密的时候,每16字节,只加密了第一个字节,后面15个根本没变化。
回复 支持 反对

使用道具 举报

  离线 

0

主题

5

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2014-3-12
在线时间
1 小时
发表于 2018-1-24 10:00:45 | 显示全部楼层
                for (i = 0; i < Length; i++)
                {
                    for (j = 0; j < 16; j++)
                    {
                        bufferIn[j] = buffer[i * 16 + j];
                    }
                    AESDLL.aesEncrypt(ref bufferIn[0], ref bufferOut[0]);//认为这里有问题 每次都是数值第一个字节
                    for (j = 0; j < 16; j++)
                    {
                        bufferEnc[i * 16 + j] = bufferIn[j];
                    }
                }
回复 支持 反对

使用道具 举报

  离线 

5

主题

253

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1225
金钱
1225
注册时间
2016-7-20
在线时间
127 小时
发表于 2018-1-24 11:06:40 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

  离线 

13

主题

143

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
433
金钱
433
注册时间
2015-5-14
在线时间
56 小时
发表于 2018-1-24 14:23:19 | 显示全部楼层
感谢楼书提供的学习资料,现在已经实现了数据传输,问题在地址分配上,每次分配的地址都不对,还在继续努力。
回复 支持 反对

使用道具 举报

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

本版积分规则




QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-6-19 05:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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