程序QSPI Flash DA1469x USB-Kit

⚠️
你好。。谢谢你来到论坛。令人兴奋的消息!我们现在正在迁移到新的论坛平台,该平台将提供更好的功能,并包含在主对话网站中。所有员额和帐户都已迁移。我们现在只接受新论坛的流量-请在//www.xmece.com/support. 我们将在未来几天内修复bug/优化搜索和标记。
11个员额/0个新员额
最后一篇文章
红宝石
离线
最后一次见到:1年4个月前
加入:2019-05-30 18:29
程序QSPI Flash DA1469x USB-Kit

你好

我是一个试图熟悉smarsnippets开发环境的新用户。我使用:

开发工具包:DA14695-00HQDEVKT-U
SDK:SDK_10.0.4.66.2
JLink:JLink_Linux_V644i_x86_64
SmartSnippets:SmartSnippetsStudio2.0.8

我已经成功地编译了测试程序“pxp reporter”,可以将其加载到RAM中,并在SmartSnippets中进行调试。我可以从手机扫描BLE设备,因此到目前为止一切正常。

现在我想尝试将“pxp reporter”闪存到开发工具包中,但我无法使其工作。
我尝试了两种方法(见下文)都没有结果。

一般问题:
-我不了解闪存过程本身(例如uartboot.bin的目的是什么?)。这是否有文档记录?
-我做错了吗?有更好的闪光方式吗?

非常感谢你的帮助。

Method1:
后:http://lpccs-docs.dialog-semiconductor.com/um-b-090-da1469x_getting_started/07_Your%20First%20DA1469x%20Application%20%E2%80%93%20Advertising%20Demo/Your%20First%20DA1469x%20Application%20%E2%80%93%20Advertising%20Demo.html#build-调试qspi配置中的Advble

Step1:我使用Debug_QSPI构建配置构建二进制文件
步骤2:我使用run ->外部工具-> program_qspi_jtag得到以下输出

........................................................................................................................ .. ..程序QSPI  .. ........................................................................................................................ . ........................................................................................................................ .. ..编程的形象  .. ........................................................................................................................版权所有(c) 2015-2019 Dialog Semiconductor bootlyabo国际娱乐oader文件未指定,使用内部uartboot.bin

然后它永远挂着

方法2:
然后,我尝试直接使用以下命令行工具:SDK_10.0.4.66.2/doc/html/cli_programmer.html
我找不到任何关于GDB服务器参数的文档(是否有我找不到的文档?),但我从SmartSnippets调用中获取了参数,并按如下方式启动了gdbserver:

GDB服务器输出:

JLink_Linux_V644i_x86_64//JLinkGDBServer-if-swd-device Cortex-M33-endian little-speed 8000-port 2331-swoport 2332-telnetport 2333-vd-ir-localhostonly 1-log JLink.log-singlerun-strict-timeout 0-nogui-rtos-GDBServer/RTOSPlugin\u FreeRTOS SEGGER J-Link GDB Server V6.44i命令行版本JLinkARM.dll V6.44i(DLL编译于2019年5月17日17:37:26)命令行:-if swd-device Cortex-M33-endian little-speed 8000-port 2331-swoport 2332-telnetport 2333-vd-ir-localhostonly 1-log jlink.log-singlerun-strict-timeout 0-nogui-rtos GDBServer/RTOSPlugin FreeRTOS------GDB服务器启动设置------GDBInit文件:无GDB服务器侦听端口:2331 SWO原始输出侦听端口:2332 Te终端I/O端口:2333接受远程连接:仅本地主机生成日志文件:on验证下载:on Init regs on启动:on静默模式:off单次运行模式:on Target连接超时:0 ms------J-Link相关设置------J-Link主机接口:USB J-Link脚本:none J-Link设置文件:none------目标相关设置------Target设备:Cortex-M33目标接口:SWD目标接口速度:8000kHz目标端:很少连接到J-Link…J-Link已连接。固件:J-Link OB-SAM3U128 V3编译2019年1月7日14:06:26硬件:V3.00序列号:483051972检查目标电压…目标电压:3.30 V侦听连接到目标的TCP/IP端口2331…连接到t目标正在等待GDB连接…连接到127.0.0.1收到的监视器命令:clrbp收到的监视器命令:重置0通过SYSRESETREQ和VECTRESET位重置核心和外围设备。收到的监视器命令:睡眠10睡眠10ms收到的监视器命令:停止停止目标CPU…目标已停止(PC=0x000076C)接收到的监视器命令:memU32 0x20010000=0xdeadbeef写入0xdeadbeef@address 0x20010000接收到的监视器命令:memU32 0x20010004=0xdeadbeef写入0xdeadbeef@address 0x20010004接收到的监视器命令:memU32 0x20010008=0xdeadbeef写入0xdeadbeef@address 0x20010008接收到的监视器命令:memU32 0x2001000c=0xdead10cc写入0xDEAD10CC@address 0x2001000C@address 0x100C0050下载4个字节-验证接收到的监视器命令失败:sleep 100 sleep 100ms接收到的监视器命令:reset 0通过SYSRESETREQ和VECTRESET位重置核心和外围设备。接收到的监视器命令:sleep 1 sleep 1ms接收到的监视器命令:暂停暂停目标CPU……目标暂停ed(PC=0x200000CA)在地址0x50000024处下载2个字节-已验证正常收到监控命令:loadbin/tmp/cli\u programmer\u IDqXYy,0x00000000正在加载二进制文件[/tmp/cli\u programmer\u IDqXYy]…在地址0x00000000处下载30484字节-已验证正常二进制文件已成功加载(30484字节已下载)收到的监视器命令:reset 0通过SYSRESETREQ和VECTRESET位重置核心和外围设备。收到的监视器命令:启动目标CPU…收到的监视器命令:reset 0通过SYSRESETREQ和VECTRESET位重置核心和外围设备。收到的监视器命令:停止停止目标CPU…目标已停止(PC=0x000076C)正在下载地址0x00000218处的1字节-已验证正常,正在执行单步…目标已暂停(向量捕获,PC=0x000076E)启动目标CPU。。。

cli_programmer输出:

SDK_10.0.4.66.2/binaries$。/cli_程序员gdbserver 0x0../projects/dk_应用程序/演示程序/pxp_报告程序/DA1469x-00-Debug_QSPI/pxp_报告程序.bin cli_程序员1.26版权所有(c)2015-2019对话框半导体引导加载程序文件未指定,使用内部uartboot.bin上载yabo国际娱乐引导加载程序/应用程序可执行文件。。。可执行文件已上载。

然后它永远挂着

设备:
PM_对话框
离线
最后一次见到:1周4天前
工作人员
加入:2018-02-08 11:03
嗨,鲁比考塞尔,

嗨,鲁比考塞尔,

你能按照下面的程序,然后让我知道你是否能够下载固件到QSPI闪存吗?

  1. 运行program_qspi_config脚本并选择适当的配置。请参考9.4。配置smarnippets™写入已附加的文档的Flash。
  2. 运行ersase_qspi_jtag脚本
  3. 执行program_qspi_jtag脚本。确保您已经从“项目资源管理器”中选择了项目。

谢谢,下午好

红宝石
离线
最后一次见到:1年4个月前
加入:2019-05-30 18:29
非常感谢你的帮助

非常感谢您的快速回复!

我已经使用参数执行了步骤1:
-产品编号:DA1469x-00
-闪存配置:MX25U3235F
- Active_fw_image_addr: 0 x2000
- update_fw_image_address: 0 x2000

当运行erase_qspi_jtag时,我会遇到与以前相同的永久挂起问题(pxp_reporter项目被选中,正如您在#3中建议的那样)。

这是SmartSnippets中的输出

........................................................................................................................ .. ..消除QSPI  .. ........................................................................................................................ .Copyright (c) 2015-2019 Dialog Semiconductoryabo国际娱乐 bootloader file not specified, using internal uartboot.bin Uploading bootloader /application executable…可执行文件上传。< here_it_hangs_forever或直到我拔下dev-kit >

我还附上:./SDK_10.0.4.66.2/utilities/python_scripts/qspi/jlink.log
我刚刚注意到gdbserver命令行sys“-device Cortex-M0”不是“Cortex-M33”。这正常吗?

SEGGER J-Link GDB Server V6.44i日志文件记录在2019-06-17:25 03-00000000-00-00000000-0092时启动:命令行:-如果swd-设备Cortex-M0-endian little-速度4000-选择usb=483051972-端口2331-SWOPort2332-telnetport 2333-log jlink.log 03-00000000-00000000-01A9:-GDB服务器启动设置------GDBInit文件:无GDB服务器侦听端口:2331 SWO原始输出侦听端口:2332终端I/O端口:2333接受远程连接:是生成日志文件:打开验证下载:关闭初始注册表启动:关闭静默模式:关闭单一运行模式:关闭目标连接超时:0毫秒03-00000000-00-00000000-014C:-----J-Link相关设置------J-Link主机接口:USB J-Link脚本:无J-Link设置文件:无------目标相关设置------目标设备:Cortex-M0目标接口:SWD目标接口速度:4000kHz目标端:little 03-00000000-00-00000000-0001:03-00000000-00-00000028-0018:连接到J-Link。。。02-00000000-00-00000030-003D:固件:J-Link OB-SAM3U128 V3编译于2019年1月7日14:06:26 02-00000000-00-00000030-000F:硬件:V3.00 02-00000000-00-00000031-000E:S/N:483051972 02-00000000-00000031-0032:在端口19021WEBSRV 02-00000000-00000000-00000031-0029上打开的TELNET侦听器套接字:启动webserver(总共0003ms)02-00000000-00-00000031-0055:T858FA700000:028在本地端口19080上运行的WebRV Web服务器(总计0003ms,0030ms)02-00000000-00-00000031-0037:T858FA700000:028返回正常(总计0003ms,0030ms)03-00000000-00-00000031-0015:J-Link已连接。02-00000000-00-00000031-00D3:T858FA700000:031 JLINK_ExecCommand(“设备=Cortex-M0”,…)。XML文件位于:/home/axel/development/igw/git_clones/i1807-road-helm-1/tools/JLink_Linux_V644i_x86_64/JLinkDevices.XML(总计0000ms,0030ms)02-00000000-00-00000071-00D4:t858fa70000:031/home/axel/development/igw/git_clones/i1807-road-helm-1/tools/JLink_clones/i1807-road-helm/tools/JLink_Linux_v644;-64/JLink已成功评估设备“CORTEX-M0”挑选出来的。返回0x00(0040ms,0070ms总计)02-00000000-00-00000071-0045:T858FA70000:071 JLINK_GetFirmwareString(…)(0000ms,0070ms总计)03-00000000-00-00000071-003E:固件:J-Link OB-SAM3U128 V3编译2019年1月7日14:06:26 02-00000000-00000000-00000071-0053:T858FA70000:071 JLINK_GetHardwareVersion()返回0x7530(ms,0070ms总计)03-00000000-00-00000071-0010:硬件:V3.00 03-00000000-00-00000071-000F:S/N:483051972-00000000-00-00000072-004D:T858FA700000:071 JLINK_GetHWStatus(…)返回0x00(0001ms,0071ms总计)02-00000000-00-00000072-0040:T858FA700000:072 JLINK_启用软件包(ON)(总计0000ms,0071ms)03-00000000-00-00000072-001B:检查目标电压。。。03-00000000-00-00000072-0017:目标电压:3.30 V 03-00000000-00-00000072-001E:侦听TCP/IP端口2331 03-00000000-00-00000072-0017:连接到目标。。。02-00000000-00-00000072-0039:T858FA700000:072 JLINK_CLERROR()(0000ms,0071ms总计)02-00000000-00-00000072-004D:T858FA70000:072 JLINK_GetHWStatus(…)返回0x00(0000ms,0071ms总计)02-00000000-00-00000072-0059:T858FA70000:072 JLINK_TIF_选择(JLINKARM_TIF_SWD)返回0x00(0000ms,0071ms总计)02-00000000-00-00000072-003D:T858FA70000:072 JLINK_设置速度(4000)(0000ms,0071ms总计)02-00000000-00-00000072-0048:T858FA70000:072 JLINK_GetSpeed()返回0xA6B(0000ms,0071ms总计)02-00000000-00-00000072-007B:T858FA70000:072 JLINK_设置重置类型(JLINKARM_重置类型_正常)返回JLINKARM_重置类型_正常(0000ms,0071ms总计)02-00000000-00-00000072-003F:T858FA70000:072 JLINK_SetResetDelay(0)(0000ms,0071ms总计)02-00000000-00-00000072-0059:T858FA70000:072 JLINK_SetEndian(ARM_ENDIAN_LITTLE)返回0x00(0000ms,0071ms总计)02-00000000-00000076-01D3:T858FA70000:072 JLINK_SetEndian_Connect()>0x10B TIF>找到ID为0x0BE12477>0x0D TIF>>0x28 TIF>>0x0D TIF>>0x28 TIF>>0x0D TIF>>0x28 TIF>>0x0D TIF>>0x28 TIF>>0x0D TIF>>0x21 TIF>>0x0D TIF>>0x28 TIF>>0x28 TIF>扫描AP地图以查找所有可用的AP>0x0D TIF>>0x28 TIF>>0x28 TIF>>0x21 TIF>>0x21 TIF>>0x21 TIF>>[1] :当到达AP映射结束时停止AP扫描AP[0]:AHB-AP(IDR:0x14770015)03-00000000-00-00000180-0062:警告:识别的核心与配置不匹配。(找到:Cortex-M33,配置:Cortex-M0)02-00000000-00-00000180-01F2:迭代AP映射以查找AHB-AP,以使用>0x42 TIF>>0x28 TIF>>0x28 TIF>>0x28 TIF>>0x0D TIF>>0x21 TIF>>0x0D TIF>>0x21 TIF>>0x42 TIF>>0x28 TIF>>0x28 TIF>>0x0D TIF>>0x28 TIF>>0x28 TIF>>0x0D TIF>>0x21 TIF>>0x21 TIF>AP[0]:核心AP[0]:AHB-AP ROM base:0xE00FF000>0x0D TIF>>0x28 TIF>>0x0D TIF>>0x28 TIF>>0x28 TIF>>0x28 TIF>>0x0D TIF>>0x21 TIF>>0x0D TIF>>0x21 TIF>CPUID寄存器:0x410FD212。实现者代码:0x41(ARM)找到Cortex-M33 r0p2,Little endian.02-00000000-00-00000184-01F4:识别的核心与配置不匹配。(发现:Cortex-M33,配置:Cortex-M0)--最大。mem block: 0x00005890 -- CPU_ReadMem(4 bytes @ 0xE000EDF0) -- CPU_WriteMem(4 bytes @ 0xE000EDF0) -- CPU_ReadMem(4 bytes @ 0xE0002000)FPUnit: 8 code (BP) slots and 0 literal slots -- CPU_ReadMem(4 bytes @ 0xE000EDFC) -- CPU_WriteMem(4 bytes @ 0xE000EDFC) -- CPU_ReadMem(4 bytes @ 0xE0001000) -- CPU_WriteMem(4 bytes @ 0xE0001000) -- CPU_ReadMem(4 bytes @ 0xE000ED88) -- CPU_WriteMem(4 bytes @ 0xE000ED88) 02-00000000-00-00000187-01DD: -- CPU_ReadMem(4 bytes @ 0xE000ED88) -- CPU_WriteMem(4 bytes @ 0xE000ED88) -- CPU_ReadMem(4 bytes @ 0xE000EFB8)Security extension: not implementedCoreSight components:ROMTbl[0] @ E00FF000 -- CPU_ReadMem(16 bytes @ 0xE00FF000) -- CPU_ReadMem(16 bytes @ 0xE000EFF0) -- CPU_ReadMem(16 bytes @ 0xE000EFE0) -- CPU_ReadMem(4 bytes @ 0xE000EFBC) -- CPU_ReadMem(4 bytes @ 0xE000EFCC)ROMTbl[0][0]: E000E000, CID: B105900D, PID: 000BBD21 Cortex-M33 -- CPU_ReadMem(16 bytes @ 0xE0001FF0) 02-00000000-00-00000190-01E8: -- CPU_ReadMem(16 bytes @ 0xE0001FE0) -- CPU_ReadMem(4 bytes @ 0xE0001FBC) -- CPU_ReadMem(4 bytes @ 0xE0001FCC)ROMTbl[0][1]: E0001000, CID: B105900D, PID: 000BBD21 DWT -- CPU_ReadMem(16 bytes @ 0xE0002FF0) -- CPU_ReadMem(16 bytes @ 0xE0002FE0) -- CPU_ReadMem(4 bytes @ 0xE0002FBC) -- CPU_ReadMem(4 bytes @ 0xE0002FCC)ROMTbl[0][2]: E0002000, CID: B105900D, PID: 000BBD21 FPB -- CPU_ReadMem(16 bytes @ 0xE00FF010) -- CPU_ReadMem(16 bytes @ 0xE0042FF0) -- CPU_ReadMem(16 bytes @ 0xE0042FE0) 02-00000000-00-00000192-019B: -- CPU_ReadMem(4 bytes @ 0xE0042FBC) -- CPU_ReadMem(4 bytes @ 0xE0042FCC)ROMTbl[0][6]: E0042000, CID: B105900D, PID: 000BBD21 CTI -- CPU_ReadMem(16 bytes @ 0xE0043FF0) -- CPU_ReadMem(16 bytes @ 0xE0043FE0) -- CPU_ReadMem(4 bytes @ 0xE0043FBC) -- CPU_ReadMem(4 bytes @ 0xE0043FCC)ROMTbl[0][7]: E0043000, CID: B105900D, PID: 000BBD21 MTB -- CPU_ReadMem(16 bytes @ 0xE00FF020) returns 0x00 (0120ms, 0191ms total) 02-00000000-00-00000192-00A6: T858FA700 000:192 JLINK_GetIdData(...) >0x0D TIF> >0x21 TIF> ScanLen=4 NumDevices=1 aId[0]=0x0BE12477 aIrRead[0]=0 aScanLen[0]=0 aScanRead[0]=0 (0000ms, 0191ms total) 02-00000000-00-00000192-004C: T858FA700 000:192 JLINK_GetDeviceFamily() returns 14 (0000ms, 0191ms total) 02-00000000-00-00000192-0051: T858FA700 000:192 JLINK_CORE_GetFound() returns 0xE0200FF (0000ms, 0191ms total) 02-00000000-00-00000192-0048: T858FA700 000:192 JLINK_IsHalted() returns FALSE (0000ms, 0191ms total) 02-00000000-00-00000195-0043: T858FA700 000:192 JLINK_Halt() returns 0x00 (0003ms, 0194ms total) 02-00000000-00-00000195-0047: T858FA700 000:195 JLINK_IsHalted() returns TRUE (0000ms, 0194ms total) 03-00000000-00-00000195-0014: Connected to target 03-00000000-00-00000195-001D: Waiting for GDB connection... 03-00000000-00-00000195-0017: Connected to 127.0.0.1 03-00000000-00-00000195-001D: GDB closed TCP/IP connection 03-00000000-00-00000305-0017: Connected to 127.0.0.1 00-0000000D-00-00000305-0016: $m00000214,00000005#A5 01-0000000D-00-00000306-0001: + 03-00000000-00-00000306-0025: Reading 5 bytes @ address 0x00000214 02-00000000-00-00000306-00A0: T76BFC700 000:306 JLINK_ReadMem (0x00000214, 0x0005 Bytes, ...) -- CPU_ReadMem(5 bytes @ 0x00000214) - Data: 44 42 47 50 01 returns 0x00 (0000ms, 0194ms total) 01-0000000D-00-00000306-000E: $4442475001#ff 00-0000000D-00-00000306-0017: +$m0000021C,00000004#B3 01-0000000D-00-00000306-0001: + 02-00000000-00-00000306-009D: T76BFC700 000:306 JLINK_ReadMem (0x0000021C, 0x0004 Bytes, ...) -- CPU_ReadMem(4 bytes @ 0x0000021C) - Data: 00 00 00 00 returns 0x00 (0000ms, 0194ms total) 03-00000000-00-00000306-0036: Read 4 bytes @ address 0x0000021C (Data = 0x00000000) 01-0000000D-00-00000306-000C: $00000000#80 00-0000000D-00-00000307-0001: + 00-0000000D-01-00000307-000E: 2458363634632c323a01ff234633 01-0000000D-00-00000307-0001: + 03-00000000-00-00000307-0029: Downloading 2 bytes @ address 0x0000664C 02-00000000-00-00000307-0098: T76BFC700 000:307 JLINK_WriteMem(0x0000664C, 0x0002 Bytes, ...) - Data: 01 FF -- CPU_WriteMem(2 bytes @ 0x0000664C) returns 0x02 (0000ms, 0194ms total) 01-0000000D-00-00000307-0006: $OK#9a 00-0000000D-01-00000307-0010: 2b24583232382c343a15000000234133 01-0000000D-00-00000307-0001: + 03-00000000-00-00000307-0029: Downloading 4 bytes @ address 0x00000228 02-00000000-00-00000307-009E: T76BFC700 000:307 JLINK_WriteMem(0x00000228, 0x0004 Bytes, ...) - Data: 15 00 00 00 -- CPU_WriteMem(4 bytes @ 0x00000228) returns 0x04 (0000ms, 0194ms total) 01-0000000D-00-00000307-0006: $OK#9a 00-0000000D-00-00000308-0001: + 00-0000000D-01-00000308-000F: 24583231632c343a01000000234239 01-0000000D-00-00000308-0001: + 03-00000000-00-00000308-0029: Downloading 4 bytes @ address 0x0000021C 02-00000000-00-00000308-009E: T76BFC700 000:308 JLINK_WriteMem(0x0000021C, 0x0004 Bytes, ...) - Data: 01 00 00 00 -- CPU_WriteMem(4 bytes @ 0x0000021C) returns 0x04 (0000ms, 0194ms total) 01-0000000D-00-00000308-0006: $OK#9a 00-0000000D-00-00000308-0006: +$s#73 01-0000000D-00-00000308-0001: + 03-00000000-00-00000308-001A: Performing single step... 02-00000000-00-00000310-0155: T76BFC700 000:308 JLINK_Step() -- CPU_ReadMem(2 bytes @ 0x00002FC2) -- CPU_ReadMem(4 bytes @ 0xE000ED18) -- CPU_WriteMem(4 bytes @ 0xE000ED18) -- CPU_ReadMem(4 bytes @ 0xE000ED18) -- CPU_WriteMem(4 bytes @ 0xE000ED18) -- CPU_ReadMem(4 bytes @ 0xE0001004) -- CPU_ReadMem(4 bytes @ 0xE000EE08) -- Simulated returns 0x00 (0002ms, 0196ms total) 02-00000000-00-00000310-0047: T76BFC700 000:310 JLINK_IsHalted() returns TRUE (0000ms, 0196ms total) 02-00000000-00-00000310-0054: T76BFC700 000:310 JLINK_ReadReg(R15 (PC)) returns 0x00002FC2 (0000ms, 0196ms total) 02-00000000-00-00000310-006E: T76BFC700 000:310 JLINK_GetMOEs(...) -- CPU_ReadMem(4 bytes @ 0xE000ED30) returns 0x01 (0000ms, 0196ms total) 03-00000000-00-00000310-002A: ...Target halted (DBGRQ, PC = 0x00002FC2) 01-0000000D-00-00000310-0017: $T05thread:0000DEAD;#74 00-0000000D-00-00000310-0006: +$c#63 01-0000000D-00-00000310-0001: + 03-00000000-00-00000310-0017: Starting target CPU... 02-00000000-00-00000310-0047: T76BFC700 000:310 JLINK_IsHalted() returns TRUE (0000ms, 0196ms total) 02-00000000-00-00000312-00C5: T76BFC700 000:310 JLINK_GoEx(MaxEmulInsts = -1, Flags = 0x00) -- CPU_ReadMem(4 bytes @ 0xE0001000) -- CPU_WriteMem(4 bytes @ 0xE000ED30) -- CPU_WriteMem(4 bytes @ 0xE0001004) (0002ms, 0198ms total) 02-00000000-00-00000312-0048: T76BFC700 000:312 JLINK_IsHalted() returns FALSE (0000ms, 0198ms total) 02-00000000-00-00000333-0048: T76BFC700 000:332 JLINK_IsHalted() returns FALSE (0001ms, 0199ms total) 02-00000000-00-00000353-0048: T76BFC700 000:353 JLINK_IsHalted() returns FALSE (0000ms, 0198ms total) 02-00000000-00-00000374-0048: T76BFC700 000:373 JLINK_IsHalted() returns FALSE (0001ms, 0199ms total) 02-00000000-00-00000394-0048: T76BFC700 000:394 JLINK_IsHalted() returns FALSE (0000ms, 0198ms total) 02-00000000-00-00000415-0048: T76BFC700 000:414 JLINK_IsHalted() returns FALSE (0001ms, 0199ms total) 

PM_对话框
离线
最后一次见到:1周4天前
工作人员
加入:2018-02-08 11:03
嗨,鲁比考塞尔,

嗨,鲁比考塞尔,

你能检查一下跳线的配置吗?我想这张照片会很有帮助的。bin是用于加载应用程序二进制映像的辅助引导加载程序。当设备引导时,BootROM代码将检查OTP,如果它没有与辅助引导加载程序绑定,将加载uartboot.bin,这是默认配置。我看不出你收到的信息有任何错误。你把电路板复位了吗?另外,您可以尝试通过UART擦除/编程QSPI闪存吗?

谢谢,下午好

红宝石
离线
最后一次见到:1年4个月前
加入:2019-05-30 18:29
你好

你好

这是我的开发工具包的照片:https://drive.google.com/file/d/1NVgKlmbTPuT9DU0yS34o1FosYikG_K5y/view

UART擦除/程序:
我不知道如何擦除和/或程序通过UART(如你要求我尝试)。
我能找到的所有信息是://www.xmece.com/sites/default/files/an-b-069-da1469...
但这只能解释协议。
我假设有sw工具(希望有一些入门指南?)
你能给我指一些相关的文件吗?

JTAG擦除/程序:
你能帮我弄清楚这个过程(或指向相关文档),什么部分应该做什么?
到目前为止,这是我对过程的零散猜测:

0.Python-script启动gdb-server并使用cli_programmer工具执行以下操作
1.JTAG通过直接写入RAM来附加并上传uartboot.bin(类似于RAM-debug-session)
2.JTAG执行软件重置(同样,正如我认为的RAM调试所做的那样)
3.uartboot.bin从RAM执行,做什么?
4.Uartboot以某种方式(?)执行“/ binary /cli_programmer”给出的命令,例如
——“chip_erase_all”或
-"program_flash"(在这种情况下,实际图像是如何传输的?通过虚拟串口(/dev/ttyACM0)或其他方式?

还是uartboot.bin被bootrom读取并执行(而不是上面的步骤1-3)?如果是,uartboot.bin是否传输槽/dev/ttyACM0 ->调试器usb到uart转换器-> da1469x引导uart?在PC端,什么工具负责这种沟通?

问题4仍然存在,一旦uartboot.bin启动,如何将擦除/闪存命令传输到目标运行的uartboot.bin程序?

非常感谢任何帮助
致以最亲切的问候
阿克塞尔

PM_对话框
离线
最后一次见到:1周4天前
工作人员
加入:2018-02-08 11:03
嗨,鲁比考塞尔,

嗨,鲁比考塞尔,

让我查一下您的问题,然后尽快给您答复。

谢谢,下午好

红宝石
离线
最后一次见到:1年4个月前
加入:2019-05-30 18:29
谢谢你,非常感谢!

谢谢你,非常感谢!

红宝石
离线
最后一次见到:1年4个月前
加入:2019-05-30 18:29
好了,我已经解决了!

好了,我已经解决了!

我发现关于cli_programmer的文档(SDK_10.0.4.66.2/doc/html/ cli_programer .html)能够从那里找到它。

简短版本:看来flash中的当前程序导致了gdb崩溃。有一次我弄明白了cli_程序员和串行工作者是怎么做的

./cli\u程序员/dev/ttyACM0芯片\u擦除\u qspi

然后,我能够得到JTAG flash python脚本,以成功地对图像进行编程。
如果其他人遇到这种情况,那么串行芯片擦除就是你的朋友:)

细节(以防其他人想知道):

使用cli_程序员上的strace,我检查了与gdb的通信,在发出最后一个“continue”命令后,gdbserver简单地停止响应我的命令

$ strace ./cli_programmer gdbserver read_qspi 0—10

gdbserver的输出(仅限最后两个命令)

执行单个步骤... ...Target stopped (Vector catch, PC = 0x0000076E) Starting Target CPU…< >后什么也没有

strace cli_programmer的输出(我在#后面的注释)

#--单步发送到(3,“$s#73”,5,0,NULL,0)=5 recvfrom(3,“+”,1,0,NULL,NULL)=1 recvfrom(3,$T05thread:0000DEAD;#74,132000,0,NULL,NULL)=23发送到(3,“+”,1,0,NULL,0)=1#--继续发送到(3,$c#63,5,0,NULL,0)=5 recvfrom(3,“+”,1,0,NULL,NULL)=1 recvfrom(3,<回复结束,永远等待从未到达的gdbserver回复>

在jlink。log里,我们看到了无穷无尽的

02- 00000000000 -00-00000333-0048: T76BFC700 000:332 JLINK_IsHalted()返回FALSE (0001ms, 0199ms total)

我猜:
gdbserver和从闪存运行的程序之间存在某种时间竞争条件,导致调试器崩溃并挂起进程。擦除闪存消除了竞争(闪存中的胭脂程序和gdb之间)。

解决了我的一些问题uartboot.bin
我也设法回答我自己的问题,一旦我有se一些cli_programmer的例子。

bin是通过串口引导的(不是我最初认为的使用GDB上传的)。
1.在第一次执行cli_programmer时,它会打开seralport并准备启动,然后要求用户按reset启动uartboot.bin的过程。
2.一旦启动,uartboot.bin将继续执行(在调用之间,并作为cli_programmer给出的命令的终端服务器工作。
3.在cli程序员的后续调用中,不需要启动/重置uartboot.bin,它已经在运行。

最后一个问题:
还有一件事我不明白。
就我所见,serialport根本不在jtag模式下使用,那么为什么jtag版本的cli_程序员需要上传uartboot.bin(据我所知,它作为串行终端服务器工作)?

SDK_10.0.4.66.2/binaries$./cli_程序员gdbserver read_qspi 0--10 cli_程序员1.26版权所有(c)未指定2015-2019 Dialog半导体引导加载程序文件,使用内部uayabo国际娱乐rtboot.bin上载引导加载程序/应用程序可执行文件。。。可执行文件已上载。00000000 50 70 00 20 00 00 200页。。

致以最亲切的问候
阿克塞尔

PM_对话框
离线
最后一次见到:1周4天前
工作人员
加入:2018-02-08 11:03
嗨,鲁比考塞尔,

嗨,鲁比考塞尔,

很高兴你发现了你的问题,谢谢你的详细指示。

你能把最后一个问题说清楚吗?正如我在前面的评论中提到的,uartboot.bin是用于加载应用程序二进制映像的辅助引导加载程序。

谢谢,下午好

红宝石
离线
最后一次见到:1年4个月前
加入:2019-05-30 18:29
你好

你好

是的,在通过UART加载应用程序映像的情况下(cli_programmer /dev/ttyACM0…)然后uartboot通过UART接收应用程序并将其编程到QSPI-flash。到目前为止,我跟得上你。

但是在另一种情况下,通过JTAG加载应用程序(cli_programmer gdbserver…),那么uartboot.bin的目的是什么?
它可能还负责闪烁吗?比如:
1.JTAG将应用程序映像上载到ram
2.uartboot.bin(以某种方式由JTAG触发)从RAM复制到闪存?

这些都是低级细节,我想我并不重要,我只是好奇你是否碰巧知道了。

致以最亲切的问候
阿克塞尔

PM_对话框
离线
最后一次见到:1周4天前
工作人员
加入:2018-02-08 11:03
嗨,鲁比考塞尔,

嗨,鲁比考塞尔,

因为uartboot.bin是cli_程序员用于与目标通信的中间引导加载程序。uartboot固件将自动检测设备变量。uartboot一直用作辅助引导加载程序,以便将二进制映像加载到设备。

谢谢,下午好