Thread 中讨论的其他器件:SysConfig
工具/软件:Code Composer Studio
您好!
我有以下问题。 一个特定的程序总是以如下所示的错误消息停止。 我已删除所有断点。 我意识到、当闪存另一个程序时、问题不会出现。
该程序构建于 Project Zero 示例之上、该示例使用时间数字转换器集成了传感器控制器、并通过蓝牙发送数据。
这里的错误可能是什么? 是否有任何解决方案?
非常感谢。
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.
工具/软件:Code Composer Studio
您好!
我有以下问题。 一个特定的程序总是以如下所示的错误消息停止。 我已删除所有断点。 我意识到、当闪存另一个程序时、问题不会出现。
该程序构建于 Project Zero 示例之上、该示例使用时间数字转换器集成了传感器控制器、并通过蓝牙发送数据。
这里的错误可能是什么? 是否有任何解决方案?
非常感谢。
您好!
此错误通常由调试探针和目标板上器件之间的断开连接引起、下面的调试 JTAG 页面中显示了一些故障排除技巧:
https://software-dl.ti.com/ccs/esd/documents/ccs_debugging_jtag_connectivity_issues.html
如果您同时进行 UART 通信、则存在与此方案相关的未解决错误(EXT_EP-9768)-在下面的签名中检查其在链接 SIR 中的状态。
希望这对您有所帮助、
拉斐尔
您好!
感谢您的重播。 我有一个 UART 通信、因此这可能是问题所在。 我访问了您的链接、但我找不到未解决的错误。
是否可以将 direkt 链接发布到错误?
非常感谢。
您好!
抱歉、我输入了错误的错误代码。 我在上面修复了这个问题。
此致、
拉斐尔
您好!
现在我再也看不到你签名下面的 SIR 链接了。 它消失了。
您好!
有趣;链接在我的签名中为我显示。
无论以何种速率、直接链接都是:
https://sir.ext.ti.com/jira/browse/EXT_EP-9768
此致、
拉斐尔
您好!
我发现问题是将传感器控制器代码集成到 Code Composer Studio 中。
我使用 HWI 读取传感器控制器内存、这使我遇到了上述问题。
现在、我更改为用于集成传感器控制器的 SWI。 现在工作正常。 但又出现了另一个问题。
我也使用 SWI 作为周期性时钟、它通过蓝牙发送数据。 我想、如果不发送数据、一切都正常、但如果我切换时钟、程序会像以前一样再次显示错误。 我认为必须有一个优先问题。 如何更改其中一个中断的优先级? 在特定时间点或特定频率下发送数据的另一种方法是什么?
我认为、较高的优先级是将 AUX RAM 中的所有数据复制到主 RAM 中、发送数据只需在下一次复制操作之前的一段时间内发生。
我希望有任何解决办法。
谢谢
您好!
感谢您报告您的调查结果;在我们的调查过程中、开发人员和我们都发现它与正在运行的应用程序紧密相关、可以轻松地将器件丢弃。 这与您的观察结果相符。
无论如何、由于您看到的新问题涉及软件的其他部分、因此我将通知器件专家、因为他们比我更了解自己的软件
此致、
拉斐尔
高 VV、
您能否分享/详细说明您将 SWI 用于 SC 和时钟用途? 您在软件方面使用的确切模块是什么?您如何使用它们?
应用中是否有任何其他可以很好地了解的组件、例如启用了看门狗还是类似的组件?
您好!
我的项目基于 simplelink_cc13x2_26x2_SDK_3_40_00_02的 Project Zero 示例。
要在 CCS 中集成 SC、我遵循中的指令:
http://software-dl.ti.com/lprf/simplelink_academy/modules/sc_01_project_from_scratch/sc_01_project_from_scratch.html#bonus-tasks-1-ndash-integrate-with-ble
该程序非常简单、可以广播、从传感器控制器获取数据并发送数据。
我在晚上做了一些更长期的测试。 我注意到、当我发送数据时、如果系统集成了 SC、系统不会中断。
即使我没有发送任何数据、集成的传感器控制器也会显示错误。 它需要几分钟到几个小时的时间、直到它停止运行。
我的传感器控制器以1kHz 的频率进行采样、并使用2个缓冲器、当数据传输到主 CPU 时会交换这些缓冲器。 每个缓冲区的大小为800个值。 因此、它大约每0.8s 中断一次 CCS 程序。
主程序每200ms 发送一次通告。
我没有使用 whatchdog。 我想不到我改变的任何其他东西。 我刚刚写下了我的代价剖面。
这是我的与传感器控制器集成相关的代码
静态空 ProjectZero_init (void) { //初始化 SCIF 操作系统抽象层 scifOsalInit(); scifOsalRegisterCtrlReadyCallback (scCtrlReadyCallback); scifOsalRegisterTaskAlertCallback (scTaskAlertCallback); //初始化 SCIF 驱动程序 scifInit (&scifDriverSetup); //设置传感器控制器任务节拍间隔 uint32_t N = 1000;// 1kHz RTC ->不确定! //启用 RTC 节拍,节拍间隔为 N Hz scifStartRtcTicksNow (0x00010000 / N); //启动"ReadCap"传感器控制器任务:传感器控制器开始测量 scifStartTasksNbl (1 << SCIF_READ_CAP_TASK_ID); } // SCIF 驱动程序回调:任务控制接口就绪(非阻塞任务控制操作完成) 静态空 scCtrlReadyCallback (void) { //通知应用程序`控制就绪`已激活 ProjectZero_enqueueMsg (app_MSG_SC_CTRL_READY、NULL); }// scCtrlReadyCallback 静态空 scTaskAlertCallback (void) { //通知应用程序`任务警报`已激活 ProjectZero_enqueueMsg (app_MSG_SC_TASK_ALERT、NULL); }// scTaskAlertCallback 静态空 processTaskAlert (void) { //清除警报中断源 scifClearAlertIntSource(); //... 在此处访问传感器控制器任务数据结构... 一个示例 //对于每个可用的输出缓冲器... while (scifGetTaskIoStructAvailCount (scif_read_cap_task_ID、 SCIF_STRUCT_OUTPUT)> 0) { scif_read_cap_output_t* pOutput = scifGetTaskStruct ( SCIF_READ_CAP_TASK_ID、SCIF_STRUCT_OUTPUT); 对于(int n = 0;n < scif_read_cap_buffer_size;n++) { data_array[n]= pOutput->tdcBuffer[n]; } //将缓冲器发回传感器控制器 scifHandoffTaskStruct (scif_read_cap_task_ID、scif_struct_output); } //确认警报事件 scifAckAlertEvents(); }// processTaskAlert
我希望这对您有所帮助。 请告诉我您需要的任何其他信息。
非常感谢。
高 VV、
上面给出的代码对我来说似乎是可以的、我看不到任何明显的错误。 是否可以共享有问题的失败项目以便我自己运行?
您好、M-W、
如果项目处理更加私密、则可以与您共享。 如何做到这一点?
高 VV、
如果您不想在此处公开共享项目、您可以在 PM 中将项目私下发送给我。
高 VV、
只需提供并更新我当前正在查看的示例代码即可。
高 VV、
仍在寻找问题的根本原因。 简而言之、所发生的情况是 VDDR 欠压导致器件复位。 我现在想弄清楚的问题是您为什么要获得它。 它似乎未连接到 SC 或 BLE、但这两者的这种特殊组合。
感谢您的更新。
我非常感谢您为此付出了如此多的努力。 )
很抱歉、我说我不会。 我尝试逐步隔离原因、但到目前为止、我很难找到导致它的确切组合。 由于无法访问实验室设备(因为我只能在家工作)、我在执行测试时也会遇到一些延迟、以便尝试准确了解出现此问题时会发生什么情况。
但是、我仍在办公桌上运行各种不同的软件、以评估不同的组合。
您好!
很抱歉再次询问。 您是否取得了任何进展?
时间正在运行、我需要完成项目。 如果你找不到错误的地方,我是否可以让它运行? 我认为这项工作相当简单,必须有办法来完成。
MCU 专为使用传感器控制器和蓝牙而设计、因此必须有解决方案。 是否有任何使用 MCU 的示例同时使用这两个示例?
非常感谢。
不用担心、我知道您正在等待反馈。
我的"桌面"测试没有真正产生任何比我们已经知道的结果更好的结果。 在某些情况下会发生复位、它似乎与 VDDR 欠压相关。 我最近(实际上是今天)访问了远程设置、以便我与软件一起进行一些硬件测量、看看这是否可以进一步给我们带来启发。
您所做的实际上不应该是一个问题、我实际上可以在您的项目中找到的唯一错误是您将 SC 项目设置为在低功耗模式下工作、这在使用 TDC 等时不受支持 我确实将其移至我身边、因为这似乎不是您问题的根本原因。
我应该在一天或两天内就我的硬件测量结果提供一些反馈。
高 VV、
快速更新后、我已着手进行一些远程测试、但我在另一侧遇到了 LP 问题、至今未能产生任何良好的结果。 但是、我仍在进行这方面的工作。
高 VV、
更新、让设置远程运行、虽然我可以在使用调试器电源运行时重新创建问题、但外部电源似乎不是很频繁、因为我在超过24小时的时间内没有看到崩溃。 但是、我在实验室计算机上运行了强制的 IT 安全更新、因此我必须再次重新启动测试...
希望周末可以单独使用、以便更好地了解它如何与外部电源配合使用。
您好!
测试是如何进行的?
它是否可与外部电源配合使用?
高 VV、
本周末结束了我的最新测试、结果是分开的。 这似乎与所涉电路板上的电源有关、而不是与代码有关。 简而言之、我只能在连接调试器并由同一电路板供电时看到问题。 一旦电源来自另一个电路板(断开3V3跳线并将3V3中的另一个 LP/电源连接到芯片)、这似乎不是问题。
到目前为止、我想弄清楚这可能是什么原因、但如果您能尝试做同样的事情、那将会很好。
非常感谢。
如果您断开调试器并 使用电路板电源、它是否会运行? 这对我也不起作用。
我将在 本周结束时试用您的测试版本。
高 VV、
如果我启动应用程序并断开调试器、它似乎也可以正常运行(至少在最后24小时内运行)。 但是、我注意到应用程序依赖 BIM 从冷启动中启动(我想它基于 Project Zero?)。
您好!
是的、它基于 Project Zero。
确实、调试器断开连接时不会出现问题、但蓝牙数据将停止发送。 我认为出现了同样的问题、但我们看不到、因为调试器断开连接。
您是否尝试使用蓝牙和传感器控制器实现了另一个示例项目? 这将是一个尝试的选项。 我使用 simple_peripheral 项目进行了测试、但集成传感器控制器时结果相同。
如果这是两个元件都正常运行的任何示例、我可以将数据放入该代码中。
我有点相信、我是第一个遇到此问题的人、因为传感器控制器的制造正是为了满足这两个要求、即通过蓝牙将数据从传感器控制器传输到笔记本电脑。 您没有运行任何示例吗?
高 VV、
我将尝试为您提供另一个项目、您可以在我有时间将其组合在一起后立即将其作为基础。 问题本身非常奇怪、您是我遇到过的唯一一个问题、在我的所有情况下、器件在整个测试期间继续工作(在 BLE 上进行广播等)、我从未看到它停止运行 (在同一电路板上加电+调试器时除外)。
这种组合有很多项目和用户、您是我知道的第一个出现类似此类错误的人。 如前所述、使用案例是有效的、在这种情况下会发生一些时髦的事情。
您好、M-W、
我发现导致错误的原因。 传感器控制 器使用时间数字转换器来测量基于 RCOSC 时钟的96MHz 时间。 该时钟也用于 TI-RTOS、因此程序已崩溃。 使用 XOSC 时钟时、一切工作正常。
在技术参考手册 Manuel 第19.4.5.1部分中、提到两个器件都使用相同的时钟。
如果在 Sensor Controller Studio Manuel 中也提到这一点,那将会非常有帮助。
非常感谢您为我所做的一切。 )
高 VV、
奇怪的是、如果您说的是 RCOSC、那么在两侧使用 RCOSC 应该没有问题? 在 XOSC 为您工作的情况下、它可能与 RCOSC 相关。 您是否更改了 TDC 源设置为 XOSC?
如果您提到 TI-RTOS 和 SCE 都可以使用 TDC 并且需要遵循资源共享要求、那么这在您的代码中似乎不是问题、并且是 TI-RTOS 驱动程序的一部分。
[报价用户="M-W"]您是否更改了 TDC 源设置为 XOSC?
是的、确实如此。 但我的 XOSC 只提供48MHz、但需要96MHz。
[引用 user="M-W"]如果您提到 TI-RTOS 和 SCE 都可以使用 TDC 并且需要遵循资源共享要求,则这似乎不是您的代码中的问题,而是 TI-RTOS 驱动程序的一部分。
相关知识。 那么、您还有其他想法吗?
任何时钟都应该正常、这可能是一个时序问题、这在 RCOSC 中更为突出(因为 TI-RTOS 会使用 TDC 来校准它)。
您可以尝试以下几项操作:
1) 1)在 TI-RTOS 中关闭 RCOSC 校准、并查看这是否使其在使用 RCOSC 时正常工作。 您可以通过将电源驱动器配置中的"do calibration"设置为 false 来实现此目的。
2)修改" /proc_def/TDC_disable__1_1.asm、并在"中止 TDC"和"禁用 TDC 时钟"之间添加了大量(可能为40-50)"NOP"。 换句话说、在"OUT"指令之后。
3) 3)在 fwAcquirePeripheral()之后添加几 ms (可能为50 ish)延迟。
您认为您可以逐一尝试这些东西吗?
谢谢、是的、我会尝试一下。
[引用用户="M-W"]
2)修改" /proc_def/TDC_disable__1_1.asm、并在"中止 TDC"和"禁用 TDC 时钟"之间添加了大量(可能为40-50)"NOP"。 换句话说、在"OUT"指令之后。
3) 3)在 fwAcquirePeripheral()之后添加几 ms (可能为50 ish)延迟。
[/报价]
这两个选项没有发生任何变化。
[引用 USER="M-W]1)在 TI-RTOS 中关闭 RCOSC 校准、并查看这是否使其在使用 RCOSC 时起作用。 您可以通过将电源驱动程序配置中的"do calibration"设置为 false 来执行此操作。
在什么文件中、您的意思是什么?
我看了一下:TI_drivers_config.h、ti_drivers_config.c、PowerCC26X2.h、PowerCC26X2.c 和其他一些、但没有任何可更改的布尔"执行校准"。
当您似乎正在使用 SysConfig 时、"Power"选项卡中应该会有复选框、允许您打开 RCOSC_LF/HF 校准。
我尝试过它、但它没有改变任何东西。 程序仍会崩溃。
好的。
休假回来后、我会继续关注这一点。 很抱歉给您带来不便!