SYD8821烧录仿真说明【No Cortx-M SW Device Found】【cache模式下仿真环境设置】

SYD8821是具有全球领先低功耗(RX 2.4mA @-94.5dBm灵敏度,TX 4.3mA @0dBm输出功率)的蓝牙低功耗SOC芯片,在极低电流下实现了优异的射频性能,搭配176kB SRAM,512kB flash,非常适合中高阶可穿戴、智能家居、物联网等低功耗应用具体可咨询:http://www.sydtek.com/

No Cortx-M SW Device Found

   发生这个错误的 原因有如下几个:

1.一般而言官方出厂的默认程序可能会带有低功耗的功能(注意:这里指的是官方出的开发板或者一些模块上的芯片,而成批出的量产的芯片(一般出售的芯片)是没有烧录带有低功耗的功能的),而进入低功耗的芯片是不能够直接被jlink等仿真器识别到的(因为低功耗模式下SWD的相关时钟受到影响),要进行特殊的流程,具体的请看:https://blog.csdn.net/chengdong1314/article/details/79707270中的《SYD8821 不能够挂接仿真器的恢复办法》相关内容

    至于代码有没有进低功耗模式请看代码中的while(1)主循环中是否有如下语句:

 SystemSleep(POWER_SAVING_RC_OFF, FLASH_LDO_MODULE, 11000 , (PMU_WAKEUP_CONFIG_TYPE)(FSM_SLEEP_EN|PIN_WAKE_EN|TIMER_WAKE_EN|RTC_WAKE_EN));

2.是否有调用“PMU_CTRL->UART_EN = 0;”语句,设置PMU_CTRL->UART_EN为1,因为该项设置也会影响到SWD的时钟

3.KEIL中的设置要按照如下设置:

4.JLINK等仿真器要正确连接,具体请看:https://blog.csdn.net/chengdong1314/article/details/79599299中的《开发板介绍》:

 


 

 

 

SYD8821 cache模式下仿真环境设置

   SYD8821在不做任何处理的情况下,仿真的时候有概率出现“CPU could not be halted”的错误,错误提醒如下:

Load "F:\\Company data\\SYD8821\\SYD8821_SDK\\Source Code\\SYD8821_other\\cache_496KB\\Keil\\output\\Module_samples.axf"
BS \\Module_samples\../main.c\121, 1
____________________^
*** error 35: undefined line number
BS \\Module_samples\../main.c\74
***JLink Error: CPU is not halted
**JLink Warning: CPU could not be halted
***JLink Error: Can not read register 15 (R15) while CPU is running
***JLink Error: Can not read register 16 (XPSR) while CPU is running
***JLink Error: Can not read register 0 (R0) while CPU is running
***JLink Error: Can not read register 1 (R1) while CPU is running
***JLink Error: Can not read register 2 (R2) while CPU is running
***JLink Error: Can not read register 3 (R3) while CPU is running
***JLink Error: Can not read register 4 (R4) while CPU is running
***JLink Error: Can not read register 5 (R5) while CPU is running
***JLink Error: Can not read register 6 (R6) while CPU is running
***JLink Error: Can not read register 7 (R7) while CPU is running
***JLink Error: Can not read register 8 (R8) while CPU is running
***JLink Error: Can not read register 9 (R9) while CPU is running
***JLink Error: Can not read register 10 (R10) while CPU is running
***JLink Error: Can not read register 11 (R11) while CPU is running
***JLink Error: Can not read register 12 (R12) while CPU is running
***JLink Error: Can not read register 13 (R13) while CPU is running
***JLink Error: Can not read register 14 (R14) while CPU is running
***JLink Error: Can not read register 15 (R15) while CPU is running
***JLink Error: Can not read register 16 (XPSR) while CPU is running
***JLink Error: Can not read register 17 (MSP) while CPU is running
***JLink Error: Can not read register 18 (PSP) while CPU is running
***JLink Error: Can not read register 20 (CFBP) while CPU is running

      发生这个错误的时候仿真不能够正常进行,仿真器停止不了MCU。

    这里提供几个方法,可逐一尝试,注意:因为上面已经仿真失败,所以想再次进入仿真,必须要按下芯片的复位键。

    方法一:在仿真界面里关闭汇编调试窗口:

    使用这个方法基本不会出现问题了。

方法二:去掉仿真设置里的“load Application at Statup”选项,并增加一个initalization file,比如“debug.ini”,并且在initalization file指定中的文件中load本工程生成的axf文件,比如Module_samples.axf,这里提供一个示例命令:

LOAD ./output/Module_samples.axf INCREMENTAL
 

这时候不管打开汇编窗口与否都不会有问题:

关于本节博客的更加生层次的原理可看:https://blog.csdn.net/chengdong1314/article/details/78355913

 

 

如果第一种方法有效,建议使用第一种方法!

这里上传本博客源代码(工程在“\Source Code\SYD8821_other\cache_496KB\Keil”):https://download.csdn.net/download/chengdong1314/10373473

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值