mirror of
https://github.com/goldenfishs/MRobot.git
synced 2026-02-04 18:00:19 +08:00
优化can设备
This commit is contained in:
parent
7300d03812
commit
296118b408
@ -657,6 +657,44 @@ class bsp_fdcan(BspPeripheralBase):
|
|||||||
get_available_fdcan
|
get_available_fdcan
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def _generate_bsp_code_internal(self):
|
||||||
|
"""重写以在生成FDCAN代码后自动复制CAN兼容层"""
|
||||||
|
# 先调用父类方法生成FDCAN代码
|
||||||
|
result = super()._generate_bsp_code_internal()
|
||||||
|
if result:
|
||||||
|
# 成功后复制CAN兼容层文件
|
||||||
|
self._copy_can_wrapper()
|
||||||
|
return result
|
||||||
|
|
||||||
|
def _copy_can_wrapper(self):
|
||||||
|
"""复制CAN兼容层文件(can.h和can.c)到项目"""
|
||||||
|
try:
|
||||||
|
template_base_dir = CodeGenerator.get_assets_dir("User_code/bsp")
|
||||||
|
fdcan_folder = os.path.join(template_base_dir, "fdcan")
|
||||||
|
bsp_output_dir = os.path.join(self.project_path, "User/bsp")
|
||||||
|
|
||||||
|
# 确保输出目录存在
|
||||||
|
os.makedirs(bsp_output_dir, exist_ok=True)
|
||||||
|
|
||||||
|
# 复制can.h
|
||||||
|
can_h_src = os.path.join(fdcan_folder, "can.h")
|
||||||
|
can_h_dst = os.path.join(bsp_output_dir, "can.h")
|
||||||
|
if os.path.exists(can_h_src):
|
||||||
|
import shutil
|
||||||
|
shutil.copy2(can_h_src, can_h_dst)
|
||||||
|
print(f"✓ 已复制CAN兼容层: can.h")
|
||||||
|
|
||||||
|
# 复制can.c (如果存在)
|
||||||
|
can_c_src = os.path.join(fdcan_folder, "can.c")
|
||||||
|
can_c_dst = os.path.join(bsp_output_dir, "can.c")
|
||||||
|
if os.path.exists(can_c_src):
|
||||||
|
import shutil
|
||||||
|
shutil.copy2(can_c_src, can_c_dst)
|
||||||
|
print(f"✓ 已复制CAN兼容层: can.c")
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
print(f"复制CAN兼容层文件时出错: {e}")
|
||||||
|
|
||||||
def _generate_header_file(self, configs, template_dir):
|
def _generate_header_file(self, configs, template_dir):
|
||||||
"""重写头文件生成,添加 FDCAN 使能和 FIFO 分配定义"""
|
"""重写头文件生成,添加 FDCAN 使能和 FIFO 分配定义"""
|
||||||
# 从子文件夹加载模板
|
# 从子文件夹加载模板
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user