0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何创建独立于platform版本的应用

桃芯科技 来源:桃芯科技 2026-04-28 09:28 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一般情况下,app 调用 platform API 时,直接使用 API 的函数地址,当 platform 升级时,API 地址改变,app 必须重新编译。 从 SDK v8.5.4 开始,开发者可以创建与 platform 版本独立的应用:允许单独升级 platform,app 不重新编译、不升级,可直接兼容新版 platform,功能正常。

局限性:

当 platform 大规模升级或者修改接口时,仍可能出现不兼容;

每次 API 调用都需要增加额外操作,功耗可能略有增加。

本文介绍这种 app 的创建和开发方法。

以“Copy to My Project”的方式新建项目

建议以 “Copy to My Project” 的方式新建项目。

使用脚本修改platform.bin

调用脚本修改 platform.bin。这个脚本在 platform.bin 的结尾追加 API 函数地址表, 并生成 API 代理入口。

导致 platform 与 app “不兼容”的原因主要有:

API 被删除(一般不会发生)

API 接口改变(一般不会发生)

platform 体积变大,与 app 冲突(问题 1)

platform 使用的内存变多,与 app 的内存重叠(问题 2)

对于问题 1,脚本允许开发者把 app 的烧录、启动地址后移,为将来 platform 变大预留空间; 对于问题 2,脚本允许开发者为 platform 预留一定量的内存空间:使后续版本使用的内存增加,只要不超过所预留的空间,兼容性仍能保持。

脚本在运行时会询问这两个问题,并按照开发者的要求相应修改。假设使用的软件包所在目录为/path/to/sdk/bundles/typical/ING9188xx, 可如下运行脚本:

python mk_api_table.py /path/to/sdk/bundles/typical/ING9188xx

脚本将为多种编译环境生成

/path/to/sdk/bundles/typical/ING9188xx/_api_table.*汇编文件。

更新项目

打开项目,从项目中删除sysdes.*文件, 根据编译器类型选择合适的/path/to/sdk/bundles/typical/ING9188xx/_api_table.*汇编文件,加到项目。

后续的开发过程正常进行,不需要额外设置。

升级SDK

升级 SDK 后,重新运行脚本。脚本运行过程中会自动检查上述问题 1 和 2 相关的兼容性,如果无法兼容,会输出错误信息。

烧录新的platform.bin即完成升级。

文中的脚本链接: https://ingchips.github.io/files/mk_api_table.py

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • platform
    +关注

    关注

    0

    文章

    20

    浏览量

    17816
  • SDK
    SDK
    +关注

    关注

    3

    文章

    1112

    浏览量

    52027
  • 脚本
    +关注

    关注

    1

    文章

    412

    浏览量

    29277

原文标题:《软件设计指南》之六-创建独立于 platform 版本的应用

文章出处:【微信号:INGCHIPS_OFFICIAL,微信公众号:桃芯科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    请问ADXL373有独立于平台的标准C语言驱动代码吗?

    请问ADXL373有独立于平台的标准C语言驱动代码吗?谢谢
    发表于 12-19 06:40

    四路独立于触开关电路

    四路独立于触开关电路本文所应用到的相关器件资料: TC9130P    600) {i=this.width; j
    发表于 09-18 14:26

    CCS5.2不能识别自己创建Platform

    CCS5.2.1我自己新建了一个Platform,名字是myBoard,放在了软件安装目录下的...\ccsv5\ccs_base;General -> RTSC- > Other Repositories也添加了路径,但是Platform选项列表下找不到我自己
    发表于 06-21 15:06

    模块是否独立于运行程序?

    嗨,只是关于18F450的CCP模块的一对问题。我将使用PIC的CCP模块在捕获模式下。第一个问题是:模块是否独立于运行程序?换句话说,如果我有延迟或耗时的程序,捕获是受影响还是继续计数?第二个
    发表于 10-25 11:34

    独立于内核的fireflyP GPIO使用方法介绍

    1、fireflyP的GPIO使用fireflyP的GPIO使用独立于内核的gpio接口,即两边的控制互相独立。所以在控制GPIO时,要注意内核是否申请和控制了该GPIO,重复控制会导致不可预计
    发表于 06-14 17:59

    独立于操作系统的RS_485通信支持_陆志才

    独立于操作系统的RS_485通信,學習單片機485通信的好資料!!!!
    发表于 06-06 10:00 0次下载

    独立于内核的外设(CIP)介绍

    使用这些独特的外设来简化设计,开发出具有创意的应用和产品。这些独立于内核的外设可使单片机增加功能,提高性能,同时不会增加处理器的负担。
    的头像 发表于 06-07 13:46 6656次阅读
    <b class='flag-5'>独立于</b>内核的外设(CIP)介绍

    Xilinx A7芯片内部独立于逻辑单元的专用存储器

    本篇主要总结的是块状Memory(Block Memory),实际上就是FPGA内部独立于逻辑单元的专用存储器,更像是一种硬核。
    发表于 12-08 11:05 3391次阅读

    采用独立于内核的外设实现真正的直流RMS测量

    本技术简介演示了一种解决方案,该解决方案使用 PIC18 单片机上独立于内核的外设(Core IndependentPeripheral,CIP)来测量周期性直流波形的真正直流 RMS。由于使用 CIP 实现了求平均值运算、频率校准和数据传输,因此该项目使用的代码和 CPU 周期更少。
    发表于 03-30 15:34 8次下载
    采用<b class='flag-5'>独立于</b>内核的外设实现真正的直流RMS测量

    使用单个比较器实现独立于内核的电压窗口信号检测

    本技术简介介绍了一种实现独立于内核的电压窗口信号电平检测(无需软件内核监控,与ADC的情况相同)的替代方法,该方法使用单个比较器以及PIC®单片机的独立于内核的外设(Core Independent
    发表于 03-30 16:36 9次下载
    使用单个比较器实现<b class='flag-5'>独立于</b>内核的电压窗口信号检测

    AVR单片机上的独立于内核的外设入门指南

    独立于内核的外设(Core Independent Peripheral,CIP)是许多 AVR®器件上都会配备的一类外设。本应用笔记将重点介绍 tinyAVR® 1 系列,其中的一般原理适用于所有配备 CIP 的器件,只有在外设特性和设计方面存在一些差异。
    发表于 03-31 10:09 5次下载
    AVR单片机上的<b class='flag-5'>独立于</b>内核的外设入门指南

    使用ATtiny1617上独立于内核的可配置定制逻辑实现夜灯

    本应用笔记介绍了如何使用独立于内核的可配置定制逻辑(CCL)对不同传感器的输入进行滤波以及如何使用 Microchip AVR®器件、被动红外(PIR)传感器、环境光线传感器和 16 个可寻址 RGB LED 创建特定通信协议。许多外设被配置为可不依赖于 CPU 协同工作
    发表于 04-01 14:03 6次下载
    使用ATtiny1617上<b class='flag-5'>独立于</b>内核的可配置定制逻辑实现夜灯

    创建Magic 8 Ball的数字版本

    电子发烧友网站提供《创建Magic 8 Ball的数字版本.zip》资料免费下载
    发表于 07-11 10:56 0次下载
    <b class='flag-5'>创建</b>Magic 8 Ball的数字<b class='flag-5'>版本</b>

    利用独立于内核的外设实现稳健去抖

    电子发烧友网站提供《利用独立于内核的外设实现稳健去抖.pdf》资料免费下载
    发表于 09-19 16:36 0次下载
    利用<b class='flag-5'>独立于</b>内核的外设实现稳健去抖

    使用独立于内核的外设实现降压转换器设计和反馈控制器

    电子发烧友网站提供《使用独立于内核的外设实现降压转换器设计和反馈控制器.pdf》资料免费下载
    发表于 01-15 15:31 0次下载
    使用<b class='flag-5'>独立于</b>内核的外设实现降压转换器设计和反馈控制器