Part Number:LP-EM-CC2340R5Other Parts Discussed in Thread:UNIFLASH
data-stream代码是从下面链接中下载的
https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1263726/cc2340r5-uart-to-ble-bridge-example-based-on-the-official-data-stream-one-from-ti
在App_StackInitDoneHandler中调用DataStream_start();目前现象是simplelink扫描到广播信息,但是很快就消失了。应该是广播数据启动后被停止。
目前只有一块开发板,代码是使用mcuboot+persistent+oad-onchip三部分的形式烧写,麻烦提供一下调试思路,非常感谢!
Galaxy Yue:
您好,
是希望合并到一个project里去OAD吗?
您的问题我将为您升级处理,有消息立即通知您。
,
Xuefeng:
Galaxy Yue 说:
是希望合并到一个project里去OAD吗?
是的。
非常感谢!
,
Galaxy Yue:
SDK是最新的吧?
,
Xuefeng:
SDK是用的simplelink_lowpower_f3_sdk_7_20_00_29最新的好像是simplelink_lowpower_f3_sdk_7_20_01_10
,
Galaxy Yue:
ok
,
Galaxy Yue:
您能否提供有关三部分所面临的调试问题的更多信息?
通常,拥有三个独立的项目将有助于拆分 MCUBoot 结构的不同部分,并且应该易于调试。
,
Xuefeng:
广播中断是因为合并的过程中Uart部分逻辑冲突,导致打开Uart失败。
另外我想问一下,Uniflash烧写三部分代码后,我如何用CCS去调试第三部分的代码?
,
Galaxy Yue:
把您合成的hex文件放上来,有利于复现
然后需要一些您更加具体的操作流程
Xuefeng 说:Uniflash烧写三部分代码后,我如何用CCS去调试第三部分的代码?
这个是合成一个hex 然后需要调试oad-onchip吗?
,
Xuefeng:
Galaxy Yue 说:
把您合成的hex文件放上来,有利于复现
这个不需要复习问题了,oad-onchip功能已经完成。
Galaxy Yue 说:这个是合成一个hex 然后需要调试oad-onchip吗?
第三部分代码有我自己修改的内容,想要对这部分内容进行调试。
,
Galaxy Yue:
这个内容可以通过邮箱给出吗?
Xuefeng 说:第三部分代码有我自己修改的内容
那现在关于调试方面 的信息
1.调试发现有冲突
Xuefeng 说:广播中断是因为合并的过程中Uart部分逻辑冲突,导致打开Uart失败。
2.第三部分代码有我自己修改的内容 不知从何调试
Xuefeng 说:如何用CCS去调试第三部分的代码
,
Xuefeng:
Galaxy Yue 说:
这个内容可以通过邮箱给出吗?
可以邮箱发出,麻烦给给邮箱地址。
,
Galaxy Yue:
给您发过邮件了,请注意查收。
,
Xuefeng:
好,等我整理一下发给你。
,
Galaxy Yue:
好的
,
Galaxy Yue:
请问您把流程梳理好了吗?
,
Xuefeng:
1.修改flash_map_backend.h
#define BOOT_PRIMARY_1_BASE_ADDRESS0x00006000#define BOOT_PRIMARY_1_SIZE0x0002c000#define BOOT_SECONDARY_1_BASE_ADDRESS0x00032000#define BOOT_SECONDARY_1_SIZE0x0004a0002.分别编译mcuboot、persistent和oad-onchip工程
3.用uniflash烧写三个工程
4.期望用ccs调试oad-onchip工程
,
Galaxy Yue:
3.是分开烧录吗
4.是调试单独的oad-onchip还是?
,
Xuefeng:
3、分开烧录
4、调试oad-onchip这个工程,我自己添加的内容都在这个工程里。
,
Galaxy Yue:
好的,明白。有消息立即通知您
,
Galaxy Yue:
我发现这个线程听起来可能与您在调试 OAD-onchip 示例时面临的相同/相似问题。 我建议您检查此线程,然后让我知道它是否有用,我可以努力寻找另一个解决方案!
,
Xuefeng:
这个有什么方法调试oad-onchip这部分的代码吗?现在的程序需要和另外一个应用通讯,使用了uart口,不方便看打印了。
,
Galaxy Yue:
已经为您跟进,有消息立马通知您
,
Xuefeng:
你好,问题已经解决。
不过还是希望可以提供在分三部分烧写flash的情况下,如何用CCS调试第三部分程序。
,
Galaxy Yue:
明白
,
Galaxy Yue:
您能否澄清一下您正在尝试调试 oad-onchip 代码的哪一部分? 我不确定我是否完全理解你的意思!
您还可以提供当前程序需要与之通信的其他应用程序的一些详细信息吗?
,
Xuefeng:
oad-onchip部分代码后续还有很多要调试,主要是在串口通信,也就是data-stream这一部分。
BLE是作为中间通信模块用,移动端和另外一个应用通过BLE交换数据。
,
Galaxy Yue:
好的
,
Galaxy Yue:
您目前在调试串口通信的data_stream部分时遇到什么问题?
,
Xuefeng:
data_stream部分目前没有什么问题了。以后肯定有很多内容需要调试。
,
Galaxy Yue:
如果您有问题可以提出,目前没有的话我就关闭这个thread了。遇到问题可以再来论坛交流
,
Xuefeng:
第三部分的代码如何用CCS调试?这个有结果了吗?
,
Galaxy Yue:
在我把您的问题post上去之后,回答您的就是来自工程师的回复。
我会再次询问一下
,
Xuefeng:
期望能有具体的调试方法的回复。
,
Galaxy Yue:
有消息会通知您的
,
Xuefeng:
Galaxy Yue 说:您目前在调试串口通信的data_stream部分时遇到什么问题?
现在需要调试SNV,我加入了代码,但是没有得到我想要的结果,不确定是没写入还是读取错误了。
,
Galaxy Yue:
是在data_stream部分加了代码吗?加在哪个位置 需要什么样的结果,目前得到什么样的结果
,
Xuefeng:
https://e2echina.ti.com/support/wireless-connectivity/bluetooth/f/bluetooth-forum/797432/cc2340r5-oadresetdevice 中提的问题,在那个帖子里讨论吧。
,
Galaxy Yue:
以下是我建议调试 basic_ble_oad_on_chip 项目时遵循的步骤
I- 构建映像、刷新设备并连接调试器构建 basic_ble_oad_on_chip 应用程序单击“调试”按钮 – 这会导致调试器擦除设备的闪存,然后下载新构建的映像这将导致 JTAG 通信错误:(错误 -615 @ 0x0)。 这是由于未对 MCUBoot 映像进行编程导致地址 0x0 处的代码无效在“调试”窗口中,右键单击“Texas Instruments XDS110 USB 调试探针”,然后单击“连接目标”
II- 启用“内存浏览器”和“寄存器”视图点击“查看”然后选择“内存浏览器”再次单击“查看”并选择“注册”
III- 强制设备执行你想要调试的镜像在内存浏览器中,找到图像的入口点。 如果您不确定地址,可以利用地图文件(参见绿色方块)。在所有情况下,您都应该在图像的入口点找到 ResetVectors 符号。对于 basic_ble_persistent 应用程序,入口点位于 0x6100在“Registers”视图中,使用 ResetVectors 的第一个值(在我的例子中为 0x20009000)更新 Core Registers > SP 寄存器的值在“Registers”视图中,使用 ResetVectors 的第二个值(在我的例子中为 0x2C66D)更新 Core Registers > PC 寄存器的值在“Registers”视图中,使用resetVectors的地址更新SCB > VTOR寄存器的值(这也是应用程序的入口点,在我的例子中为0x6100)在 basic_persistent 应用程序中设置断点(例如,在 app_main.c 的 appMain 函数中调用 BLEAppUtil_init() 时),然后单击“运行按钮”
注意:此处提供的步骤仅导致刷新一个应用程序(这是应用程序调试的推荐方法)。 如果必须同时刷新多个应用程序,则应使用 Uniflash。 然后应遵循调试器指南中描述的将调试器连接到运行目标的步骤。 最终,应应用 II- 和 III- 中的步骤。
我希望这个能帮上忙,