嵌入式系统平台上,由于资源有限,直接使用UART输出字符串debug信息时资源占比较高,而只使用数字标签表达含义时,又比较难分析。最近的环境遇到这样的问题,简单做了个小工具。编码时直接使用字符串形式,使用工具扫描成数字标签格式,在编译完的二进制文件中不包含字符串信息,当使用UART输出trace log后,再使用工具根据扫描生成的文件解析为字符串格式分析。
主要流程图如下
目录处理的几个问题
os.listdir(path) 获取文件夹目录下的所有文件名
os.getcwd()获取当前目录,执行命令的目录
os.path.realpath(__file__)获取当前文件的路径及名称
os.path.dirname(...)获取完整文件名中目录名
执行命令方式
可用来执行系统命令的方式 os.system(cmdStr) os.popen(cmdStr)。两者的主要差别,前者只是简单地执行系统命令而不返回执行的结果内容,后者采用管道方式,返回相应的执行结果,主要使用后使用close函数来关闭。例如:
import os
f = os.system('dir')
a = f.readlines()
for eachline in a:
print(eachline )
f.close()
关于C宏命名问题
扫描文件中生成宏定义,由于编译器应该由一定的命名长度限制,为了保险起见