打印调试方法
📎 原始文档:https://www.kdocs.cn/l/cfHx0Z3MGB6q 打印调试方法
调试方法
- 芯片调试主要采用uart串口调试方法
- 打开打印功能

- 获取更详细底层打印信息,打开库打印



- 复位类型 系统复位的原因包括两种,第一种为系统复位源,第二种为自定义的复位源,例如断言软复位、异常软复位,是系统复位源的扩展,提供扩展信息、调试功能等
enum RST_REASON {
/*主系统*/
MSYS_P11_RST, //P11 复位
MSYS_DVDD_POR_RST, //DVDD 上电
MSYS_SOFT_RST, //主系统软件复位
MSYS_P2M_RST, //低功耗唤醒复位(softoff advance && deepsleep)
MSYS_POWER_RETURN, //主系统未被复位
/*P11*/
P11_PVDD_POR_RST, //pvdd 上电
P11_IVS_RST, //低功耗唤醒复位(softoff legacy)
P11_P33_RST, //p33 复位
P11_WDT_RST, //看门狗复位
P11_SOFT_RST, //软件复位
P11_MSYS_RST, //主系统复位 P11
P11_POWER_RETURN, //P11 系统未被复位
/*P33*/
P33_VDDIO_POR_RST, //vddio 上电复位(电池/vpwr 供电
P33_VDDIO_LVD_RST, //vddio 低压复位、上电复位(电池/vpwr 供电)
P33_VCM_RST, //vcm 高电平短接复位
P33_PPINR_RST, //数字 io 输入长按复位
P33_P11_RST, //p11 系统复位 p33,rset_mask=0
P33_SOFT_RST, //p33 软件复位,一般软件复位指此系统复位源,所有系统会直接复位。
P33_PPINR1_RST, //模拟 io 输入长按复位,包括 charge_full、vatch、ldoint、vabt_det
P33_POWER_RETURN, //p33 系统未被复位。
//SUB
P33_EXCEPTION_SOFT_RST, //异常软件复位
P33_ASSERT_SOFT_RST, //断言软件复位
};


5. 异常复位基础调试方法 首先先通过复位源分析排除掉硬件复位可能性,软件分析方法如下
1、需要打开打印功能、库打印、异常中断功能、反汇编功能



6. 打印RAM资源
- 打开库打印总开关或者按照下图打开打印
- 696、695 调用mem_stats 接口打印内存信息


7.打印定时器占用情况
CON寄存器为0,说明没有被占用
printf("JL_TIMER0->CON = %x ,JL_TIMER1->CON = %x ,JL_TIMER2->CON = %x ,JL_TIMER3->CON = %x ,JL_TIMER4->CON = %x ,JL_TIMER5->CON = %x \n",JL_TIMER0->CON,JL_TIMER1->CON,JL_TIMER2->CON,JL_TIMER3->CON,JL_TIMER4->CON,JL_TIMER5->CON);
8.打印引脚状态
void user_printf_portA(u8 bitnum) //打印pa脚,如果需要打印别的脚修改对应寄存器就可以
{
r_printf("portA%d:DIR-%d,PU-%d,PD-%d,DIE-%d,OUT-%d,IN-%d\n",
bitnum,
(JL_PORTA->DIR&BIT(bitnum))?1:0,
(JL_PORTA->PU &BIT(bitnum))?1:0,
(JL_PORTA->PD &BIT(bitnum))?1:0,
(JL_PORTA->DIE&BIT(bitnum))?1:0,
(JL_PORTA->OUT&BIT(bitnum))?1:0,
(JL_PORTA->IN &BIT(bitnum))?1:0
);
}
9.颜色打印
需要使用xshell工具

10.uboot和ota.bin打印
