硬汉嵌入式论坛

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

[MDK] iap和app怎么互通信息?

[复制链接]

335

主题

2040

回帖

3050

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3050
发表于 2020-1-9 09:32:15 | 显示全部楼层 |阅读模式
最近研究iap和app,想着像一般的软件那样,iap执行下载前,先去读取一下app里面的软硬件版本号;
还有,app在运行时,也可以读取到iap的版本号。

这个应该怎么做呢? 用constant 类变量存储版本号以后,编译后的flash地址都不固定啊?

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2020-1-9 09:45:33 | 显示全部楼层
EEPROM或者内部Flash模拟EEPROM,或者直接指定版本号到一个固定的flash地址均可。
回复

使用道具 举报

29

主题

514

回帖

606

积分

金牌会员

积分
606
QQ
发表于 2020-1-9 13:36:15 | 显示全部楼层
1、首先你要把片内的ROM规划好。 IAP 区域、APP区域、data 区域、env区域、隐私数据区域等等。
2、IAP程序运行,首先是判断一些数据区域是否为空,为空就从头到位去升级,并且创建env 和版本信息。
3、如果IAP运行有数据,在校验合法性,选择性更新。
4、APP运行,首先是去那通用data去初始化,如果首次初始化,就直接执行恢复出厂。
5、APP运行起来后,执行核心模块功能时,还可以校验隐私数据,校验不通过,可以短斤缺两,不运行或者运行一小部分功能(算是自定义的保护)。
Releasing your creativity
回复

使用道具 举报

4

主题

144

回帖

156

积分

初级会员

积分
156
发表于 2020-1-9 15:55:00 | 显示全部楼层
有一个最简单的方法,绝对地址法;const u8 PlatInfo[12] __attribute__((at(0x08003000))) = {'C','J','M','_','V','1','.','x','\0','\0','\0','\0'};
回复

使用道具 举报

4

主题

26

回帖

38

积分

新手上路

积分
38
发表于 2020-1-9 21:41:12 | 显示全部楼层
芯片没有复位,可以直接写在一个指定的RAM地址里面,IAP和APP都知道这个指定的RAM就可以读取数据了啊,稳定性不用担心,嵌入式的UBOOT和LINUX之间传递bootargs也是用这种办法
回复

使用道具 举报

335

主题

2040

回帖

3050

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3050
 楼主| 发表于 2020-1-10 19:10:37 | 显示全部楼层

a

本帖最后由 caicaptain2 于 2020-1-10 19:32 编辑
zbianbiaos 发表于 2020-1-9 21:41
芯片没有复位,可以直接写在一个指定的RAM地址里面,IAP和APP都知道这个指定的RAM就可以读取数据了啊,稳定 ...

第一次上电的时候,app还没有开始运行过,没法子往共享ram中写数据啊。   倒是iap先运行,app运行后,再读取iap的数据没有问题的。
回复

使用道具 举报

335

主题

2040

回帖

3050

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3050
 楼主| 发表于 2020-1-10 19:11:05 | 显示全部楼层
廷润 发表于 2020-1-9 13:36
1、首先你要把片内的ROM规划好。 IAP 区域、APP区域、data 区域、env区域、隐私数据区域等等。
2、IAP程序 ...

请教一下,怎么校验合法性?
有没有什么方法推荐一下子
回复

使用道具 举报

335

主题

2040

回帖

3050

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3050
 楼主| 发表于 2020-1-10 19:17:00 | 显示全部楼层
浴火重生 发表于 2020-1-9 15:55
有一个最简单的方法,绝对地址法;const u8 PlatInfo[12] __attribute__((at(0x08003000))) = {'C','J','M' ...

由于rom区有很多执行代码,这个地址定义的这么小,会不会混合到代码区了?会不会出错?

另外,随着程序功能的增加,也不知道rom的执行代码区会用到哪个地址啊。
回复

使用道具 举报

29

主题

514

回帖

606

积分

金牌会员

积分
606
QQ
发表于 2020-1-14 09:40:04 | 显示全部楼层
caicaptain2 发表于 2020-1-10 19:11
请教一下,怎么校验合法性?
有没有什么方法推荐一下子

方法比问题多太多了,你加我QQ:1084156885   Trun
Releasing your creativity
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 07:01 , Processed in 0.216968 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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