OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子全套STM32开发资料,上千讲STM32视频教程,RT1052教程免费下载啦...
楼主: 229382777@qq.co

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

  [复制链接]

  离线 

7

主题

67

帖子

0

精华

初级会员

Rank: 2

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

没法送bin文件前 只打印CC吗,我secure显示都是空白怎么回事?能解答一下吗
回复 支持 反对

使用道具 举报

  离线 

13

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
160
金钱
160
注册时间
2017-12-4
在线时间
53 小时
发表于 2018-3-11 14:20:59 | 显示全部楼层
为什么我的超级终端收不到开发板从串口发来的信息,换其他串口调试助手收发正常
回复 支持 反对

使用道具 举报

  离线 

0

主题

7

帖子

0

精华

高级会员

Rank: 4

积分
561
金钱
561
注册时间
2015-11-5
在线时间
44 小时
发表于 2018-3-12 14:05:09 | 显示全部楼层
除了感谢还是感谢
回复 支持 反对

使用道具 举报

  离线 

13

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
160
金钱
160
注册时间
2017-12-4
在线时间
53 小时
发表于 2018-3-12 15:17:21 | 显示全部楼层
229382777@qq.co 发表于 2017-7-28 16:37
写在APP里面,如果你在bootloader里面找的话肯定只能找到判断0xAAAA这个这段代码,所以请去APP里面看下, ...

更新APP后,板子重新上电从bootloader开始执行,该判断永远成立updata_byte = STMFLASH_ReadHalfWord(0x8004A38);//读取指定地址的值
                if(updata_byte == 0xAAAA)//判断此地址的值是否为0xAAAA,如果是则升级
                {
                        Main_Menu();
                }
执行Main_Menu();必要要按下1键,那岂不是更新后的APP从新上电后不能自动执行了??
回复 支持 反对

使用道具 举报

  离线 

7

主题

75

帖子

0

精华

高级会员

Rank: 4

积分
522
金钱
522
注册时间
2013-3-28
在线时间
49 小时
发表于 2018-3-12 23:13:36 | 显示全部楼层
感谢啊,正在搞远程更新的事,IAP原理简单,实现起来就有点烦了
回复 支持 反对

使用道具 举报

  离线 

4

主题

220

帖子

0

精华

高级会员

Rank: 4

积分
765
金钱
765
注册时间
2018-1-29
在线时间
85 小时
发表于 2018-3-13 06:45:24 | 显示全部楼层

赶紧来膜拜一下大神的神贴! 大神辛苦了,感谢分享!
回复 支持 反对

使用道具 举报

  离线 

0

主题

1

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2018-3-13
在线时间
0 小时
发表于 2018-3-13 21:07:38 | 显示全部楼层
想问下为什么我用超级终端连接好后,stm32的IAP上传上来的提示信息是乱码啊啊啊,求助
回复 支持 反对

使用道具 举报

  离线 

6

主题

524

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1691
金钱
1691
注册时间
2015-5-8
在线时间
266 小时
发表于 2018-3-13 21:21:43 | 显示全部楼层
很详细啊,厉害厉害
回复 支持 反对

使用道具 举报

  离线 

50

主题

102

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
301
金钱
301
注册时间
2015-9-7
在线时间
69 小时
发表于 2018-3-28 14:50:43 | 显示全部楼层
楼主你好,我用aes+YMODEM发现解密YMODEM发到单片机的包,只有第一个包解密后完全正确,第一个包后的包,都是每个包前16个byte解密错误?我这是AES256 BLOCKSIZE=16这是什么原因啊?
回复 支持 反对

使用道具 举报

  离线 

8

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
189
金钱
189
注册时间
2013-3-11
在线时间
45 小时
发表于 2018-4-14 09:51:52 | 显示全部楼层
//////////////////////////////////////////////////////////////////////////////////////////////////////
//用户根据自己的需要设置
#define STM32_FLASH_SIZE 64                          //所选STM32的FLASH容量大小(单位为K)
#define STM32_FLASH_WREN 1              //使能FLASH写入(0,不是能;1,使能)
//////////////////////////////////////////////////////////////////////////////////////////////////////

//FLASH起始地址
#define STM32_FLASH_BASE 0x08000000         //STM32 FLASH的起始地址
#define USER_FLASH_LAST_PAGE_ADDRESS  0x0800F800
#define USER_FLASH_END_ADDRESS        0x0800FFFF /* 64 KBytes */
#define FLASH_PAGE_SIZE               0x400      /* 1 Kbytes */

/* define the address from where user application will be loaded,
   the application address should be a start sector address */
#define APPLICATION_ADDRESS     0x08008000

/* Get the number of Sector from where the user program will be loaded */
#define  FLASH_PAGE_NUMBER      (uint32_t)((APPLICATION_ADDRESS - 0x08000000) >> 12)

/* Compute the mask to test if the Flash memory, where the user program will be
   loaded, is write protected */
#define  FLASH_PROTECTED_PAGES   ((uint32_t)~((1 << FLASH_PAGE_NUMBER) - 1))

/* define the user application size */
#define USER_FLASH_SIZE   0x08000
//FLASH解锁键值

楼主还在吗,这几个地址这么设置哪里不对了?我的是103C8  64K flash 20K RAM的,终端助手烧录进去一直提示栈顶地址不对跳转不了,我把APP用烧录器烧录进去是可以正常jump的,所以估计是上面的地址哪里不对了
回复 支持 反对

使用道具 举报

  离线 

3

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
87
金钱
87
注册时间
2014-4-2
在线时间
8 小时
发表于 2018-4-18 15:14:05 | 显示全部楼层
mark!!!
回复 支持 反对

使用道具 举报

  离线 

3

主题

143

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
476
金钱
476
注册时间
2018-3-5
在线时间
57 小时
发表于 2018-4-18 15:34:28 | 显示全部楼层
229382777@qq.co 发表于 2016-9-19 08:29
我是在跳回bootloader的时候把APP全都删了,如果别人想要通过跳回bootloader烧入破解程序的话之前那段APP ...

关于这个,相比AES256,别人会直接去破解单片机来的方便,那么你的密钥都是不安全了
回复 支持 反对

使用道具 举报

  离线 

0

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2018-4-20
在线时间
16 小时
发表于 2018-4-20 10:58:23 | 显示全部楼层
谢谢分享,MARK。
回复 支持 反对

使用道具 举报

  离线 

1

主题

4

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2018-4-2
在线时间
1 小时
发表于 2018-5-20 22:00:33 | 显示全部楼层
感谢分析, 有一部分实在无法理解
就是APP里面,为啥一定要把中断向量移到SRAM里面去?  直接定位到0x08005000 不更好吗? 就不用重新设置了

void IAP_Set()
{
   uint32_t i = 0;

/* Relocate by software the vector table to the internal SRAM at 0x20000000 ***/  

  /* Copy the vector table from the Flash (mapped at the base of the application
     load address 0x08005000) to the base address of the SRAM at 0x20000000. */
       
  for(i = 0; i < 48; i++)//Ï轫¡±ó|óÃ3ìDò¡°μÄÖD¶ÏÏòá¿±í¿½±′ÖáSRAMÖD
  {
    *((uint32_t*)(0x20000000 + (i << 2)))=*(__IO uint32_t*)(APPLICATION_ADDRESS + (i<<2));
        }
回复 支持 反对

使用道具 举报

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

本版积分规则




关闭

必看,必学:"原子哥”力荐上一条 /1 下一条

正点原子公众号

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

GMT+8, 2018-9-22 17:47

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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