keil/mdk

官网在新窗口打开

1. 调试时保存内存数据

# 保存在文件filename中,格式为HEX386(若看不懂可以通过hex2bin工具进行转换)
save filename start_addr,end_addr

2. format命令

输出相应的bin文件

fromelf --bin -o "$L@L".bin "#L"

将编译后的汇编代码输出到指定文件

fromelf -c -o "$L@L".dis "#L"

3. 清除工程文件

Windows下,使用bat脚本进行清除。

或者不熟悉bat脚本的,可以使用python脚本进行清除:

@echo off
REM 1.0 获取当前工程所在的目录的名称
for %%i in ("%cd%") do set name=%%~ni
echo %name%

REM 删除Project下的某些文件
cd .\Project

del /Q /S .\Objects\*
del /Q /S .\Listings\*
del /Q /S .\DebugConfig\*

del /Q /S *.uvguix.*
REM del /Q /S *.uvoptx
del /Q /S *.scvd

cd ..

REM pause
"""
    2021-07-02 修改
"""

import shutil
import sys
import os
import re

def make_clean(current_path,re_rm_dirs,re_rm_files):
    reg_rm_files = re.compile(re_rm_files)

    for root, dirs, files in os.walk(current_path, topdown=False):
        for name in files:
            path = os.path.join(root, name)
            m = reg_rm_files.findall(path)
            if m != []:
                print('rmmove -> ',path)
                os.remove(path)
        
        for name in dirs:
            if name in re_rm_dirs:
                print('rmtree -> ', name)
                shutil.rmtree(name)

if __name__ == "__main__":
    # 1.0 待删除的文件夹名称(完全匹配)
    rm_dirs = r'Listings|Objects'
    # 2.0 待删除的文件名称(部分匹配)
    re_rm_files = r'uvguix|scvd'

    make_clean(".",rm_dirs,re_rm_files)
    
    # os.system('pause')

4. format配置

# 参数
--style=ansi -s4 -c -w -p -xg -U -k3 -W3 -N -L -m0 -M40 --suffix=none !E