嗨,我刚刚开始在DA14580专家委员会上工作,并试图在UM-B-050中记录的,但智能手机应用程序不会检测到任何广告数据包的情况下运行近距离报告演示。
以下是我的配置:Keil 5.16a IDE,SDK 5.0.2.1,DA14580专家委员会,USB加密狗。电路板连接到桌面,加密狗连接到笔记本电脑。
这是我所做的:
(1)在Keil中加载Blinky演示并成功构建应用。启动一个调试会话,并将图像加载到目标,LED灯正在闪烁。
(2)从DA1458x_SDK\5.0.2.1\projects\target_apps\ble_examples\prox_reporter\Keil_5\prox_reporter. uvproject中加载Proximity Report demo。构建版本有一个警告,但看起来是良性的。启动一个调试会话,PC立即在0x200004A4停止,调用堆栈显示Reset_Handler。“Command”窗口显示如下:
使用代码大小限制:32K
* JLINK INFO:选择“Cortex-M0”所选的。
将JLink项目文件设置为“C:\ da1458x_sdk \ 5.0.2.1 \ projects \ target_apps \ ble_examples \ prox_reporter \ keil_5 \ jlinksettings.ini”* jlink信息:设备“cortex-m0”所选。
jlink信息:
-------------
DLL:v5.02b,编译9月8日2015年18:47:15
固件:J-Link ARM Lite V8编译10月29日2014 09:03:16
硬件:V8.00.
S / N:228205529
特征:GDB
* JLINK信息:找到了带ID 0x0BB11477的SWD-DP
* JLink Info: Found Cortex-M0 r0p0, Little endian。
* JLink Info: FPUnit: 4 code (BP)插槽和0字面值插槽
* jlink信息:coresight组件:
* JLink信息:ROMTbl 0 @ E00FF000
* jlink信息:romtbl 0 [0]:fff0f000,cid:b105e00d,pid:000bb008 scs
* JLink Info: ROMTbl 0 [1]: FFF02000, CID: B105E00D, PID: 000BB00A DWT
* jlink信息:romtbl 0 [2]:fff03000,cid:b105e00d,pid:000bb00b fpb
romtableaddr = 0xe00ff003.
目标信息:
-------------
设备:ARMCM0
vtarget = 2.963v.
引脚状态:TCK:0,TDI:0,TDO:0,TMS:1,TRES:1,TRST:1
硬件断点:4
软件断点:8192
观察点:2
JTAG速度:2000千赫
包括“c:\\ da1458x_sdk \\ 5.0.1 \\ projects \\ target_apps \\ ble_examples \\ prox_reporter \\ keil_5 \\ .. \\ .. \\ .. \\ .. \\ .. \ .. \\ .. \\ .. \ \ ......\\ common_project_files \\ misc \\ sysram_case23.ini“
/ *杀死按钮* * /
/ *定义按钮“重置dk580”,“包含../../misc/sysram_case23.ini”* /
重置
e long 0x50000012 = 0xA4
e long 0x50003308 = 0x2e
加载%L.
***具有32768字节代码大小限制的限制版本
***目前使用:26168字节(79%)
SP = _RDWORD (0x20000000)
$ = _rdword(0x20000004)
func void disp_memlog(void)
{
int idx;
unsigned int min_delta;
exec(“日志> Memlog.log”);
printf(“\ n \ n ***内存记录结果*** \ n \ n”);
printf(“>>> env heap <<< \ n”);
printf(“此堆中的使用大小:%4d(当前) - %4d(最大)\ n”,mem_log [0] .use_sz,mem_log [0] .max_used_sz);
printf(“其他堆的使用大小:%4d(当前) - %4d(最大)\ n \ n”,mem_log [0] .used_other_sz,mem_log [0] .max_used_other_sz);
printf(">>> DB HEAP <<<\n");
printf("Used size in this HEAP: %4d (current) - %4d (maximum)\n"), mem_log[1]。used_sz, mem_log [1] .max_used_sz);
printf("Used size in other HEAPs: %4d (current) - %4d (maximum)\n\n"), mem_log[1]。used_other_sz, mem_log [1] .max_used_other_sz);
printf(“>>> msg heap <<< \ n”);
printf(“此堆中的使用大小:%4d(当前) - %4d(最大)\ n”,mem_log [2] .used_sz,mem_log [2] .max_used_sz);
printf("Used size in other HEAPs: %4d (current) - %4d (maximum)\n\n"), mem_log[2]。used_other_sz, mem_log [2] .max_used_other_sz);
Printf(“>>>非Ret堆<<< \ n”);
printf(“此堆中的使用大小:%4d(当前) - %4d(最大)\ n”,mem_log [3] .use_sz,mem_log [3] .max_used_sz);
printf("Used size in other HEAPs: %4d (current) - %4d (maximum)\n\n"), mem_log[3]。used_other_sz, mem_log [3] .max_used_other_sz);
exec(“注销”);
} // disp_memlog()结束
(3)我尝试重置CPU然后运行。目标似乎处于循环,智能手机BLE应用程序不会检测到任何内容。
我浏览了这个论坛的线程,发现一些提到Keil4的项目文件需要修改这个演示的线程。我需要为Keil5做同样的事情吗?我在哪里可以找到参考?
感谢您提前任何帮助。
嗨Zheshen,
日志看起来像普通。什么你指的是智能手机应用吗?你试过iOS的浅蓝色和Android的ble scanner吗?
谢谢,Mh_dialog
嗨,mh_dialog,
我用BLE扫描器在Android,发现什么都没有。
我开始调试会话后附加了一个屏幕镜头,看起来这个应用程序没有到达主要。
我还尝试了其他一些外围示例,它们都没有问题。尝试ble_app_profile演示,得到相同的崩溃。
你好,
您需要卸载(停止)调试器。当启用休眠模式且调试器正在运行时,代码执行将暂停。我想这是你的问题。
在DA1458x_config_basic.h中未定义两个睡眠模式(无法在所有项目文件中找到cfg_ext_sleep和cfg_deep_sleep)
#undef cfg_mem_map_ext_sleep.
# undef CFG_MEM_MAP_DEEP_SLEEP
重建所有和使用调试器,代码执行就像以前一样暂停。退出调试器会话并使用BLE扫描仪扫描,仍然没有找到。
你好,
在SDK5中开启/关闭睡眠模式的正确方法如下所示。(user_config.h的第37行)
请尝试一下。
在SDK5中,app_default_sleep_mode的默认值是ARCH_SLEEP_OFF,我没有更改它。重建一切,依然如故。
我假设我应该恢复da1458x_configu_basic.h中的更改?
是的,请恢复原始代码库。另请确保已配置合适的硬件。这是在user_periph_setup.h的硬件配置向导中完成的:
(第35行及以上)。你可以打开文件,点击“配置向导”选项卡,从下拉菜单中选择你的devkit,或者直接在代码中编辑。
我希望这能有所帮助。
硬件配置被设置为user_periph_setup.h中的专家(3)。恢复了da1458x_configu_basic.h中的更改。重建所有和执行以前暂停。
您是否尝试使用BlueLoupe(Android)或LightBlue(iOS)扫描设备?Addr 0x200004A4处的黄色箭头不是设备未运行的指示 - 我有完全相同的东西,我的设备是预期的广告。如果您仍然无法看到广告,请尝试空白模板项目。它是硬件独立的,一旦加载,就会开始广告。
我尝试了闪烁(iOS)和Blescanner(Android),没有广告数据包。
我比较和作品之间的选择目标接近报告,唯一不同的,我发现是作品的目标选项卡项目的启动和大小iROM1were设置为0 x2000000/0x8000和iRAM1were的开始和大小设置为0 x2008000/0x2800(根据嗯- b - 014),但是对于“接近报告”项目,没有设置这些地址和大小。我是否应该设置这些选项,如果应该,正确的值是多少?(我尝试着重新使用Blinky值,但是它们并不有效)。
我也不认为应用程序是运行后,我开始调试会话。在我按下运行命令(F5)后,执行立即在0x20000C40暂停,并且停止代码执行按钮从未启用。我对此做了一个屏幕截图,并将其附在下面。
你好,
您不应该操纵IRAM设置。硬件或SDK中的某些内容导致问题。我建议您解压缩SDK5的新副本并使用这次模板项目。如果这是有效的,我们将尝试临近的报告者查看硬件中的某些内容是否会导致问题。
SDK5中的完整路径是您提到的模板项目?我尝试使用一个新鲜的SDK5副本,并在项目/ target_apps \模板下构建了extent_peripheral_template,并具有相同的问题。
明天我会给另一个DA14580板试一试,让您了解结果。
谢谢您的帮助。
你好,
你有正确的项目路径。应该没有问题工作。明天将与不同的硬件进行测试的结果。
你好,
我再次尝试了一个不同的DA14580专家委员会,然后还尝试在一台新的笔记本电脑上使用新安装的SDK / Keil5,并且我对所有组合具有一致的观察:
(1)Blinky Demo在所有板和所有计算机上工作。
(2)邻近报告和模板项目构建和加载都很好,但然后执行停止(停止按钮禁用)。重复按Run (F5)按钮,在0x20000C40停止执行,停止按钮禁用。
(3)重置CPU,然后运行(F5)似乎得到执行(停止按钮现在启用)。按下stop按钮将停止0x00000500和0x00000900之间的代码执行。在执行过程中,虚拟com端口上有无意义的输出。然而,扫描与LightBlue和BLE扫描仪应用程序没有检测到任何广告数据包。
你的设置肯定有问题。我会离线联系你,我们可以讨论一下。
你好,我的专家工具包也有同样的问题。ie。所有外围示例都可以工作,但ble示例在__main之后不能工作,永远不会跳转到main_func。我在哪儿读到这是芯片版本造成的?(需要v01而不是v00吗?)如果你找出问题,请让我也知道。谢谢你!
事实证明,由于飞行被飞行而猜测,问题是女儿板版本。感谢MHV_DIALOG向我发送新的女儿板,一旦插入就职。