1. 新增unisoc_cp2log_config.txt配置文件,文件内容如下:
|
|
wcn_cp2_log_limit_size=500M;
|
wcn_cp2_file_max_num=2;
|
wcn_cp2_file_cover_old=true;
|
wcn_cp2_log_path="/data/unisoc_dbg";
|
|
若要使用自定义的cp2 log配置,请将以上文件push到/data路径下,文件权限修改为666或777。
|
程序运行以后,将检索/data目录下是否存在unisoc_cp2log_config.txt配置文件:
|
a. 若存在该配置文件,使用配置文件配置的逻辑属性抓取cp2 log;
|
b. 若不存在该配置文件,使用软件默认配置的逻辑行为抓取cp2 log。
|
|
2. unisoc_cp2log_config.txt配置文件的属性说明:
|
(1)wcn_cp2_log_limit_size
|
wcn_cp2_log_limit_size为每个log文件最大尺寸,默认为500M,同code中的默认值。
|
当某个文件达到最大尺寸(文件最终大小可能在wcn_cp2_log_limit_size上下浮动1KB),
|
则后边log需要存入到其他文件。
|
|
也可以用at指令配置log文件最大尺寸,重启失效:
|
echo "loglimitsize=xxx" > /proc/mdbg/at_cmd,
|
xxx为log文件最大尺寸,单位为MB,
|
例如echo "loglimitsize=500" > /proc/mdbg/at_cmd,即为配置log文件最大尺寸为500M。
|
|
(2)wcn_cp2_file_max_num
|
wcn_cp2_file_max_num为存储的log文件最大个数。
|
此项在wcn_cp2_file_cover_old为true时生效,即只有在允许覆盖旧的log文件时,
|
才判断存储的log文件最大个数属性。默认值为2,同code中相同。
|
|
也可以用at指令配置log文件最大个数,重启失效:
|
echo "logmaxnum=xxx" > /proc/mdbg/at_cmd,
|
xxx为log文件最大个数,
|
例如echo "logmaxnum=100" > /proc/mdbg/at_cmd,即为配置log文件最大个数为100。
|
|
(3)wcn_cp2_file_cover_old
|
wcn_cp2_file_cover_old代表是否覆盖已有文件,循环使用已经存在的log文件记录log。
|
默认值为true,同code中的默认值。
|
|
当wcn_cp2_file_cover_old为true时,log文件循环地在log文件中存储。
|
假设wcn_cp2_file_max_num为3的话,当2号文件(unisoc_cp2log_2.txt)文件达到
|
wcn_cp2_log_limit_size后,之后的log将记录于0号文件(unisoc_cp2log_0.txt),
|
当0号文件达到最大size后,log将被记录于1号文件,如此循环记录。
|
每次开机后,如果文件路径下log文件个数小于wcn_cp2_file_max_num,则新建文件记录log;
|
当文件个数已经达到最大值,则log将存储于0~wcn_cp2_file_max_num-1号文件中第一个小于
|
wcn_cp2_log_limit_size的文件。
|
若修改配置文件存储路径到u盘、sd卡等外接设备,可以合理设置文件个数及文件大小。
|
|
当wcn_cp2_file_cover_old为false的话log文件个数不受限制。
|
每次开机后的log文件从0号文件开始存储,若0号文件已经存在,先将其清空。
|
每当文件size达到wcn_cp2_log_limit_size后会新建log文件存储log,直到存储空间被用完。
|
由于每次开机后历史的0号文件会清空,请注意log的保存!
|
|
也可以用at指令配置是否覆盖旧的log文件,重启失效:
|
//不覆盖旧的log文件:
|
echo "logcoverold=0" > /proc/mdbg/at_cmd
|
//覆盖旧的log文件:
|
echo "logcoverold=1" > /proc/mdbg/at_cmd
|
|
(4)wcn_cp2_log_path
|
wcn_cp2_log_path为log存储位置,默认位置为"/data/unisoc_dbg",同code中默认位置。
|
可通过修改该项来调整log存储路径。若新设置的路径不存在则默认还在"/data/unisoc_dbg"
|
中存储,新设置的文件路径长度请不要超过100!
|
也可以用at指令切换log存储路径,重启失效:echo "logpath=/xxx" > /proc/mdbg/at_cmd
|
增加配置文件后开机第一次可能会提示:"new path [/data/unisoc_dbg] is invalid”
|
属于正常情况,初始化过程会新建路径/data/unisoc_dbg。
|
若log上报过程中log存储路径被手动删除,如手动删除了/data/unisoc_dbg,
|
或比如log存储路径为sd卡,但卡被拔出,这些情况下log上报后会不能打开当前存储路径,
|
于是log存储会切换到/data/unisoc_dbg路径,若该路径不存在则新建该路径。
|
dump memory生成的文件所存的路径始终与log文件存储路径相同,规则同上。
|
|
3. 假设config文件中某条设置不需要可以直接删除,其他设置内容依然生效。
|
建议修改config文件后将原来已经存在的log文件删除掉。
|
若文件系统中没有config文件,配置文件中的四项设置依据code中的默认值。
|
|
4. 若code中CONFIG_CPLOG_DEBUG关闭,需要打开cp2 log时,
|
请在芯片上电后执行echo "at+armlog=1\r" > /proc/mdbg/at_cmd
|
CONFIG_CPLOG_DEBUG宏不影响dump memory功能,该功能一直开启。
|
由于cp2侧log每100k上报一次,若出现问题时log不完整,可以执行:
|
echo "at+flushwcnlog\r" > /proc/mdbg/at_cmd将剩余log刷新到ap侧。
|
|
5. 如何确定最后一次存储的log文件?
|
a. 若wcn_cp2_file_cover_old=false,最后一个文件即为序号最大的文件。
|
b. 当开启wifi进行时间同步后,log文件修改时间也会同步更新,此时可以根据文件时间确定,
|
否则ls –al显示的文件时间为出厂时间;
|
c. 若wcn_cp2_file_cover_old=true,且文件个数小于wcn_cp2_file_max_num,
|
则最后一个文件为最后的log;
|
d. 若wcn_cp2_file_cover_old=true,且文件个数等于wcn_cp2_file_max_num,
|
由于log在所有文件中循环存储,文件尺寸小于wcn_cp2_log_limit_size的文件为最后的log;
|
e. 同时bsp driver的log中每次切换文件都会有打印:
|
“WCN: log_rx_callback cp2 log file is /data/unisoc_dbg/unisoc_cp2log_2.txt”。
|