diplom/научка/code/matlab_stm_emulate/.outdate/run_mex_libs.old
2025-05-09 21:26:59 +03:00

133 lines
5.2 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@echo off
set defines=-D"STM32F407xx" -D"USE_HAL_DRIVER"^
-D"MATLAB"^
-D"__sizeof_ptr=8"
:: -------------------------USERS PATHS AND CODE---------------------------
::-----------заголовочные файлы---------------
:: не добавлять CMSIS и HAL, они кастомные
set includes_user= -I".\Core\Inc"
::-----------исходный код---------------
set code_user=.\Core\Src\main.c^
.\Core\Src\tim.c^
.\Core\Src\gpio.c^
.\Core\Src\stm32f4xx_it.c^
.\Core\Src\system_stm32f4xx.c
:: .\Core\Src\stm32f4xx_hal_msp.c^
::-------------------------------------------------------------------------
:: -----------------------MCU LIBRARIES & SIMULATOR------------------------
:: -------MCU INCLUDED PATHS-------
set includes_MCU= -I"."^
-I".\MCU_STM32F407_Matlab"^
-I".\MCU_STM32F407_Matlab\Drivers\STM32F4xx_SIMULINK"^
-I".\MCU_STM32F407_Matlab\Drivers\CMSIS"^
-I".\MCU_STM32F407_Matlab\Drivers\STM32F4xx_HAL_Driver\Inc"^
-I".\MCU_STM32F407_Matlab\Drivers\STM32F4xx_HAL_Driver\Inc\Legacy"
:: --------MCU SIMULATOR-------
:: код, которая будет симулировать перефирию МК в симулинке
set code_mcu_sim= .\MCU_STM32F407_Matlab\Drivers\CMSIS\stm32f407xx_matlab.c^
.\MCU_STM32F407_Matlab\STM32F407xx.c^
.\MCU_STM32F407_Matlab\Drivers\STM32F4xx_SIMULINK\stm32f4xx_matlab_tim.c
:: ---------HAL CODE----------
set weak_folder= ".\MCU_STM32F407_Matlab\Drivers\STM32F4xx_HAL_Driver\Src"
set code_hal=.\MCU_STM32F407_Matlab\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim.c^
.\MCU_STM32F407_Matlab\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim_ex.c^
.\MCU_STM32F407_Matlab\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c^
.\MCU_STM32F407_Matlab\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash.c^
.\MCU_STM32F407_Matlab\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ex.c^
.\MCU_STM32F407_Matlab\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ramfunc.c^
.\MCU_STM32F407_Matlab\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c^
.\MCU_STM32F407_Matlab\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c^
.\MCU_STM32F407_Matlab\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c^
.\MCU_STM32F407_Matlab\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c^
.\MCU_STM32F407_Matlab\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c^
.\MCU_STM32F407_Matlab\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c^
.\MCU_STM32F407_Matlab\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_exti.c
:: .\MCU_STM32F407_Matlab\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c^
:: --------SHELL CODE----------
:: оболочка, которая будет моделировать работу МК в симулинке
set code_shell= .\MCU_Simulink\MCU.c^
.\MCU_Simulink\controller.c
set asm_shell=asmjmp
:: оболочка, которая будет моделировать работу МК в симулинке
set includes_shell= -I".\MCU_Simulink"
:: ---------LIBRARIES---------
:: set params_obj=..\device_support_ml\source\C28x_FPU_FastRTS.obj ..\device_support_ml\source\DSP2833x_GlobalVariableDefs.obj
:: ---------------------SET PARAMS FOR MEX COMPILING-----------------------
:: --------ALL INCLUDES--------
set includes= %includes_user% %includes_MCU% %includes_shell%
:: -------OUTPUT FOLDER--------
set output= -outdir "."
set output_folder=.\MCU_Simulink\Outputs\
set asm_source=.\MCU_Simulink\%asm_shell%.asm
set asm_obj=%output_folder%%asm_shell%.obj
set weak_output_folder=%output_folder%WeaksLibs\
set weak_lib=%weak_output_folder%Weak_functions.lib
:: если нужен дебаг, до запускаем run mex с припиской debug
IF [%1]==[debug] (set debug= -g)
::------START COMPILING-------
set includes_defines= %defines% %includes%
IF [%2]==[UPDATE] (
del %output_folder%\*.obj
del %weak_output_folder%\*.obj
del %weak_output_folder%\*.lib
echo Create Obj with weak functions...
for %%f in (%code_hal%) do (
mex -c -outdir %weak_output_folder% %includes_defines% %%f %debug% > nul
)
)
echo Create Obj with ASM context manager functions
set asm_exe= "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64\ml64.exe"
set asm_command= /c /Fo %asm_obj% %asm_source%
echo ASM: %asm_command%
%asm_exe% %asm_command%
setlocal enabledelayedexpansion
set weak_obj_files=
for %%f in (%weak_output_folder%\*.obj) do (
set weak_obj_files=!weak_obj_files! %%f
)
set lib_exe= "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\HostX64\x64\lib.exe"
set lib_command= /out:%weak_lib% %weak_obj_files%
echo Create Libs with weak functions...
echo LIB: %lib_command%
%lib_exe% %lib_command%
mex %output% %includes_defines% %code_shell% %code_mcu_sim% %code_user% %asm_obj% %weak_lib% %debug%
::echo mex %hal_lib%
::mex %hal_lib%
:: если дебаг, то компилим из source
::IF [%1]==[debug] (set final_mex= mex %output% %debug% %defines% %includes_shell% %includes_MCU% %includes_user% %code_shell% %code_mcu_sim% %code_hal% %code_user% %params_obj%)
::ELSE (set final_mex= )
::echo mex %final_mex%
::mex %final_mex%
::-------------------------------------------------------------------------