OpenEdv-开源电子网

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

需要一个修改bin文件的小脚本

[复制链接]

15

主题

866

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7523
金钱
7523
注册时间
2016-11-30
在线时间
641 小时
发表于 2020-3-6 10:30:34 | 显示全部楼层 |阅读模式
30金钱
    本人对脚本程序不熟悉,请教坛子里的大神帮忙!

    需求:STM32用keil编译后生成bin 文件,想要在bin文件内容最后添加几行程序信息,方便IAP升级时可以通过这些信息判断程序是否为可用的程序!

    目前想到的可实现的方法是在keil编译完成后,调用执行一个小脚本,完成以上功能,既方便又不会出错。

    求大神帮忙啦!

最佳答案

查看完整内容[请看2#楼]

实现了2个bin文件的无缝合并!需要提前准备好需要添加的bin文件内容
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

15

主题

866

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7523
金钱
7523
注册时间
2016-11-30
在线时间
641 小时
 楼主| 发表于 2020-3-6 10:30:35 | 显示全部楼层
实现了2个bin文件的无缝合并!需要提前准备好需要添加的bin文件内容

addname.zip

234 Bytes, 下载次数: 149

回复

使用道具 举报

0

主题

58

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
295
金钱
295
注册时间
2018-2-27
在线时间
36 小时
发表于 2020-3-6 10:33:56 | 显示全部楼层
写个小软件喽,fopen,fseek,  fwrite, fclose就差不多了
回复

使用道具 举报

15

主题

866

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7523
金钱
7523
注册时间
2016-11-30
在线时间
641 小时
 楼主| 发表于 2020-3-6 13:14:13 | 显示全部楼层
TCX 发表于 2020-3-6 10:33
写个小软件喽,fopen,fseek,  fwrite, fclose就差不多了

谢谢,已搞定!
回复

使用道具 举报

1

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2019-8-20
在线时间
14 小时
发表于 2020-6-1 09:54:18 | 显示全部楼层
楼主,能不能问你一个问题。 就是用IAP下载App程序的时候 都会去设置App文件的起始地址,然后生成bin文件。能不能手动去修改这个起始地址啊。或者你能否告知一下  有什么软件可以打开bin文件,方便观察里面的数据啊
回复

使用道具 举报

15

主题

866

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7523
金钱
7523
注册时间
2016-11-30
在线时间
641 小时
 楼主| 发表于 2020-6-1 13:16:58 | 显示全部楼层
LYCSS 发表于 2020-6-1 09:54
楼主,能不能问你一个问题。 就是用IAP下载App程序的时候 都会去设置App文件的起始地址,然后生成bin文件。 ...

这个小软件可以查看修改bin文件内容!起始地址可以在keil里边设置,当然程序里边也要有SCB->VTOR = APP_ADDR;这句代码
起始地址及空间大小.png

010 Editor 6.0_shenyongran.zip

19.59 MB, 下载次数: 32

回复

使用道具 举报

1

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2019-8-20
在线时间
14 小时
发表于 2020-6-1 13:54:22 | 显示全部楼层
lvkanger 发表于 2020-6-1 13:16
这个小软件可以查看修改bin文件内容!起始地址可以在keil里边设置,当然程序里边也要有SCB->VTOR = APP_A ...

谢谢,那可以用软件的方式去修改这个起始地址吗。
回复

使用道具 举报

1

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2019-8-20
在线时间
14 小时
发表于 2020-6-1 14:30:56 | 显示全部楼层
Irom2要怎么用啊   ,  能用Irom2区解决我的问题吗?   
回复

使用道具 举报

15

主题

866

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7523
金钱
7523
注册时间
2016-11-30
在线时间
641 小时
 楼主| 发表于 2020-6-2 09:34:18 | 显示全部楼层
LYCSS 发表于 2020-6-1 14:30
Irom2要怎么用啊   ,  能用Irom2区解决我的问题吗?

如果运行多个APP程序,应该可以用IROM2。现在不太清除你到底是遇到了什么困扰。一般来说,编译的时候是要设置好这些的。这样应该是最省事儿的。
回复

使用道具 举报

1

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2019-8-20
在线时间
14 小时
发表于 2020-6-2 11:12:09 | 显示全部楼层
lvkanger 发表于 2020-6-2 09:34
如果运行多个APP程序,应该可以用IROM2。现在不太清除你到底是遇到了什么困扰。一般来说,编译的时候是要 ...

实现了两个App程序的交互更新。然后在执行App1的时候,此时串口接收到的更新数据会发送给App2Flash区域,然后去执行Flash2区域的程序.但是这样的话就遇到了一个问题,在实现App1和App2交互更新的时候,要用两个不同的Irom区域地址。假如后续要更新程序,但是不知道此时运行的App1还是App2就会导致不知道该往哪个Irom地址写入数据。大概问题就是这样的,因为用两个工程文件不同的基地址去烧写那样的话就会很麻烦。就想着只用一个工程文件app1和app2交互更新。
回复

使用道具 举报

15

主题

866

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7523
金钱
7523
注册时间
2016-11-30
在线时间
641 小时
 楼主| 发表于 2020-6-3 09:28:42 | 显示全部楼层
LYCSS 发表于 2020-6-2 11:12
实现了两个App程序的交互更新。然后在执行App1的时候,此时串口接收到的更新数据会发送给App2Flash区域, ...

恩,这个是逻辑上的问题。你看用一个变量app_sel来判断能不能实现。在boot里边判断app_sel==APP1,就代表要执行APP1的程序,当串口接收到更新数据时通过这个变量就可以知道要往APP2的Flash区域。同样app_sel==APP2时,就知道要执行APP2的程序,更新数据时也就知道要往APP1的Flash区域
回复

使用道具 举报

2

主题

685

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3448
金钱
3448
注册时间
2017-7-4
在线时间
869 小时
发表于 2020-10-4 15:06:38 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-17 03:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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