手表软件调试
📎 原始文档:https://www.kdocs.cn/l/cc4TL7AJ88aT 手表软件调试
本文档适用于杰理体系的所有芯片。
2022-5-12 20:57:04
一、串口打印信息配置
- 打印开启配置 在app_config.h文件中开启和关闭系统总打印开关和库打印的开关,库打印不需要可以选择关闭,系统打印在批量生产时一定要关闭。

- 打印调试io配置 系统打印的io可以配置为任意的io,前提是没有被占用,否则会冲突;波特率可以修改,默认1M波特率

3.打开断言打印
异常介绍: 异常调试介绍.pdf
A、断言是为了便于调试程序中查找异常问题的功能,不需要可以关闭,出现异常问题后可以打开断言功能调试。
在lib_system_config.c中配置如下,置位为1则表示开启断言功能,此功能依托打印调试功能
//打开断言
const int config_asser = 1;
B、遇到有异常问题,打开断言后,还需要重新修改下面文件,生成对应的xxx.lst文件(没有生成的话需要rebuild工程),这样就可以通过断言信息来找对应的异常信息。

C、异常分析步骤
找到异常的地址rets的地址,然后打开sdk.lst文件查找对应的地址看异常的地方,就可以知道异常的大概位置,如下:
4.其他的一些打印
视具体要求开启其他的打印,视具体的模块功能来开启,不需要可以不开启,具体在lib_driver_config.c中,里面有具体代码,可以自行查看。
5.打印函数所在位置的打印
printf("%s %s %d \\r\\n" ,__FILE__, __func__ , __LINE__)
6.内存使用查看
A、JL701N和AC695N系列通用内存函数 mem_stats(); 需打开库打印
普通RAM的使用比较常规,包含数组变量之类的;也可以动态申请和释放,动态操作接口请使用 malloc()和 free()函数申请释放内存 。
[HEAP_MEM]Current free heap 124904 bytes, minimum ever free heap 124700 bytes, physics memory size 100480 bytes
B、针对JL701N系列的手表具有4块RAM,划分属于掉电RAM用于UI和音乐/通话等,在手表应用中掉电RAM可以在低功耗的时候关闭;另外划分是普通RAM,普通RAM如上A点打印即可。
①低功耗掉电的 ram 使用 malloc_vlt()和free_vlt()函数申请释放内存,动态RAM的大小分配在SDK的配置如下:

②掉电RAM的打印函数接口如下:
使用低功耗掉电的 ram 一定要确保在进入低功耗的时候空间都已经 free, 否则会出现异常。 可以在进入低功耗的时候调用 mem_vlt_is_recyclable()检查。
void mem_vlt_stats(void)
7.复位源
在软件调试中,出现一些复位死机的情况,可以打开库打印查看复位的信息是什么原因复位,具体的复位源如下所示:
- 例子
本文档为保密信息,未经授权,请勿转发或告知第三方。非常感谢!
This electronic documentation and any attachments are confidential and may be legally privileged or otherwise protected from disclosure. If you are not the intended recipient, please do not disclose the contents to anyone。
Thank you for your cooperation!
解析权归杰理所有!
The analysis right belongs to JieLi Technology Co., Ltd.