322 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			322 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								# 本脚本的功能为重命名当前文件夹下的文件,其重命名的依据为预先定义的列表。
							 | 
						|||
| 
								 | 
							
								# 将该脚本放置到fpga_image_xxx/reg/head目录下执行即可。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								# 文件的改动如下:
							 | 
						|||
| 
								 | 
							
								#   1.soc/macro目录下头文件去掉名称中的"_m"。
							 | 
						|||
| 
								 | 
							
								#   2.soc/struct目录下的头文件名加上"_s",同时更改文件中的文件名宏定义。
							 | 
						|||
| 
								 | 
							
								#   3.gpio_mtx_signal.h更改为gpio_mtx_sig.h,调整文件中sfc、smc相关信号宏定义,向前兼容(详见list_mtx_sig变量)。
							 | 
						|||
| 
								 | 
							
								#   4.soc/phy目录更改为plc/phy目录,删除目录下的struct文件夹,重命名macro文件夹为parse_reg,去掉parse_reg目录下文件名称中的"_m"。
							 | 
						|||
| 
								 | 
							
								#   5.soc/mac目录更改为plc/mac目录,删除目录下的struct文件夹,重命名macro文件夹为parse_reg,去掉parse_reg目录下文件名称中的"_m"。
							 | 
						|||
| 
								 | 
							
								#   6.调整mac相关宏定义,向前兼容,主要涉及mac相关头文件以及chip_reg_base.h(详见list_reg_operation、list_reg_base)
							 | 
						|||
| 
								 | 
							
								#   7.删除所有空文件夹
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								# 当前版本需要额外拷贝的文件为:ly68s32xx.h efuse_mapping.h hw_war.h ds35x1gaxxx.h gd25lq16x.h
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								# 当前列表对应的fpga image版本为 kunlun3_mpw_fpga_img_auto_export_1992_220530_1501
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								import os
							 | 
						|||
| 
								 | 
							
								import sys
							 | 
						|||
| 
								 | 
							
								import shutil
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								g_list_rename = [
							 | 
						|||
| 
								 | 
							
								    ["chip_irq_vector.h", "chip_irq_vector.h"],
							 | 
						|||
| 
								 | 
							
								    ["chip_reg_base.h", "chip_reg_base.h"],
							 | 
						|||
| 
								 | 
							
								    ["gpio_mtx_signal.h", "gpio_mtx_sig.h"],
							 | 
						|||
| 
								 | 
							
								    ["rfplc_reg_base.h", "rfplc_reg_base.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\phy", "plc\\phy"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\mac", "plc\\mac"],
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    ["soc\\macro\\ada_reg_m.h", "soc\\macro\\ada_reg.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\macro\\ahb_lite_reg_m.h", "soc\\macro\\ahb_rf.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\macro\\ahb_l_reg_m.h", "soc\\macro\\ahb_l_reg.h"],
							 | 
						|||
| 
								 | 
							
								    # cache IP有更新,头文件名称去掉了apb_,这里为了减少改动,依然保留apb_
							 | 
						|||
| 
								 | 
							
								    ["soc\\macro\\cache_reg_m.h", "soc\\macro\\apb_cache_reg.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\macro\\apb_lite_reg_m.h", "soc\\macro\\apb_glb_reg.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\macro\\dig_pin_reg_m.h", "soc\\macro\\pin_rf.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\macro\\dma_reg_m.h", "soc\\macro\\dma_reg.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\macro\\dtop_ana_inf_reg_m.h", "soc\\macro\\ana_dig_wrap_rf.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\macro\\fdma_mst_reg_m.h", "soc\\macro\\fdma_mst_reg.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\macro\\gpio_mtx_reg_m.h", "soc\\macro\\gpio_mtx_reg.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\macro\\gpio_reg_m.h", "soc\\macro\\gpio_reg.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\macro\\gtmr_reg_m.h", "soc\\macro\\gtmr_reg.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\macro\\i2c_master_reg_m.h", "soc\\macro\\i2c_reg.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\macro\\intc_reg_m.h", "soc\\macro\\intc_reg.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\macro\\ledc_reg_m.h", "soc\\macro\\ledc_reg.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\macro\\mail_box_reg_m.h", "soc\\macro\\mail_box_rf.h"],
							 | 
						|||
| 
								 | 
							
								    # 去掉了pmu
							 | 
						|||
| 
								 | 
							
								    # ["soc\\macro\\pmu_ana_inf_reg_m.h", "soc\\macro\\ana_pmu_wrap_rf.h"],
							 | 
						|||
| 
								 | 
							
								    # ["soc\\macro\\pmu_reg_m.h", "soc\\macro\\pmu_rf.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\macro\\pwm_reg_m.h", "soc\\macro\\pwm_reg.h"],
							 | 
						|||
| 
								 | 
							
								    # sadc寄存器变更为sar_adc_reg_m.h
							 | 
						|||
| 
								 | 
							
								    # ["soc\\macro\\sadc0_reg_m.h", "soc\\macro\\sadc0_reg.h"],
							 | 
						|||
| 
								 | 
							
								    # ["soc\\macro\\sadc1_reg_m.h", "soc\\macro\\sadc1_reg.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\macro\\sar_adc_reg_m.h", "soc\\macro\\sar_adc_reg.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\macro\\sec_sys_reg_m.h", "soc\\macro\\sec_sys_rf.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\macro\\sfc_reg_m.h", "soc\\macro\\sfc_rf.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\macro\\smc_reg_m.h", "soc\\macro\\smc_rf.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\macro\\spinlock_reg_m.h", "soc\\macro\\spinlock_top.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\macro\\spi_reg_m.h", "soc\\macro\\spi_reg.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\macro\\uart_reg_m.h", "soc\\macro\\uart_reg.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\macro\\wdg_reg_m.h", "soc\\macro\\wdg_reg.h"],
							 | 
						|||
| 
								 | 
							
								    # afft_reg_m.h未更改为audio_fft_rf.h,因为仅afft_hw.c中使用该头文件
							 | 
						|||
| 
								 | 
							
								    ["soc\\macro\\afft_reg_m.h", "soc\\macro\\afft_reg.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\macro\\eq_reg_m.h", "soc\\macro\\eq_reg.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\macro\\gmac_reg_m.h", "soc\\macro\\gmac_reg.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\macro\\bond_reg_m.h", "soc\\macro\\bond_reg.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\macro\\efuse_ctrl_reg_m.h", "soc\\macro\\efuse_dig_reg.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\macro\\pll_cal_reg_m.h", "soc\\macro\\pll_cal_reg.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\macro\\rtc_tmr_reg_m.h", "soc\\macro\\rtc_tmr_reg.h"],
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    ["soc\\struct\\ada_reg.h", "soc\\struct\\ada_reg_s.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\struct\\ahb_lite_reg.h", "soc\\struct\\ahb_rf_s.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\struct\\ahb_l_reg.h", "soc\\struct\\ahb_l_reg_s.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\struct\\cache_reg.h", "soc\\struct\\apb_cache_reg_s.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\struct\\apb_lite_reg.h", "soc\\struct\\apb_glb_reg_s.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\struct\\dig_pin_reg.h", "soc\\struct\\dig_pin_reg_s.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\struct\\dma_reg.h", "soc\\struct\\dma_reg_s.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\struct\\dtop_ana_inf_reg.h", "soc\\struct\\ana_dig_wrap_rf_s.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\struct\\fdma_mst_reg.h", "soc\\struct\\fdma_mst_reg_s.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\struct\\gpio_mtx_reg.h", "soc\\struct\\gpio_mtx_reg_s.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\struct\\gpio_reg.h", "soc\\struct\\gpio_reg_s.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\struct\\gtmr_reg.h", "soc\\struct\\gtmr_reg_s.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\struct\\i2c_master_reg.h", "soc\\struct\\i2c_reg_s.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\struct\\intc_reg.h", "soc\\struct\\intc_reg_s.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\struct\\ledc_reg.h", "soc\\struct\\ledc_reg_s.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\struct\\mail_box_reg.h", "soc\\struct\\mail_box_rf_s.h"],
							 | 
						|||
| 
								 | 
							
								    # ["soc\\struct\\pmu_ana_inf_reg.h", "soc\\struct\\ana_pmu_wrap_rf_s.h"],
							 | 
						|||
| 
								 | 
							
								    # ["soc\\struct\\pmu_reg.h", "soc\\struct\\pmu_rf_s.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\struct\\pwm_reg.h", "soc\\struct\\pwm_reg_s.h"],
							 | 
						|||
| 
								 | 
							
								    # ["soc\\struct\\sadc0_reg.h", "soc\\struct\\sadc0_reg_s.h"],
							 | 
						|||
| 
								 | 
							
								    # ["soc\\struct\\sadc1_reg.h", "soc\\struct\\sadc1_reg_s.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\struct\\sar_adc_reg.h", "soc\\struct\\sar_adc_reg_s.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\struct\\sec_sys_reg.h", "soc\\struct\\sec_sys_rf_s.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\struct\\sfc_reg.h", "soc\\struct\\sfc_rf_s.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\struct\\smc_reg.h", "soc\\struct\\smc_rf_s.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\struct\\spinlock_reg.h", "soc\\struct\\spinlock_top_s.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\struct\\spi_reg.h", "soc\\struct\\spi_reg_s.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\struct\\uart_reg.h", "soc\\struct\\uart_reg_s.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\struct\\wdg_reg.h", "soc\\struct\\wdg_reg_s.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\struct\\afft_reg.h", "soc\\struct\\afft_reg_s.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\struct\\eq_reg.h", "soc\\struct\\eq_reg_s.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\struct\\gmac_reg.h", "soc\\struct\\gmac_reg_s.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\struct\\bond_reg.h", "soc\\struct\\bond_reg_s.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\struct\\efuse_ctrl_reg.h", "soc\\struct\\efuse_dig_reg_s.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\struct\\pll_cal_reg.h", "soc\\struct\\pll_cal_reg_s.h"],
							 | 
						|||
| 
								 | 
							
								    ["soc\\struct\\rtc_tmr_reg.h", "soc\\struct\\rtc_tmr_reg_s.h"],
							 | 
						|||
| 
								 | 
							
								    # usb头文件不上传,因此需要手动删除usb文件再执行脚本
							 | 
						|||
| 
								 | 
							
								]
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								def delete_empty_folder(path):
							 | 
						|||
| 
								 | 
							
								    if os.path.isdir(path):
							 | 
						|||
| 
								 | 
							
								        for dir in os.listdir(path):
							 | 
						|||
| 
								 | 
							
								            path_dir = os.path.join(path, dir)
							 | 
						|||
| 
								 | 
							
								            if os.path.isdir(path_dir):
							 | 
						|||
| 
								 | 
							
								                delete_empty_folder(path_dir)
							 | 
						|||
| 
								 | 
							
								        if not os.listdir(path):
							 | 
						|||
| 
								 | 
							
								            print("删除空目录:", path)
							 | 
						|||
| 
								 | 
							
								            os.rmdir(path)
							 | 
						|||
| 
								 | 
							
								        # else:
							 | 
						|||
| 
								 | 
							
								        #     print("目录非空:", path)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								def main():
							 | 
						|||
| 
								 | 
							
								    dir_script = os.path.split(os.path.realpath(__file__))[0]
							 | 
						|||
| 
								 | 
							
								    file_renamed = []
							 | 
						|||
| 
								 | 
							
								    file_not_find = []
							 | 
						|||
| 
								 | 
							
								    file_all = []
							 | 
						|||
| 
								 | 
							
								    file_rename_num = len(g_list_rename)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    # 解析文件列表
							 | 
						|||
| 
								 | 
							
								    for i in range(0, file_rename_num):
							 | 
						|||
| 
								 | 
							
								        path_src = os.path.join(dir_script, g_list_rename[i][0])
							 | 
						|||
| 
								 | 
							
								        path_dst = os.path.join(dir_script, g_list_rename[i][1])
							 | 
						|||
| 
								 | 
							
								        if not os.access(path_src, os.F_OK | os.W_OK):
							 | 
						|||
| 
								 | 
							
								            if not os.access(path_dst, os.F_OK):
							 | 
						|||
| 
								 | 
							
								                file_not_find.append(path_src)
							 | 
						|||
| 
								 | 
							
								        else:
							 | 
						|||
| 
								 | 
							
								            file_renamed.append([path_src, path_dst])
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    # 获取当前所有文件列表
							 | 
						|||
| 
								 | 
							
								    for dir, dirs, files in os.walk(dir_script):
							 | 
						|||
| 
								 | 
							
								        # 跳过mac和phy目录,后续直接按目录操作
							 | 
						|||
| 
								 | 
							
								        dir_relative = str(dir).replace(dir_script, "")
							 | 
						|||
| 
								 | 
							
								        if dir_relative.count("plc") or dir_relative.count("soc\\phy") or\
							 | 
						|||
| 
								 | 
							
								            (dir_relative.count("soc\\mac") and (not dir_relative.count("soc\\macro"))):
							 | 
						|||
| 
								 | 
							
								            continue
							 | 
						|||
| 
								 | 
							
								        for file_temp in files:
							 | 
						|||
| 
								 | 
							
								            file_all.append(os.path.join(dir, file_temp))
							 | 
						|||
| 
								 | 
							
								    file_all.remove(os.path.realpath(__file__))
							 | 
						|||
| 
								 | 
							
								    for i in range(0, file_rename_num):
							 | 
						|||
| 
								 | 
							
								        for j in range(0, 2):
							 | 
						|||
| 
								 | 
							
								            file_temp = os.path.join(dir_script, g_list_rename[i][j])
							 | 
						|||
| 
								 | 
							
								            if file_all.count(file_temp):
							 | 
						|||
| 
								 | 
							
								                file_all.remove(file_temp)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    if len(file_not_find):
							 | 
						|||
| 
								 | 
							
								        print("***************************************************************")
							 | 
						|||
| 
								 | 
							
								        print("未找到以下文件:")
							 | 
						|||
| 
								 | 
							
								        for file_temp in file_not_find:
							 | 
						|||
| 
								 | 
							
								            print(file_temp)
							 | 
						|||
| 
								 | 
							
								    if len(file_all):
							 | 
						|||
| 
								 | 
							
								        print("***************************************************************")
							 | 
						|||
| 
								 | 
							
								        print("存在以下新文件: ")
							 | 
						|||
| 
								 | 
							
								        for file_temp in file_all:
							 | 
						|||
| 
								 | 
							
								            print(file_temp)
							 | 
						|||
| 
								 | 
							
								    while (len(file_not_find) or len(file_all)):
							 | 
						|||
| 
								 | 
							
								        input_str = input("输入 Y继续,N退出\n")
							 | 
						|||
| 
								 | 
							
								        if str(input_str) == "y" or str(input_str) == "Y":
							 | 
						|||
| 
								 | 
							
								            break
							 | 
						|||
| 
								 | 
							
								        elif str(input_str) == "n" or str(input_str) == "N":
							 | 
						|||
| 
								 | 
							
								            sys.exit(1)
							 | 
						|||
| 
								 | 
							
								        else:
							 | 
						|||
| 
								 | 
							
								            continue
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    # 重命名文件
							 | 
						|||
| 
								 | 
							
								    print("开始重命名文件")
							 | 
						|||
| 
								 | 
							
								    for i in range(0, len(file_renamed)):
							 | 
						|||
| 
								 | 
							
								        print("%s --> %s" % (file_renamed[i][0], file_renamed[i][1]))
							 | 
						|||
| 
								 | 
							
								        # 创建不存在的文件夹
							 | 
						|||
| 
								 | 
							
								        parent_dir = os.path.dirname(file_renamed[i][1])
							 | 
						|||
| 
								 | 
							
								        if not os.path.exists(parent_dir):
							 | 
						|||
| 
								 | 
							
								            os.makedirs(parent_dir)
							 | 
						|||
| 
								 | 
							
								        try:
							 | 
						|||
| 
								 | 
							
								            os.rename(file_renamed[i][0], file_renamed[i][1])
							 | 
						|||
| 
								 | 
							
								        except:
							 | 
						|||
| 
								 | 
							
								            shutil.move(file_renamed[i][0], file_renamed[i][1])
							 | 
						|||
| 
								 | 
							
								        # struct文件夹中的文件,需要同步更改头文件中的宏定义,目前只更改soc文件
							 | 
						|||
| 
								 | 
							
								        if str(parent_dir).count("soc\\struct"):
							 | 
						|||
| 
								 | 
							
								            str_list = str(file_renamed[i][0]).split("\\")
							 | 
						|||
| 
								 | 
							
								            header_old = str(str_list[len(str_list) - 1]).upper().replace(".", "_")
							 | 
						|||
| 
								 | 
							
								            str_list = str(file_renamed[i][1]).split("\\")
							 | 
						|||
| 
								 | 
							
								            header_new = str(str_list[len(str_list) - 1]).upper().replace(".", "_")
							 | 
						|||
| 
								 | 
							
								            print("macro of file name old:%s, new:%s" % (header_old, header_new))
							 | 
						|||
| 
								 | 
							
								            with open(file_renamed[i][1], "r+", newline="\n") as fd:
							 | 
						|||
| 
								 | 
							
								                data = fd.read()
							 | 
						|||
| 
								 | 
							
								                data = data.replace(header_old, header_new)
							 | 
						|||
| 
								 | 
							
								                fd.seek(0, 0)
							 | 
						|||
| 
								 | 
							
								                fd.write(data)
							 | 
						|||
| 
								 | 
							
								                fd.truncate()
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    # # 部分signal名称变更为kl1、kl2风格
							 | 
						|||
| 
								 | 
							
								    # list_mtx_sig = [
							 | 
						|||
| 
								 | 
							
								    #     "GPIO_MTX_SFC_SPI_CLK_OUT_MON", "GPIO_MTX_SFC_SPI_CLK_OUT    ",
							 | 
						|||
| 
								 | 
							
								    #     "GPIO_MTX_SFC_SPI_CS1_OUT_MON", "GPIO_MTX_SFC_SPI_CS1_OUT    ",
							 | 
						|||
| 
								 | 
							
								    #     "GPIO_MTX_SFC_SPI_CS0_OUT_MON", "GPIO_MTX_SFC_SPI_CS0_OUT    ",
							 | 
						|||
| 
								 | 
							
								    #     "GPIO_MTX_SFC_SPI_SI_OUT_MON", "GPIO_MTX_SFC_SPI_D0_OUT    ",
							 | 
						|||
| 
								 | 
							
								    #     "GPIO_MTX_SFC_SPI_SO_OUT_MON", "GPIO_MTX_SFC_SPI_D1_OUT    ",
							 | 
						|||
| 
								 | 
							
								    #     "GPIO_MTX_SFC_SPI_WP_OUT_MON", "GPIO_MTX_SFC_SPI_D2_OUT    ",
							 | 
						|||
| 
								 | 
							
								    #     "GPIO_MTX_SFC_SPI_HOLD_OUT_MON", "GPIO_MTX_SFC_SPI_D3_OUT      ",
							 | 
						|||
| 
								 | 
							
								    #     "GPIO_MTX_SMC_SPI_CLK_OUT_MON", "GPIO_MTX_SMC_SPI_CLK_OUT    ",
							 | 
						|||
| 
								 | 
							
								    #     "GPIO_MTX_SMC_SPI_CS_OUT_MON", "GPIO_MTX_SMC_SPI_CS_OUT    ",
							 | 
						|||
| 
								 | 
							
								    #     "GPIO_MTX_SMC_SPI_SI_OUT_MON", "GPIO_MTX_SMC_SPI_SI_OUT    ",
							 | 
						|||
| 
								 | 
							
								    #     "GPIO_MTX_SMC_SPI_SO_OUT_MON", "GPIO_MTX_SMC_SPI_SO_OUT    ",
							 | 
						|||
| 
								 | 
							
								    #     "GPIO_MTX_SMC_SPI_SIO2_OUT_MON", "GPIO_MTX_SMC_SPI_SIO2_OUT    ",
							 | 
						|||
| 
								 | 
							
								    #     "GPIO_MTX_SMC_SPI_SIO3_OUT_MON", "GPIO_MTX_SMC_SPI_SIO3_OUT    ",
							 | 
						|||
| 
								 | 
							
								    # ]
							 | 
						|||
| 
								 | 
							
								    # path_src = os.path.join(dir_script, "gpio_mtx_sig.h")
							 | 
						|||
| 
								 | 
							
								    # print("Modify the name of the signal, path:%s" % path_src)
							 | 
						|||
| 
								 | 
							
								    # with open(path_src, "r+", newline="\n") as fd:
							 | 
						|||
| 
								 | 
							
								    #     data = fd.read()
							 | 
						|||
| 
								 | 
							
								    #     for i in range(0, int(len(list_mtx_sig) / 2)):
							 | 
						|||
| 
								 | 
							
								    #         data = data.replace(list_mtx_sig[i * 2], list_mtx_sig[i * 2 + 1])
							 | 
						|||
| 
								 | 
							
								    #     fd.seek(0, 0)
							 | 
						|||
| 
								 | 
							
								    #     fd.write(data)
							 | 
						|||
| 
								 | 
							
								    #     fd.truncate()
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    # plc phy\mac文件需要新增一个文件夹,且去掉原文件夹
							 | 
						|||
| 
								 | 
							
								    path_plc = ["mac", "phy"]
							 | 
						|||
| 
								 | 
							
								    for plc in path_plc:
							 | 
						|||
| 
								 | 
							
								        path_src = os.path.join(dir_script, "plc", plc, "macro")
							 | 
						|||
| 
								 | 
							
								        path_dst = os.path.join(dir_script, "plc", plc, "parse_reg")
							 | 
						|||
| 
								 | 
							
								        path_struct = os.path.join(dir_script, "plc", plc, "struct")
							 | 
						|||
| 
								 | 
							
								        if not os.path.exists(path_src):
							 | 
						|||
| 
								 | 
							
								            continue
							 | 
						|||
| 
								 | 
							
								        if os.path.exists(path_dst):
							 | 
						|||
| 
								 | 
							
								            shutil.rmtree(path_dst)
							 | 
						|||
| 
								 | 
							
								        shutil.copytree(path_src, path_dst)
							 | 
						|||
| 
								 | 
							
								        files = os.listdir(path_dst)
							 | 
						|||
| 
								 | 
							
								        for i in range(0, len(files)):
							 | 
						|||
| 
								 | 
							
								            file_temp = os.path.join(path_dst, files[i])
							 | 
						|||
| 
								 | 
							
								            os.rename(file_temp, file_temp.replace("_m.h", ".h"))
							 | 
						|||
| 
								 | 
							
								        shutil.rmtree(path_src)
							 | 
						|||
| 
								 | 
							
								        shutil.rmtree(path_struct)
							 | 
						|||
| 
								 | 
							
								    # mac需要将操作寄存器的宏定义修改为之前的版本,且基地址宏定义也需要调整
							 | 
						|||
| 
								 | 
							
								    list_reg_operation = [
							 | 
						|||
| 
								 | 
							
								        "MAC_SYS_READ_REG", "RGF_MAC_READ_REG",
							 | 
						|||
| 
								 | 
							
								        "MAC_SYS_WRITE_REG", "RGF_MAC_WRITE_REG",
							 | 
						|||
| 
								 | 
							
								        "MAC_SYS_BASEADDR", "RGF_MAC_BASEADDR",
							 | 
						|||
| 
								 | 
							
								        "MAC_RX_READ_REG", "RGF_RX_READ_REG",
							 | 
						|||
| 
								 | 
							
								        "MAC_RX_WRITE_REG", "RGF_RX_WRITE_REG",
							 | 
						|||
| 
								 | 
							
								        "MAC_RX_BASEADDR", "RGF_RX_BASEADDR",
							 | 
						|||
| 
								 | 
							
								        "MAC_TMR_READ_REG", "RGF_TMR_READ_REG",
							 | 
						|||
| 
								 | 
							
								        "MAC_TMR_WRITE_REG", "RGF_TMR_WRITE_REG",
							 | 
						|||
| 
								 | 
							
								        "MAC_TMR_BASEADDR", "RGF_TMR_BASEADDR",
							 | 
						|||
| 
								 | 
							
								        "MAC_RAW_READ_REG", "RGF_RAW_READ_REG",
							 | 
						|||
| 
								 | 
							
								        "MAC_RAW_WRITE_REG", "RGF_RAW_WRITE_REG",
							 | 
						|||
| 
								 | 
							
								        "MAC_RAW_BASEADDR", "RGF_RAW_BASEADDR",
							 | 
						|||
| 
								 | 
							
								        "MAC_HWQ_READ_REG", "RGF_HWQ_READ_REG",
							 | 
						|||
| 
								 | 
							
								        "MAC_HWQ_WRITE_REG", "RGF_HWQ_WRITE_REG",
							 | 
						|||
| 
								 | 
							
								        "MAC_HWQ_BASEADDR", "RGF_HWQ_BASEADDR"
							 | 
						|||
| 
								 | 
							
								    ]
							 | 
						|||
| 
								 | 
							
								    path_src = os.path.join(dir_script, "plc", "mac", "parse_reg")
							 | 
						|||
| 
								 | 
							
								    print("Modify the macro of the mac, path:%s" % path_src)
							 | 
						|||
| 
								 | 
							
								    files = os.listdir(path_src)
							 | 
						|||
| 
								 | 
							
								    for file in files:
							 | 
						|||
| 
								 | 
							
								        str_temp = str(file).replace("reg.h", "READ_REG").upper()
							 | 
						|||
| 
								 | 
							
								        try:
							 | 
						|||
| 
								 | 
							
								            index = list_reg_operation.index(str_temp)
							 | 
						|||
| 
								 | 
							
								        except:
							 | 
						|||
| 
								 | 
							
								            continue
							 | 
						|||
| 
								 | 
							
								        print("file name:%s, %s -> %s, %s -> %s, %s -> %s" % (file,
							 | 
						|||
| 
								 | 
							
								            list_reg_operation[index], list_reg_operation[index + 1],
							 | 
						|||
| 
								 | 
							
								            list_reg_operation[index + 2], list_reg_operation[index + 3],
							 | 
						|||
| 
								 | 
							
								            list_reg_operation[index + 4], list_reg_operation[index + 5]))
							 | 
						|||
| 
								 | 
							
								        with open(os.path.join(path_src, file), "r+", newline="\n") as fd:
							 | 
						|||
| 
								 | 
							
								            data = fd.read()
							 | 
						|||
| 
								 | 
							
								            data = data.replace(list_reg_operation[index], list_reg_operation[index + 1])
							 | 
						|||
| 
								 | 
							
								            data = data.replace(list_reg_operation[index + 2], list_reg_operation[index + 3])
							 | 
						|||
| 
								 | 
							
								            data = data.replace(list_reg_operation[index + 4], list_reg_operation[index + 5])
							 | 
						|||
| 
								 | 
							
								            fd.seek(0, 0)
							 | 
						|||
| 
								 | 
							
								            fd.write(data)
							 | 
						|||
| 
								 | 
							
								            fd.truncate()
							 | 
						|||
| 
								 | 
							
								    list_reg_base = [
							 | 
						|||
| 
								 | 
							
								        "MAC_SYS_BASEADDR", "RGF_MAC_BASEADDR",
							 | 
						|||
| 
								 | 
							
								        "MAC_RX_BASEADDR", "RGF_RX_BASEADDR",
							 | 
						|||
| 
								 | 
							
								        "MAC_TMR_BASEADDR", "RGF_TMR_BASEADDR",
							 | 
						|||
| 
								 | 
							
								        "MAC_RAW_BASEADDR", "RGF_RAW_BASEADDR",
							 | 
						|||
| 
								 | 
							
								        "MAC_HWQ_BASEADDR", "RGF_HWQ_BASEADDR"
							 | 
						|||
| 
								 | 
							
								    ]
							 | 
						|||
| 
								 | 
							
								    path_src = os.path.join(dir_script, "chip_reg_base.h")
							 | 
						|||
| 
								 | 
							
								    print("Modify the macro of the mac, path:%s" % path_src)
							 | 
						|||
| 
								 | 
							
								    with open(path_src, "r+", newline="\n") as fd:
							 | 
						|||
| 
								 | 
							
								        data = fd.read()
							 | 
						|||
| 
								 | 
							
								        for i in range(0, int(len(list_reg_base) / 2)):
							 | 
						|||
| 
								 | 
							
								            data = data.replace(list_reg_base[i * 2], list_reg_base[i * 2 + 1])
							 | 
						|||
| 
								 | 
							
								        fd.seek(0, 0)
							 | 
						|||
| 
								 | 
							
								        fd.write(data)
							 | 
						|||
| 
								 | 
							
								        fd.truncate()
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    # rfplc phy\mac文件需要新增一个文件夹,且去掉原文件夹
							 | 
						|||
| 
								 | 
							
								    # rfplc永远只更新mac,不包含phy的更新
							 | 
						|||
| 
								 | 
							
								    path_plc = ["mac", "phy"]
							 | 
						|||
| 
								 | 
							
								    for rfplc in path_plc:
							 | 
						|||
| 
								 | 
							
								        path_src = os.path.join(dir_script, "rfplc", rfplc, "macro")
							 | 
						|||
| 
								 | 
							
								        path_dst = os.path.join(dir_script, "plc", "mac", "parse_reg")
							 | 
						|||
| 
								 | 
							
								        path_struct = os.path.join(dir_script, "rfplc", rfplc, "struct")
							 | 
						|||
| 
								 | 
							
								        if not os.path.exists(path_src):
							 | 
						|||
| 
								 | 
							
								            continue
							 | 
						|||
| 
								 | 
							
								        # shutil.copytree(path_src, path_dst)
							 | 
						|||
| 
								 | 
							
								        files = os.listdir(path_src)
							 | 
						|||
| 
								 | 
							
								        for file in files:
							 | 
						|||
| 
								 | 
							
								            file_src = os.path.join(path_src, file)
							 | 
						|||
| 
								 | 
							
								            file_dst = os.path.join(path_dst, file).replace("_m.h", ".h")
							 | 
						|||
| 
								 | 
							
								            os.rename(file_src, file_dst)
							 | 
						|||
| 
								 | 
							
								        shutil.rmtree(path_src)
							 | 
						|||
| 
								 | 
							
								        shutil.rmtree(path_struct)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    delete_empty_folder(dir_script)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    print("文件重命名完成")
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								if __name__ == '__main__':
							 | 
						|||
| 
								 | 
							
								    main()
							 |