使用官方例程惊醒Jlink 下载调试出现“No Cortex-M SW Device Found”



  • 我在使用官方提供的例程 “ble_simple_peripheral” 进行Jlink 下载调试的时候总是下载失败提示我“No Cortex-M SW Device Found ”,0_1608082249137_企业微信截图_16080820798073.png
    而当我用面包板社区其他人写的例程Jlink下载的话就没有任何问题 可以进行调试。
    0_1608082362790_企业微信截图_16080823424716.png

    在用官方例程下载完之后如果要下载其他例程的话就需要先使用串口下载方式先把当前的程序flash清除之后才能继续使用Jlink 下载其他的程序,不然也会跟上诉一样出现“No Cortex-M SW Device Found”。所以我猜测应该是官方的例程 里面有复用了PC6 PC7这两个IO口,但是我也尝试修改IO口好像还是不行。只能过来请教论坛的各位大神了。



  • void user_entry_before_ble_init(void)
    {
    /* set system power supply in BUCK mode */
    pmu_set_sys_power_mode(PMU_SYS_POW_BUCK);
    #ifdef FLASH_PROTECT
    flash_protect_enable(1);
    #endif
    pmu_enable_irq(PMU_ISR_BIT_ACOK
    | PMU_ISR_BIT_ACOFF
    | PMU_ISR_BIT_ONKEY_PO
    | PMU_ISR_BIT_OTP
    | PMU_ISR_BIT_LVD
    | PMU_ISR_BIT_BAT
    | PMU_ISR_BIT_ONKEY_HIGH);
    NVIC_EnableIRQ(PMU_IRQn);

    // Enable UART print.
    system_set_port_pull(GPIO_PA2, true);
    system_set_port_mux(GPIO_PORT_A, GPIO_BIT_2, PORTA2_FUNC_UART1_RXD);
    system_set_port_mux(GPIO_PORT_A, GPIO_BIT_3, PORTA3_FUNC_UART1_TXD);
    uart_init(UART1, BAUD_RATE_115200);    
    
    // ÒÔÏÂÊÇΪÁËÿ´Î¶¼¿ÉÒÔÖØÐÂÏÂÔØ
    	system_set_port_mux(GPIO_PORT_C, GPIO_BIT_6, PORTC6_FUNC_SW_TCK);
    	system_set_port_mux(GPIO_PORT_C, GPIO_BIT_7, PORTC7_FUNC_SW_DIO);
    

    }

    看最后两行



  • @mfc4143 是要在 user_entry_before_ble_init(void) 函数里面添加最后那两行代码?



  • @张张张 嗯嗯,然后在其他应用中,不要使用这两个脚,不要进入睡眠模式