19个员额/ 0个新员额
最后一篇文章
zheshen
离线
最后一次见到:1年9个月前
加入:2015-08-11 20:01
接近报告不工作

嗨,我刚开始在DA14580专家板上工作,并试图运行UM-B-050中记录的接近报告演示,但智能手机应用程序不会检测到任何广告包。

以下是我的配置:Keil 5.16a IDE、SDK 5.0.2.1、DA14580专家板、USB加密狗。该板连接到桌面,加密狗连接到笔记本电脑。

以下是我所做的:

(1)在Keil中加载Blinky demo并成功构建app。启动调试会话并将图像加载到目标上,LED灯闪烁。
(2)在Keil中加载接近报告演示,从DA1458x_SDK\5.0.2.1\projects\target_apps\ble_examples\prox_reporter\Keil_5\prox_reporter.uvprojx。该构建有一个警告,但看起来是良性的。启动一个调试会话,PC立即在0x200004A4停止,调用堆栈显示Reset_Handler。Command窗口的输出如下:

以代码大小限制运行:32K
*JLink信息:已选择设备“CORTEX-M0”。
设置JLink项目文件为"C:\DA1458x_SDK\5.0.2.1\projects\target_apps\ble_examples\prox_reporter\Keil_5\JLink settings .ini"* JLink Info: Device " cortexm0 " selected。

JLink信息:
------------
DLL: V5.02b,编译于2015年9月8日18:47:15
固件:J-Link ARM Lite V8已编译2014年10月29日09:03:16
硬件:V8.00
序列号:228205529
功能(s): GDB

*JLink信息:找到ID为0x0BB11477的SWD-DP
* JLink Info: Found Cortex-M0 r0p0, Little endian。
* JLink Info: FPUnit: 4代码(BP)槽和0文字槽
*JLink信息:CoreSight组件:
* JLink Info: ROMTbl 0 @ E00FF000
* JLink Info: ROMTbl 0 [0]: FFF0F000, CID: B105E00D, PID: 000BB008 SCS
* JLink Info: ROMTbl 0 [1]: FFF02000, CID: B105E00D, PID: 000BB00A DWT
*JLink Info:ROMTbl 0[2]:FFF03000,CID:B105E00D,PID:000BB00B FPB
ROMTableAddr=0xE00FF003

目标信息:
------------
设备:ARMCM0
V目标=2.963V
引脚状态:TCK:0、TDI:0、TDO:0、TMS:1、TRES:1、TRST:1
硬件断点:4
软件断点:8192
观察点:2
JTAG速度:2000khz

包括“C: \ \ \ \ DA1458x_SDK \ \ 5.0.2.1 \ \项目target_apps \ \ ble_examples \ \ prox_reporter \ \ Keil_5 \\..\\..\\..\\..\\..\\ sdk \ \ common_project_files \ \ misc \ \ sysram_case23.ini”
/*终止按钮**/
/*定义按钮“重置DK580”,“包括../../../misc/sysram_case23.ini”*/
重置
E长0x50000012 = 0xa4
E长0x50003308=0x2e
加载%L

***具有32768字节代码大小限制的受限版本
***当前使用:26168字节(79%)

SP = _RDWORD (0x20000000)
$ = _RDWORD (0x20000004)

FUNC void disp_memlog(void)
{
int-idx;
无符号整数最小增量;

exec(“日志> Memlog.log”);

printf(“\n\n***内存记录结果***\n\n”);

printf(">>> ENV HEAP <<<\n");
printf("Used size in this HEAP: %4d (current) - %4d (maximum)\n", mem_log[0]. printf("Used size in this HEAP: %4d (current) - %4d (maximum)\n",used_sz, mem_log [0] .max_used_sz);
printf(“在其他堆中使用的大小:%4d(当前)-%4d(最大值)\n\n”,内存日志[0]。使用的内存日志[0]。最大使用的内存日志[0];

printf(">>> DB HEAP <<<\n");
printf("Used size in this HEAP: %4d (current) - %4d (maximum)\n", mem_log[1]. printf("Used size in this HEAP: %4d (current) - %4d (maximum)\n",used_sz, mem_log [1] .max_used_sz);
printf("Used size in other HEAPs: %4d (current) - %4d (maximum)\n\n", mem_log[1]. printf("Used size in other HEAPs: %4d (current) - %4d (maximum)\n\n")used_other_sz, mem_log [1] .max_used_other_sz);

printf(“>>>消息堆<<\n”);
printf("Used size in this HEAP: %4d (current) - %4d (maximum)\n", mem_log[2]. printf("Used size in this HEAP: %4d (current) - %4d (maximum)\n",used_sz, mem_log [2] .max_used_sz);
printf("Used size in other HEAPs: %4d (current) - %4d (maximum)\n\n", mem_log[2]. printf("Used size in other HEAPs: %4d (current) - %4d (maximum)\n\n")used_other_sz, mem_log [2] .max_used_other_sz);

printf(“>>>非Ret堆<\n”);
printf(“此堆中使用的大小:%4d(当前)-%4d(最大值)\n”,内存日志[3]。使用的内存日志[3]。最大使用的内存日志[3];
printf("Used size in other HEAPs: %4d (current) - %4d (maximum)\n\n", mem_log[3]. printf("Used size in other HEAPs: %4d (current) - %4d (maximum)\n\n")used_other_sz, mem_log [3] .max_used_other_sz);

执行董事(“注销”);
}//disp_memlog()结束

(3) 我尝试重置CPU,然后运行。目标似乎处于循环中,智能手机BLE应用程序没有检测到任何东西。

我浏览了这个论坛的线程,发现一些线程提到Keil4的项目文件需要为这个演示修改。我需要对Keil5做同样的事情吗?我在哪里可以找到参考资料?

提前谢谢你的帮助。

设备:
MH_对话框(未验证)
嗨Zheshen,

嗨Zheshen,

日志看起来很正常。什么你指的是智能手机应用?你试过iOS的浅蓝色和Android的ble扫描仪吗?

谢谢,MH_对话

zheshen
离线
最后一次见到:1年9个月前
加入:2015-08-11 20:01
嗨,MH_Dialog,

嗨,MH_Dialog,

我在Android上使用BLE扫描仪,没有发现任何东西。

zheshen
离线
最后一次见到:1年9个月前
加入:2015-08-11 20:01
我附上了一个屏幕截图

我在启动调试会话后附加了一个屏幕截图,似乎应用程序没有进入主界面。

我还尝试了其他一些外围示例,它们都通过了,没有问题。尝试ble_app_profile演示,得到同样的崩溃。

MHv_Dialog
离线
最后一次见到:4个月2周前
工作人员
加入:2013-12-06 15:10
你好,

你好,

您需要解除(停止)调试器。当启用休眠模式且调试器正在运行时,代码执行将暂停。我认为这是你的问题。

zheshen
离线
最后一次见到:1年9个月前
加入:2015-08-11 20:01
在中未定义两种睡眠模式

da1458x_config_basic.h中未定义两种睡眠模式(在所有项目文件中找不到CFG_EXT_sleep和CFG_DEEP_sleep)

# undef CFG_MEM_MAP_EXT_SLEEP
# undef CFG_MEM_MAP_DEEP_SLEEP

重新生成所有并使用调试器运行,代码执行与以前一样暂停。退出调试器会话并使用BLE扫描程序扫描,但仍然未找到任何内容。

MHv_Dialog
离线
最后一次见到:4个月2周前
工作人员
加入:2013-12-06 15:10
你好,

你好,

在SDK5中启用/禁用睡眠模式的正确方法如下所示。(user_config.h的第37行)

/ /默认的睡眠模式。可能的值ARCH_SLEEP_OFF, ARCH_EXT_SLEEP_ON, ARCH_DEEP_SLEEP_ON const static sleep_state_t app_default_sleep_mode = ARCH_SLEEP_OFF;

请试试。

zheshen
离线
最后一次见到:1年9个月前
加入:2015-08-11 20:01
app的默认值

在SDK5中,app_default_sleep_mode的默认值是ARCH_SLEEP_OFF,我没有更改它。全部重建,还是一样。

我假设我应该恢复da1458x_configu_basic.h中的更改?

MHv_Dialog
离线
最后一次见到:4个月2周前
工作人员
加入:2013-12-06 15:10
是的,请回复到

是,请还原到原始代码库。还请确保您配置了正确的硬件。这是在user_periph_setup的硬件配置向导中完成的。h:

(第35行及前面)。你可以打开文件,点击“配置向导”选项卡从下拉菜单中选择你的devkit,或者直接在代码中编辑。

/ * *定义  **************************************************************************************** */ //*** <<< 在上下文菜单中使用配置向导  >>> *** // < o > DK在da1458x_periph_setup.h选择< 0 = > < 1 = >基本< 2 = > Pro < 3 = >专家# define HW_CONFIG (2) # define HW_CONFIG_BASIC_DK ((HW_CONFIG = = 0 & & SDK_CONFIG = = 1) | | HW_CONFIG = = 1)#define HW_CONFIG_PRO_DK ((HW_CONFIG==0 && SDK_CONFIG==2) || HW_CONFIG==2) #define HW_CONFIG_EXPERT_DK ((HW_CONFIG==0 && SDK_CONFIG==3) || HW_CONFIG==3) //*** <<<结束配置节>>> ***

我希望这对你有所帮助。

zheshen
离线
最后一次见到:1年9个月前
加入:2015-08-11 20:01
硬件配置不正确

在user_peripher_setup .h中将硬件配置设置为Expert(3)。da1458x_configu_basic.h中的更改被恢复。重新生成所有文件并像以前一样暂停执行。

MHv_Dialog
离线
最后一次见到:4个月2周前
工作人员
加入:2013-12-06 15:10
你有没有试着扫描

您是否尝试使用BlueLoupe(Android)或LightBlue(iOS)扫描设备?addr 0x200004A4处的黄色箭头并不表示设备未运行-我有完全相同的东西,并且我的设备正在按预期进行广告。如果您仍然无法看到广告,请尝试使用空模板项目。该项目独立于硬件,并将在加载后立即开始广告。

zheshen
离线
最后一次见到:1年9个月前
加入:2015-08-11 20:01
我尝试了两种浅蓝色(IOS)

我尝试了LightBlue (IOS)和BLEScanner (Android),但都没有广告包。

我比较和作品之间的选择目标接近报告,唯一不同的,我发现是作品的目标选项卡项目的启动和大小iROM1were设置为0 x2000000/0x8000和iRAM1were的开始和大小设置为0 x2008000/0x2800(根据嗯- b - 014),然而,对于Proximity Report项目,这些地址和大小没有设置。我是否应该设置这些选项,如果应该,正确的值是什么?(我试着重新使用Blinky的值,但他们没有工作)。

我也不认为应用程序运行后,我开始调试会话。在我按下Run命令(F5)后,执行立即在0x20000C40处暂停,停止代码执行按钮从未启用。我做了一个屏幕截图,并将其附在下面。

附件:
MHv_Dialog
离线
最后一次见到:4个月2周前
工作人员
加入:2013-12-06 15:10
你好,

你好,

您不应该操纵iRAM设置。硬件或SDK中的某些内容导致了问题。我建议youtry解压SDK5的新副本,这次使用模板项目。如果这样做有效,我们将尝试proximty reporter,查看您的硬件中是否有导致问题的原因。

zheshen
离线
最后一次见到:1年9个月前
加入:2015-08-11 20:01
SDK5中的完整路径是什么

SDK5中您提到的模板项目的完整路径是什么?我尝试使用SDK5的新副本,并在projects/target\u apps\template下构建了空的\u peripheral\u模板,但遇到了相同的问题。

明天我将尝试另一块DA14580板,并让您知道结果。

谢谢你的帮助。

MHv_Dialog
离线
最后一次见到:4个月2周前
工作人员
加入:2013-12-06 15:10
你好,

你好,

你有正确的项目路径。应该没有问题。明天我会密切关注你在不同硬件上的测试结果。

zheshen
离线
最后一次见到:1年9个月前
加入:2015-08-11 20:01
你好,

你好,

我再次尝试使用不同的DA14580专家板,然后在新笔记本电脑上使用新安装的SDK/Keil5尝试了两种板,我对所有组合都有一致的观察结果:

(1) blinky演示在所有的板和所有的计算机上工作。
(2)接近报告和模板项目构建和加载都很好,但随后执行停止(停止按钮禁用)。重复按Run (F5)按钮导致执行在0x20000C40停止,停止按钮被禁用。
(3)重置CPU,然后运行(F5)似乎得到执行(停止按钮现在启用)。按下stop按钮停止0x00000500和0x00000900之间的代码执行。在执行过程中,虚拟com端口上有一些没有意义的输出。然而,使用淡蓝色和BLE Scanner应用程序扫描并没有检测到任何广告包。

MHv_Dialog
离线
最后一次见到:4个月2周前
工作人员
加入:2013-12-06 15:10
一定有什么东西在你的

你的设计肯定有问题。我会离线联系你,我们可以讨论一下。

flyingbed
离线
最后一次见到:5年7个月前
加入:2015-09-10 19:48
你好,我也有一样的

你好,我的专家工具包也有同样的问题。ie。所有外围的例子都可以工作,但是ble例子在__main之后不工作,永远不会跳转到main_func。我在哪儿读到过这是芯片版本的问题?(需要v01而不是v00?)如果你解决了这个问题,也请让我知道。谢谢你!

zheshen
离线
最后一次见到:1年9个月前
加入:2015-08-11 20:01
结果是

事实证明,正如飞床所猜测的那样,问题在于子板版本。感谢MHv_Dialog给我发送了一个新的子板,我一插上电源就能工作。