硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3363|回复: 11
收起左侧

[μCOS-II] 头疼,请问BIN文件或HEX文件如何加入版本信息

[复制链接]

15

主题

73

回帖

118

积分

初级会员

积分
118
发表于 2021-5-11 16:04:45 | 显示全部楼层 |阅读模式
做IAP功能,为避免程序烧录不匹配,需要在bin文件里边加入版本信息,但是不晓得如何加。希望论坛大佬指导下,用__attribute__么?
回复

使用道具 举报

19

主题

310

回帖

367

积分

高级会员

积分
367
发表于 2021-5-11 17:33:16 | 显示全部楼层
弄个python文件 编译完成后运行python命令 我就是这样搞的。。。
具体的自己简单学一下
当然 用win32写个exe 也可以
回复

使用道具 举报

19

主题

310

回帖

367

积分

高级会员

积分
367
发表于 2021-5-11 17:33:44 | 显示全部楼层
我们是写在文件最后固定的几个字节
回复

使用道具 举报

15

主题

73

回帖

118

积分

初级会员

积分
118
 楼主| 发表于 2021-5-11 20:34:57 | 显示全部楼层
hpxzw_foxmai 发表于 2021-5-11 17:33
弄个python文件 编译完成后运行python命令 我就是这样搞的。。。
具体的自己简单学一下
当然 用win32写个 ...

哈哈哈 这样也行。是个思路,多谢
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2021-5-12 09:19:43 | 显示全部楼层
放在xxx.S启动文件是最方便的,参考我们H7-TOOL的APP方案:
QQ截图20210512092114.png


回复

使用道具 举报

42

主题

126

回帖

252

积分

特别照顾组

积分
252
发表于 2021-5-12 11:49:07 | 显示全部楼层
把版本信息存EEPROM中,读取版本信息进行比较,不行的话,就显示错误信息。
回复

使用道具 举报

15

主题

73

回帖

118

积分

初级会员

积分
118
 楼主| 发表于 2021-5-12 17:52:23 | 显示全部楼层
eric2013 发表于 2021-5-12 09:19
放在xxx.S启动文件是最方便的,参考我们H7-TOOL的APP方案:

方法这么多,我今天在ld文件内改地址了,也可以。
.isr_vector :
  {
    . = ALIGN(4);
    KEEP(*(.isr_vector)) /* Startup code */        
    . = 0x400;                     /* 设置地址偏移为0x400,起始地址为FLASH的值0x8000000 */
    . = ALIGN(4);
  } >FLASH

  /*设置常量到指定地址*/
  .deviceinfo :
  {                        
          *(.info)                          /* info段从.位置开启排列  */
          . = ALIGN(4);
  } >FLASH
改动只有这些,接下来就是用__attribute__((section(".info")))这个命令了
回复

使用道具 举报

15

主题

73

回帖

118

积分

初级会员

积分
118
 楼主| 发表于 2021-5-12 17:53:16 | 显示全部楼层
xlzhu 发表于 2021-5-12 11:49
把版本信息存EEPROM中,读取版本信息进行比较,不行的话,就显示错误信息。

多谢。已经在flash内指定地址了,方法恢复给硬汉了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2021-5-12 18:02:24 | 显示全部楼层
mmo 发表于 2021-5-12 17:52
方法这么多,我今天在ld文件内改地址了,也可以。
.isr_vector :
  {

这种方式其实有弊端,编译的时候很容易出现独占一大片区域的情况。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2021-5-12 18:05:30 | 显示全部楼层
MDK和IAR的玩法如下:

使用STM32内部Flash模拟EEPROM务必告诉编译使用的扇区
http://www.armbbs.cn/forum.php?m ... 6687&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

15

主题

73

回帖

118

积分

初级会员

积分
118
 楼主| 发表于 2021-5-13 08:31:53 | 显示全部楼层
eric2013 发表于 2021-5-12 18:05
MDK和IAR的玩法如下:

使用STM32内部Flash模拟EEPROM务必告诉编译使用的扇区

我去参考下
回复

使用道具 举报

14

主题

62

回帖

104

积分

初级会员

积分
104
发表于 2021-5-13 09:44:58 | 显示全部楼层
这个很简单啊,中断向量表里面,找个空位写入版本号就可以了
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-28 02:49 , Processed in 0.311536 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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