This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC1352R:向简单外设应用添加片上 OAD 功能时出现问题

Guru**** 2577385 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/943415/cc1352r-problem-with-adding-on-chip-oad-function-to-simple-peripheral-application

器件型号:CC1352R

SDK:  simplelink_cc13x2_26x2_sdk_4_20_00_35

CCS: Code Composer Studio 10.0.0

尽管我知道 simple_peripheral_oad_onchip_app 存在、但我仍然尝试将片上 OAD 添加到简单外设应用中。 我执行 Simplelink Academy 中的步骤:任务3–将 OAD 添加到多角色、并参阅 simple_peripheral_oad_onchip_app 示例项目。 如果我根据 simple_peripheral_oad_onchip_app.cfg 修改 simple_peripheral_app.cfg、修改如下:

var OAD_IMG_TYPE;
var use_secure_fw_IMG = false;

if (Program.build.cfgArgs!= null)
{
if (typeof Program.build.cfgArgs.OAD_IMG_A!='Undefined"&&
program.build.cfgArgs.OAD_IMG_A = 1)
{
OAD_IMG_TYPE ="A";
}
否则(typeof Program.build.cfgArgs.OAD_IMG_B!='Undefined'&&
program.build.cfgArgs.OAD_IMG_B = 1)
{
OAD_IMG_TYPE ="B";
}



//将复位矢量置于 OAD 元数据之后*/
var compilerOpts = prog.build.target.ccopts.prefix;//获取目标编译器选项
var regex =/(?:\-\-define\=)(\w*)(?\=*\w*\s)/cfgcompileredvecrs =

0x000a (parmr

= 0x000a)/r ed.edr = 1) r edr a (parmr = 1) r = 0x000r edr a (parm.r = 1) r a (parmr) r = 1)

r edr = 1) r edr edr a (parmr = 1) r r r r r r r r r edr r r r a (parmr = 1 (inu.edr a
rom.constStructAddr = 0x37000;
rom.externFuncStructAddr = 0x373C0;
}
否则、如果(Program.build.cfgArgs.OAD_IMG_B = 1)//(OAD_IMG_TYPE ="B")
{
如果(compilerDefs.indexOf('SECURITY')>-1)
{
//检查安全编译器符号
m3Hwi.resetVectorAddress = 0x90;//图像 B 复位矢量地址
}
否则
{
m3Hwi.resetVectorAddress = 0x50;//图像 B 复位矢量地址
}
rom.constStructAddr = 0x01000;
rom.StructFuncSexterntAddr = 0x013c0;
}
否则
{
//将复位矢量放置在闪存开始位置*
/ m3Hwi.resetVectorAddress = 0x0;
} 

在修改后构建简单外设应用程序时、我遇到了以下错误:

workspace_v10/simple_peripheral_CC13X2R1_LAUNCHXL_tirtos_ccs/simple_peripheral_app.cfg、第262行:类型错误:无法从空(E:/TIC1352R/workspace_v10/simple_peripheral_CC13X2R1_LAUNCHXL_IMG_A)读取属性"OAD_IMG_A"(E:/TIC1352R/workspace_v10/simple_peripheral_ccs_rtos_ccs_r262_r262)
"./package/cfg/simple_peripheral_app_pem4f.cfg,第192行
gmake.exe:***[package.mak:202:package/cfg/simple_peripheral_app_pem4f.xdl]错误1
JS:"c:/ti/ccs1000/xdctools_3_61_00_16_core/packages/xdc/tools/Cmdr.xs、第52行:错误:xdc.tools.configuro:由于先前的错误(状态= 2)、配置失败;已删除'linker.cmd'。
gmaking[1]:***[Build-634555279-InProC]错误1.
gmake:***没有使目标'build-634555279"的规则,'configPkg/compiler.op'需要。
gmake:***没有使目标'build-634555279"的规则,'configPkg/linker.cmd'需要这些规则。
gmake:***没有使目标'build-634555279"的规则,'configPkg/compiler.op'需要。
gmake:***没有使目标'build-634555279"的规则,'configPkg/compiler.op'需要。
gmake:***没有使目标'build-634555279"的规则,'configPkg/compiler.op'需要。

但是、当我根据 Simple Simplelink Academy 使用简化版本时:任务3–将 OAD 添加到多角色(添加片外 OAD)、修改如下:

/*在 OAD 元数据之后放置复位矢量*/
var compilerOpts = prog.build.target.ccopts.prefix;//获取目标编译器选项
var regex =/(?:\-define\=)(\w*)(?:\*\w*\s)/g;
var compilerDefs =[];
while (\deferpush = 1)(vert.tmp =(!)(compilerexec.defs =)(verts =)(verts (verts =)(vert.defs)(!) //解析编译器符号

(如果(compilerDefs.indexOf('SECURITY')>-1){//检查安全编译器符号
m3Hwi.resetVectorAddress = 0x90;//图像 B 复位矢量地址
}
否则{
m3Hwi.resetVectorAddress = 0x50;//图像 A 复位矢量地址
} 

一切都好。 我可以成功构建和链接并生成 OAD bin 映像。 我不知道为什么根据 simple_peripheral_oad_onchip_app.cfg 使用修改、但无法成功构建。 有什么建议吗?  

谢谢你。

BRS。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我会指派某人来帮助您。

    谢谢、

    Luis

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    以下 e2e 线程上的用户与您有相同的问题、但遗憾的是未提供有关该解决方案的更多详细信息。

    https://e2e.ti.com/support/wireless-connectivity/bluetooth/f/538/t/909290

    也就是说、根据我的经验、此错误通常有点难以捉摸、可能是源于之前构建的剩余文件、或者是传递到.cfg 文件的无效参数。 鉴于您的情况、我强烈怀疑第二种选择。

    为了完全确定这个问题、我必须测试您所做的修改、但是、由于转换远远超出.cfg 文件的范围、因此我最终的任何结果都可能没有结果。 有鉴于此、我认为、如果您能够比较两个文件的任何特定语法、两个.cfg 文件之间的复制/粘贴错误、效率会更高。 幸运的是、CCS 有一种非常好的方法来比较这些文件、如下面的短片所示。

    https://www.youtube.com/watch?v=VLGjd5KmkYQ

    希望这对您有所帮助、

    拉斐尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Rafael:

    可以通过在 XDCtools->Advanced Options 中添加 cfgArgs{OAD_IMG_B:1}来解决该问题。 谢谢。

    BRS。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    感谢您的回复。 这肯定会在将来帮助其他开发人员。

    此致、

    拉斐尔